viewSpe.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. <template>
  2. <view class="pharmacyDetails">
  3. <view class="pharmacyDetails_title">检验科室标本信息</view>
  4. <view class="page_item footerOtherMargin">
  5. <view class="page_item_wrap" v-for="(spe, i) in specimens" :key="spe.id">
  6. <specimenListItem :i="i" :item="spe"></specimenListItem>
  7. <view class="L-l"></view>
  8. <view class="R-l"></view>
  9. </view>
  10. </view>
  11. <view class="foot_btn2 footerPadding">
  12. <view class="btn2" @click="goBack">返回</view>
  13. </view>
  14. </view>
  15. </template>
  16. <script>
  17. import {
  18. post,
  19. webHandle
  20. } from "../../http/http.js";
  21. export default {
  22. data() {
  23. return {
  24. queryObj: {}, //路由传递过来的数据
  25. isScan: false,//true是已扫描标本,false是未扫描标本
  26. workOrderId: -1,
  27. deptCode: '',
  28. specimens: [],
  29. };
  30. },
  31. methods: {
  32. // 返回
  33. goBack() {
  34. uni.navigateBack();
  35. },
  36. // 获取已扫描或未扫描标本信息
  37. getNoScanSpecimen(isScan) {
  38. let postData = {
  39. gdIds: this.workOrderId,
  40. currentPage: 0,
  41. pageSize: 999,
  42. tubeTypeId:this.tubeTypeId
  43. };
  44. if(this.queryObj.specimensCheck){
  45. //标本核对页面过来的
  46. if(this.queryObj.deptName){
  47. // 标本核对,已扫描总数
  48. postData.deptQrCode = this.deptCode||undefined;
  49. postData.specimensCheck = 1;
  50. }
  51. }else{
  52. postData.deptQrCode = this.deptCode||undefined;
  53. }
  54. // 是否是已扫描
  55. if(isScan && !this.queryObj.noScan){
  56. // 显示已扫描,但添加scanned参数
  57. postData.scanned = 1;
  58. }
  59. uni.showLoading({
  60. title: "加载中",
  61. mask: true,
  62. });
  63. post("/api/noScanSpecimenData", postData).then((res) => {
  64. uni.hideLoading();
  65. if (res.data) {
  66. this.specimens = res.data;
  67. }
  68. });
  69. },
  70. },
  71. onLoad(options) {
  72. console.log(options);
  73. this.queryObj = options;
  74. this.workOrderId = JSON.parse(options.workOrderId);
  75. this.deptCode = options.deptCode;
  76. this.tubeTypeId = options.tubeTypeId;
  77. this.isScan = Boolean(options.isScan);
  78. this.getNoScanSpecimen(this.isScan);
  79. // #ifdef APP-PLUS
  80. webHandle("no", "app");
  81. // #endif
  82. // #ifdef H5
  83. webHandle("no", "wx");
  84. // #endif
  85. },
  86. };
  87. </script>
  88. <style lang="less" scoped>
  89. .pharmacyDetails {
  90. background-color: rgb(249, 250, 251);
  91. padding-top: 50rpx;
  92. height: 100%;
  93. box-sizing: border-box;
  94. .pharmacyDetails_title {
  95. font-size: 46rpx;
  96. font-weight: 550;
  97. text-align: center;
  98. }
  99. .page_item_wrap {
  100. position: relative;
  101. margin-top: 32rpx;
  102. .page_item {
  103. margin-top: 16rpx;
  104. margin-bottom: 124rpx;
  105. background: #fff;
  106. border-radius: 8rpx;
  107. margin: 0 20rpx;
  108. border: 2rpx solid #e5e9ed;
  109. position: relative;
  110. overflow: hidden;
  111. padding: 0 16rpx;
  112. .L {
  113. width: 40rpx;
  114. height: 40rpx;
  115. border-radius: 50%;
  116. background: #f9fafb;
  117. position: absolute;
  118. left: -20rpx;
  119. top: 68rpx;
  120. border: 2rpx solid #e5e9ed;
  121. }
  122. .R {
  123. width: 40rpx;
  124. height: 40rpx;
  125. border-radius: 50%;
  126. background: #f9fafb;
  127. position: absolute;
  128. float: right;
  129. right: -20rpx;
  130. top: 68rpx;
  131. border: 2rpx solid #e5e9ed;
  132. }
  133. .page_item_top {
  134. height: 88rpx;
  135. border-bottom: 2rpx dashed #e5e9ed;
  136. padding: 0 16rpx;
  137. .page_item_top-inner {
  138. display: flex;
  139. justify-content: space-between;
  140. align-items: center;
  141. height: 100%;
  142. .page_item_top_L {
  143. .L_text {
  144. font-size: 32rpx;
  145. font-weight: 700;
  146. }
  147. }
  148. .page_item_top_R {
  149. font-size: 32rpx;
  150. .L_iocn {
  151. color: rgb(7, 134, 60);
  152. font-size: 36rpx;
  153. font-weight: 700;
  154. }
  155. }
  156. }
  157. }
  158. .page_item_cont {
  159. min-height: 90rpx;
  160. padding: 0 16rpx;
  161. text-align: left;
  162. position: relative;
  163. .text_big {
  164. font-size: 32rpx;
  165. font-weight: 700;
  166. margin-top: 10rpx;
  167. p {
  168. font-weight: 700;
  169. line-height: 1.5;
  170. }
  171. }
  172. .line {
  173. height: 20rpx;
  174. width: 2rpx;
  175. border-left: 2rpx solid #e5e9ed;
  176. position: absolute;
  177. top: 82rpx;
  178. left: 40rpx;
  179. }
  180. .page_item_cont_T {
  181. padding-top: 28rpx;
  182. padding-bottom: 28rpx;
  183. font-size: 28rpx;
  184. .page_item_cont_title {
  185. height: 100%;
  186. font-size: 32rpx;
  187. display: flex;
  188. justify-content: space-between;
  189. align-items: center;
  190. }
  191. }
  192. .page_item_cont_B {
  193. padding-top: 28rpx;
  194. margin-bottom: 28rpx;
  195. .page_item_cont_title {
  196. font-size: 32rpx;
  197. display: flex;
  198. justify-content: space-between;
  199. align-items: center;
  200. }
  201. }
  202. .page_item_cont_C {
  203. margin-bottom: 28rpx;
  204. .page_item_cont_title_C {
  205. font-size: 32rpx;
  206. display: flex;
  207. justify-content: space-between;
  208. align-items: center;
  209. }
  210. }
  211. #infos {
  212. display: none;
  213. }
  214. }
  215. }
  216. .L-l {
  217. width: 2rpx;
  218. height: 40rpx;
  219. background: #f9fafb;
  220. position: absolute;
  221. left: 20rpx;
  222. top: 72rpx;
  223. }
  224. .R-l {
  225. width: 2rpx;
  226. height: 40rpx;
  227. background: #f9fafb;
  228. position: absolute;
  229. right: 20rpx;
  230. top: 72rpx;
  231. }
  232. }
  233. .cube-toolbar-item {
  234. width: 710rpx;
  235. height: 68rpx;
  236. line-height: 68rpx;
  237. position: fixed;
  238. left: 20rpx;
  239. bottom: 160rpx;
  240. border-radius: 8rpx;
  241. background: linear-gradient(to right, #72c172, #3bb197);
  242. font-size: 36rpx;
  243. color: #fff;
  244. text-align: center;
  245. }
  246. .btn-wrap {
  247. display: flex;
  248. justify-content: space-between;
  249. position: fixed;
  250. left: 20rpx;
  251. bottom: 160rpx;
  252. }
  253. .cube-toolbar-item1 {
  254. width: 350rpx;
  255. height: 68rpx;
  256. line-height: 68rpx;
  257. border-radius: 8rpx;
  258. margin: 0 5rpx;
  259. background: linear-gradient(to right, #72c172, #3bb197);
  260. font-size: 36rpx;
  261. color: #fff;
  262. text-align: center;
  263. }
  264. .foot_btn2 {
  265. position: fixed;
  266. bottom: 0;
  267. right: 20rpx;
  268. left: 20rpx;
  269. line-height: 66rpx;
  270. height: 100rpx;
  271. border-top: 2rpx solid #e5e9ed;
  272. background: #f9fafb;
  273. display: flex;
  274. justify-content: space-between;
  275. .btn2 {
  276. height: 66rpx;
  277. width: 100%;
  278. margin: 0 1%;
  279. background-image: linear-gradient(to right, #72c172, #3bb197);
  280. color: #fff;
  281. border-radius: 8rpx;
  282. font-size: 32rpx;
  283. margin-top: 16rpx;
  284. text-align: center;
  285. }
  286. .btn3 {
  287. height: 66rpx;
  288. width: 48%;
  289. margin: 0 1%;
  290. background-image: linear-gradient(to right, #72c172, #3bb197);
  291. color: #fff;
  292. border-radius: 8rpx;
  293. font-size: 32rpx;
  294. margin-top: 16rpx;
  295. text-align: center;
  296. }
  297. }
  298. }
  299. </style>