Browse Source

试管类型开发

maotao 3 days ago
parent
commit
aba960187e

+ 4 - 4
components/bigScreen/bigScreen.vue

@@ -511,7 +511,7 @@
511 511
       // 底部扫描
512 512
       Scanning(qrcodePrefix = '') {
513 513
 				// 标本码
514
-				// this.ScanningCommon('', '250516486743@_1');
514
+				// this.ScanningCommon('', '250522891576@_1');
515 515
 				
516 516
 				// 快捷建单-轮巡工单码
517 517
 				// this.ScanningCommon('', '3330ec8e-76eb-413e-b000-995f08d2ff96');
@@ -522,9 +522,9 @@
522 522
 				// 终点科室核对码--本部住院检验科
523 523
 				// this.ScanningCommon('', '95c5de27-c05f-11ea-8cfe-000c29097622');
524 524
 				
525
-        // if (!this.SMFlag) {
526
-        //   return;
527
-        // }
525
+        if (!this.SMFlag) {
526
+          return;
527
+        }
528 528
         this.SMFlag = false;
529 529
         SM().then((content) => {
530 530
           this.ScanningCommon(qrcodePrefix, content);

+ 3 - 2
manifest.json

@@ -123,8 +123,9 @@
123 123
             "disableHostCheck" : true,
124 124
             "proxy" : {
125 125
                 "/service" : {
126
-                    // "target" : "http://192.168.3.108", //请求的目标域名
127
-                    "target" : "http://192.168.4.163", //宋程玉本地
126
+                    "target" : "http://192.168.3.108", //请求的目标域名
127
+
128
+                    // "target" : "http://192.168.4.163", //宋程玉本地
128 129
                     "changeOrigin" : true, //是否跨域
129 130
                     "secure" : false
130 131
                 }

+ 8 - 0
pages.json

@@ -784,6 +784,14 @@
784 784
 		      "titleNView": false
785 785
 		    }
786 786
 		  }
787
+		},
788
+		{
789
+		  "path": "pages/speError/speError",
790
+		  "style": {
791
+		    "h5": {
792
+		      "titleNView": false
793
+		    }
794
+		  }
787 795
 		}
788 796
   ],
789 797
   "globalStyle": {

+ 1 - 1
pages/checkAfterBigScreen/checkAfterBigScreen.vue

@@ -75,7 +75,7 @@
75 75
     methods: {
76 76
 			viewSpe(deptName, qrCode, id){
77 77
 				uni.navigateTo({
78
-				  url: `../viewSpe/viewSpe?deptName=${deptName}&workOrderId=${this.queryObj.ids}&deptCode=${qrCode}&tubeTypeId=${id}&isScan=1&specimensCheck=1`,
78
+				  url: `../viewSpe/viewSpe?deptName=${deptName}&workOrderId=${this.queryObj.ids}&deptCode=${qrCode}&tubeTypeId=${id}&isScan=1&specimensCheck=1&noScan=1`,
79 79
 				});
80 80
 			},
81 81
       // 填写交接人工号-确认

+ 21 - 7
pages/receipt_infopage/receipt_infopage.vue

@@ -1111,9 +1111,23 @@
1111 1111
 				    title: "加载中",
1112 1112
 				    mask: true,
1113 1113
 				  });
1114
-					// let content = '3262'
1114
+					const regex = /^[^{}]+$/; // 验证是否是json对象
1115
+					let code = null
1116
+					console.log(12345,regex.test(content))
1117
+					if(!regex.test(content)){
1118
+						code = JSON.parse(content)
1119
+					}else{
1120
+						code = null
1121
+						uni.hideLoading();
1122
+						uni.showToast({
1123
+						  icon: "none",
1124
+						  title: '请扫描正确的二维码',
1125
+						});
1126
+						this.SMFlag = true;
1127
+						return
1128
+					}
1115 1129
 				  post("/workerOrder/transfer ", {
1116
-							handoverId: content,
1130
+							handoverId: code.id ? code.id : null,
1117 1131
 							orderId: workOrder.id
1118 1132
 				    })
1119 1133
 				    .then((result) => {
@@ -1121,7 +1135,7 @@
1121 1135
 							uni.hideLoading();
1122 1136
 				      if (result.state == 205) {
1123 1137
 								this.speContent = result.msg
1124
-								this.handoverId = content
1138
+								this.handoverId = code.id ? code.id : null
1125 1139
 				        this.$refs.alertDialog.open()
1126 1140
 				      }else{
1127 1141
 								uni.showToast({
@@ -1676,9 +1690,9 @@
1676 1690
 						hosId: {
1677 1691
 							id: this.hosId
1678 1692
 						},
1679
-						ordinaryField: {
1680
-							key:"ordinary_field",
1681
-							value: "specimenPackage"
1693
+						associationType: {
1694
+							key:"association_types",
1695
+							value: "specimen"
1682 1696
 						}
1683 1697
 					}
1684 1698
 				};
@@ -1700,7 +1714,7 @@
1700 1714
 							hosId: {
1701 1715
 								id: this.hosId
1702 1716
 							},
1703
-							ordinaryField: this.tasktype.ordinaryField
1717
+							associationType: this.tasktype.associationType
1704 1718
 						}
1705 1719
 					}
1706 1720
 				};;

+ 75 - 59
pages/scanning_Result/scanning_Result.vue

@@ -38,11 +38,18 @@
38 38
         (res.status == 200 && type == 'specimenPlan') ||
39 39
         (res.status == 200 && type == 'specimen')
40 40
       ">
41
-			<view class="df"><view class="width-100">编码:</view> <text class="red">{{infoDATA.urgent==1?'急':''}}</text> {{infoDATA.scode}} {{infoDATA.speState && infoDATA.speState.name}}</view>
41
+			<view class="df">
42
+				<view class="width-100">编 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 码:</view> 
43
+				<view>
44
+					<text class="red">{{infoDATA.urgent==1?'急':''}}</text>
45
+					<text class="mar-le">{{infoDATA.scode}} </text>
46
+				</view>
47
+				<view class="po-ab">{{infoDATA.speState && infoDATA.speState.name}}</view>
48
+			</view>
42 49
       <view class="df"><view class="width-100">检验项目:</view> {{ infoDATA.specimenDesc || "-" }}</view>
43
-			<view class="df"><view class="width-100">类型:</view>{{ infoDATA.stype.name }} <text v-if="infoDATA.tubeType">、</text> {{infoDATA.tubeType && infoDATA.tubeType.name}}</view>
50
+			<view class="df"><view class="width-100">类 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 型:</view>{{ infoDATA.stype.name }} <text v-if="infoDATA.tubeType">、</text> {{infoDATA.tubeType && infoDATA.tubeType.name}}</view>
44 51
       <view class="df">
45
-				<view class="width-100">科室:</view>
52
+				<view class="width-100">科 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 室:</view>
46 53
         {{ infoDATA.sickRoom ? infoDATA.sickRoom.dept : "" }}
47 54
         <text class="newicon newicon-arrow-right-full"></text>
48 55
         <text :class="{ red: isEndDeptRedShow }">{{ infoDATA.checkDept ? infoDATA.checkDept.dept : "" }}</text>
@@ -139,8 +146,8 @@
139 146
       <view class="btn3" @click="hand_again()">手动录入</view>
140 147
       <view class="btn3" @click="getNoScanSpecimen(false)">未扫描标本</view>
141 148
       <view class="btn3" @click="getNoScanSpecimen(true)">已扫描标本</view>
142
-      <view class="btn2" @click="Scanning_complete(dataId)"> 完成扫描 </view>
143
-			<view class="btn2" v-if="speCollectLimit==1" @click="configuration(dataId)"> 配置收取 </view>
149
+      <view class="btn3" @click="Scanning_complete(dataId)"> 完成扫描 </view>
150
+			<view class="btn3" v-if="speCollectLimit==1" @click="configuration(dataId)"> 配置收取 </view>
144 151
 		</view>
145 152
     <view class="foot_btn" v-if="
146 153
         (type != 'specimenPlan' &&
@@ -268,7 +275,7 @@
268 275
 		<!-- PDA扫描 -->
269 276
 		<scanner></scanner>
270 277
 		<!-- 标本扫描拦截 -->
271
-		<errorModel v-show="errorModal" ref="model11" :errorModal="errorModal" :speDATA="speDATA" @cancel="cancelError" @confirm="confirmError($event)"></errorModel>
278
+		<!-- <errorModel v-show="errorModal" ref="model11" :errorModal="errorModal" :speDATA="speDATA" @cancel="cancelError" @confirm="confirmError($event)"></errorModel> -->
272 279
 	</view>
273 280
 </template>
274 281
 <script>
@@ -459,7 +466,7 @@
459 466
                   //标本和标本轮巡工单,扫描标本后会自动调用摄像头,继续扫描,直到status不是200
460 467
                   if ((this.type == "specimenPlan" || this.type == "specimen") && ress.status != 11111) {
461 468
                     this.getPageConfigSpecimen((flag, type, ress) => {
462
-                      if(flag && !this.isShow){
469
+                      // if(flag && !this.isShow){
463 470
                         setTimeout(()=>{
464 471
                           if (type === 'scan') {
465 472
 														// #ifdef H5
@@ -467,7 +474,7 @@
467 474
 														// #endif
468 475
                           }
469 476
                         },500)
470
-                      }
477
+                      // }
471 478
                       if(ress){
472 479
                         this.infoDATA = ress.data;
473 480
                         this.speNum = ress.specimenCount;
@@ -480,7 +487,7 @@
480 487
                           JSON.stringify(ress.data)
481 488
                         )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
482 489
                           this.queryObj.deptCode
483
-                        }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}&speNum=${this.speNum}&scanOrHand=${type}&isEndDeptRed=${this.isEndDeptRed}&isShow=1`
490
+                        }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}&speNum=${this.speNum}&scanOrHand=${type}&isEndDeptRed=${this.isEndDeptRed}`
484 491
 												uni.setStorageSync('gdData', JSON.stringify(sessData))
485 492
 												
486 493
                         uni.redirectTo({
@@ -492,7 +499,7 @@
492 499
                           JSON.stringify(ress.data)
493 500
                         )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
494 501
                           this.queryObj.deptCode
495
-                        }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}&speNum=${this.speNum}&scanOrHand=${type}&isEndDeptRed=${this.isEndDeptRed}&isShow=1`,
502
+                        }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}&speNum=${this.speNum}&scanOrHand=${type}&isEndDeptRed=${this.isEndDeptRed}`,
496 503
                         });
497 504
                       }
498 505
                     }, type, ress.data, ress);
@@ -593,12 +600,22 @@
593 600
                     });
594 601
                   }
595 602
                 } else if (ress.status==513){
596
-									this.speDATA = ress
597
-									this.errorModal = true
603
+									uni.navigateTo({
604
+									  url: `../speError/speError?type=${
605
+									  this.queryObj.type
606
+									}&type1=${
607
+									  this.queryObj.type1
608
+									}&infoData=${encodeURIComponent(
609
+									  JSON.stringify(ress.data)
610
+									)}&status=${ress.status}&msg=${ress.msg}&deptCode=${
611
+									  this.queryObj.deptCode
612
+									}&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}&speNum=${this.speNum}&scanOrHand=${type}&isEndDeptRed=${this.isEndDeptRed}`,
613
+									});
598 614
 								} else if(ress.status==10004){
599 615
                   uni.showToast({
600 616
                     icon: "none",
601
-                    title: ress.msg,
617
+										duration: 3000,
618
+                    title: ress.msg +','+ `扫描内容:${data.speCode}`,
602 619
                   });
603 620
                 }else{
604 621
 									uni.redirectTo({
@@ -624,21 +641,23 @@
624 641
               title: result.info || "接口获取数据失败!",
625 642
             });
626 643
           }
627
-        });
644
+        }).catch(err =>{
645
+					this.SMFlag = true;
646
+				});
628 647
         // ------------------------------
629 648
       },
630 649
 			// 取消拦截
631
-			cancelError(){
632
-				this.errorModal = false
633
-				this.interceptData = null
634
-				this.speDATA = null
635
-			},
636
-			// 确定标本拦截
637
-			confirmError(e){
638
-				this.errorModal = false
639
-				this.interceptData = e
640
-				this.hand_scanning_common(this.interceptData.code, 'scan')
641
-			},
650
+			// cancelError(){
651
+			// 	this.errorModal = false
652
+			// 	this.interceptData = null
653
+			// 	this.speDATA = null
654
+			// },
655
+			// // 确定标本拦截
656
+			// confirmError(e){
657
+			// 	this.errorModal = false
658
+			// 	this.interceptData = e
659
+			// 	this.hand_scanning_common(this.interceptData.code, 'scan')
660
+			// },
642 661
       // 查看未扫描标本
643 662
       // isScan true已扫描标本,false未扫描标本
644 663
       getNoScanSpecimen(isScan) {
@@ -662,7 +681,7 @@
662 681
       },
663 682
       // 继续扫描
664 683
       Scanning_again() {
665
-				// this.hand_scanning_common('250515584338@_1', 'scan')
684
+				// this.hand_scanning_common('250523620572@_1', 'scan')
666 685
         if (!this.SMFlag) {
667 686
           return;
668 687
         }
@@ -1164,6 +1183,7 @@
1164 1183
 			// #endif
1165 1184
     },
1166 1185
     onLoad(options) {
1186
+			console.log(77776666,options)
1167 1187
 			this.intercept = options.intercept
1168 1188
 			this.isShow = options.isShow
1169 1189
       this.isEndDeptRedShow = options.isEndDeptRed === 'true';
@@ -1175,34 +1195,18 @@
1175 1195
           }
1176 1196
         });
1177 1197
       }
1178
-			else if(options.scanOrHand === 'scan'){
1179
-				if(options.isShow==1){
1180
-					this.getPageConfigSpecimen((flag, type, ress) => {
1181
-						if(flag){
1182
-							setTimeout(()=>{
1183
-								// #ifdef H5
1184
-								this.Scanning_again();
1185
-								// #endif
1186
-							},500)
1187
-						}
1188
-					})
1189
-				}
1190
-			}
1191
-			// else if ((options.scanOrHand === 'scan' || options.type == "specimenPlan" || options.type == "specimen") && options.status != 11111) {
1192
-			// 	if(options.scanOrHand === 'scan' || this.intercept==1){
1193
-			// 		this.getSys()
1194
-			// 	}
1195
-			// 	this.getPageConfigSpecimen((flag, type, ress) => {
1196
-			// 		if(flag){
1197
-			// 			setTimeout(()=>{
1198
-			// 				// if (type === 'scan') {
1198
+			// else if(options.scanOrHand === 'scan'){
1199
+			// 	if(options.isShow==1){
1200
+			// 		this.getPageConfigSpecimen((flag, type, ress) => {
1201
+			// 			if(flag){
1202
+			// 				setTimeout(()=>{
1199 1203
 			// 					// #ifdef H5
1200 1204
 			// 					this.Scanning_again();
1201 1205
 			// 					// #endif
1202
-			// 				// }
1203
-			// 			},500)
1204
-			// 		}
1205
-			// 	})
1206
+			// 				},500)
1207
+			// 			}
1208
+			// 		})
1209
+			// 	}
1206 1210
 			// }
1207 1211
 			console.log(options , "options");
1208 1212
       this.queryObj = options;
@@ -1282,7 +1286,7 @@
1282 1286
 </script>
1283 1287
 <style lang="less">
1284 1288
   .Scanning_Result {
1285
-    padding: 0 20rpx;
1289
+    padding: 0 24rpx;
1286 1290
 		height: 96vh;
1287 1291
 		position: relative;
1288 1292
 		
@@ -1328,19 +1332,33 @@
1328 1332
       font-size: 32rpx;
1329 1333
       // text-align: center;
1330 1334
 			margin-top: 40rpx;
1335
+			height: 50vh;
1336
+			overflow-y: auto;
1337
+			
1331 1338
 			.df{
1332 1339
 				display: flex;
1333 1340
 				align-items: center;
1334 1341
 				margin-bottom: 14rpx;
1342
+				position: relative;
1335 1343
 				
1336 1344
 				.newicon{
1337 1345
 					margin: 0 8rpx;
1338 1346
 				}
1347
+				
1348
+				.mar-le{
1349
+					margin-left: 20rpx;
1350
+				}
1351
+				
1352
+				.po-ab{
1353
+					position: absolute;
1354
+					right: 0;
1355
+				}
1339 1356
 			}
1340 1357
 			
1341 1358
 			.width-100{
1342 1359
 				width: 160rpx;
1343 1360
 				font-weight: 600;
1361
+				text-align-last: justify;
1344 1362
 			}
1345 1363
 			
1346 1364
       .Scanning_cont_center {
@@ -1387,18 +1405,16 @@
1387 1405
       display: flex;
1388 1406
       justify-content: space-between;
1389 1407
       flex-wrap: wrap;
1390
-			position: absolute;
1391
-			bottom: 220rpx;
1392 1408
 			
1393
-      &::after {
1394
-        content: '';
1395
-        flex: 1;
1396
-      }
1409
+      // &::after {
1410
+      //   content: '';
1411
+      //   flex: 1;
1412
+      // }
1397 1413
 
1398 1414
       view {
1399 1415
         height: 88rpx;
1400 1416
         width: 48%;
1401
-        margin: 0 1%;
1417
+        // margin: 0 1%;
1402 1418
         background-image: linear-gradient(to right, #72c172, #3bb197);
1403 1419
         color: #fff;
1404 1420
         border-radius: 8rpx;

+ 405 - 0
pages/speError/speError.vue

@@ -0,0 +1,405 @@
1
+<template>
2
+  <view class="showModel">
3
+		<view class="showModel__wrap">
4
+			<view class="content" v-if="speDATA && speDATA.data">
5
+				<view class="content-box">
6
+					<view class="icon">
7
+						<text class="red newicon newicon-guanbi1"></text>
8
+						<!-- <text class="error-text">提示</text> -->
9
+					</view>
10
+					<view class="list weight red">{{speDATA.msg}}</view>
11
+					<view class="list flex">
12
+						<view>条码:<text class="mar-rig" :class="speDATA.data.urgent==0?'green':'red'">{{speDATA.data.urgent==0?'普':'急'}}</text> {{speDATA.data.scode}}</view>
13
+						<view>{{speDATA.data.speState ? speDATA.data.speState.name : ''}}</view>
14
+					</view>
15
+					<view class="list">检查项目:{{ speDATA.data.specimenDesc || "-" }}</view>
16
+					<view class="list">类型:{{speDATA.data.stype ? speDATA.data.stype.name : ''}} <text v-if="speDATA.data.tubeType">、</text> {{speDATA.data.tubeType && speDATA.data.tubeType.name || ''}}</view>
17
+					<view class="list">患者:{{ speDATA.data.patientName}} <text v-if="speDATA.data.bedNum">({{speDATA.data.bedNum}})</text></view>
18
+					<view class="list">{{speDATA.data.sickRoom.dept}}
19
+					<text style="width: 4em;text-align: center;margin-left: 1em;margin-right: 1em;" class="newicon newicon-arrow-right-full"></text>
20
+					{{speDATA.data.checkDept.dept}}</view>
21
+					<view class="list" v-if="speDATA.speVerifyType=='collectDept'
22
+					|| speDATA.speVerifyType=='testDept' || speDATA.speVerifyType=='tubeType'
23
+					|| speDATA.speVerifyType=='urgent'">
24
+						<checkbox-group @change="forceDeptInputBlur">
25
+						  <checkbox value="addConfig" :checked="addConfig" color="#49b856" />{{msg}}
26
+						</checkbox-group>
27
+					</view>
28
+				</view>
29
+			</view>
30
+			<view class="foot_btn_spe">
31
+			  <view class="btn green" @click="confirm()">是</view>
32
+			  <view class="btn gray" @click="cancel()">否</view>
33
+			</view>
34
+		</view>
35
+  </view>
36
+</template>
37
+
38
+<script>
39
+import {
40
+    get,
41
+    post,
42
+    SM
43
+  } from "../../http/http.js";
44
+export default {
45
+  data() {
46
+    return {
47
+      addConfig:false,
48
+			msg:null,
49
+			// 终点科室标红
50
+			isEndDeptRed: false,
51
+			currentCode: '', //当前小扫描的科室二维码
52
+			deptId: undefined,
53
+			handover: undefined,
54
+			SMFlag: true,
55
+			// 交接人信息
56
+			accountObj: undefined,
57
+			// 完成扫描的id
58
+			wcId: "",
59
+			wcFlag: false,
60
+			// 弹窗model
61
+			models: {
62
+			  disjunctor: false,
63
+			},
64
+			// 单选框弹窗model1
65
+			models1: {
66
+			  disjunctor: false,
67
+			},
68
+			// 完成扫描弹窗model1
69
+			models2: {
70
+			  disjunctor: false,
71
+			},
72
+			infoDATA: {},
73
+			res: {},
74
+			infoType: "",
75
+			DEPTCode: "",
76
+			RESData: {},
77
+			DEPT: "",
78
+			dataId: "",
79
+			type: "",
80
+			model: {},
81
+			speNum: 0,
82
+			queryObj: {}, //路由传递过来的数据
83
+			selectRadio: [], //单选框选中的数据,第一项是qrcode,第二项是名称
84
+			gotoFlag: true,
85
+			content: "",
86
+			taskTypeId:"",
87
+			errorModal:null,
88
+			speDATA:null,
89
+			interceptData:null,
90
+			intercept:null,
91
+    };
92
+  },
93
+	onLoad(options){
94
+		console.log(77776666,options)
95
+		this.intercept = options.intercept
96
+		this.queryObj = options;
97
+		if (options.model) {
98
+		  this.infoDATA = JSON.parse(options.model);
99
+			this.speDATA = JSON.parse(options.model);
100
+		}
101
+		
102
+		if (options.accountObj && options.accountObj != "undefined") {
103
+		  this.accountObj = JSON.parse(options.accountObj);
104
+		}
105
+		if (options.deptId && options.deptId != "undefined") {
106
+		  this.deptId = options.deptId;
107
+		}
108
+		if (options.handover && options.handover != "undefined") {
109
+		  this.handover = options.handover;
110
+		}
111
+		this.dataId = options.id;
112
+		if(options.taskTypeId){
113
+			this.taskTypeId = options.taskTypeId
114
+		}else if(this.infoDATA.workOrderList && this.infoDATA.workOrderList.length>0){
115
+			this.taskTypeId = this.infoDATA.workOrderList[0].taskType.id
116
+		}
117
+		this.RESData = options.resData;
118
+		this.res["status"] = options.status;
119
+		this.res["msg"] = options.msg;
120
+		this.res["patient"] = options.patient;
121
+		this.res["patientCode"] = options.patientCode;
122
+		this.res["deptName"] = options.deptName;
123
+		this.res["bedNum"] = options.bedNum;
124
+		this.infoType = options.type1;
125
+	
126
+		if (options.dept) {
127
+		  this.DEPT = options.dept;
128
+		}
129
+		if (options.speNum) {
130
+		  this.speNum = options.speNum;
131
+		}
132
+		this.DEPTCode = options.deptCode;
133
+		this.type = options.type;
134
+		this.setMsg()
135
+	},
136
+  methods: {
137
+		setMsg(){
138
+			if(this.speDATA.speVerifyType=='collectDept'){
139
+				this.msg = '增加收取科室'
140
+			}else if(this.speDATA.speVerifyType=='testDept'){
141
+				this.msg = '收取本科室不在提示'
142
+			}else if(this.speDATA.speVerifyType=='tubeType'){
143
+				this.msg = '收取此试管类型不在提示'
144
+			}else if(this.speDATA.speVerifyType=='urgent'){
145
+				this.msg = '记录本次操作,不在提示'
146
+			}
147
+		},
148
+		forceDeptInputBlur(e){
149
+			this.addConfig = e.detail.value.length > 0
150
+		},
151
+    confirm(){
152
+			if(this.speDATA.speVerifyType!='collectDept'
153
+			&& this.speDATA.speVerifyType!='testDept' && this.speDATA.speVerifyType!='tubeType'
154
+			&& this.speDATA.speVerifyType!='urgent'){
155
+				this.addConfig = true
156
+			}
157
+			let data = {
158
+				code: this.speDATA.data.scode,
159
+				addConfig: this.addConfig
160
+			}
161
+			this.interceptData = data
162
+			this.hand_scanning_common(this.interceptData.code, 'scan')
163
+    },
164
+		// 手动输入标本和扫码公共方法
165
+		hand_scanning_common(ress1, type) {
166
+		  // ----------------
167
+		  uni.showLoading({
168
+		    title: "加载中",
169
+		    mask: true,
170
+		  });
171
+		  //检验二维码的有效性
172
+		  post("/dept/scanning", {
173
+		    content: ress1,
174
+		  }).then((result) => {
175
+		    this.SMFlag = true;
176
+		    this.currentCode = result.code;
177
+		    if (result.state == 200 || result.state == 201) {
178
+		      let codes = result.code;
179
+		      if (codes) {
180
+		        let speCode = codes;
181
+		        let data = {
182
+		          code: speCode,
183
+		          type: this.queryObj.type1,
184
+		          deptCode: this.DEPTCode,
185
+		          ids: [],
186
+							speVerifyType:null,
187
+							addConfig:null
188
+		        };
189
+						if(this.speDATA){
190
+							data.speVerifyType = this.speDATA.speVerifyType
191
+						}else{
192
+							delete data.speVerifyType
193
+						}
194
+						if(this.interceptData && this.interceptData.addConfig){
195
+							data.addConfig = 1
196
+						}else{
197
+							delete data.addConfig
198
+						}
199
+		        data.ids.push(this.dataId);
200
+		        let postType = "";
201
+		        if (this.type == "jPBag" || this.type == "drugsBag") {
202
+		          postType = "handleDrugsAndJp";
203
+		          if(this.type == "drugsBag"){
204
+		            delete data.ids;
205
+		          }
206
+		          data.deptId = this.deptId;
207
+		          data.handover = this.handover;
208
+		        }
209
+		        if (this.type == "specimen") {
210
+		          data["speCode"] = data.code;
211
+		          delete data.code;
212
+		          postType = "handleSpes";
213
+		        }
214
+		        if (this.type == "specimenPlan") {
215
+		          data["speCode"] = data.code;
216
+		          delete data.code;
217
+		          postType = "handlePlanSpes";
218
+		        }
219
+		        if (this.type == "inspect") {
220
+		          postType = "handleIns";
221
+		        }
222
+		        if (this.type == "patientTransport") {
223
+		          postType = "handleTrans";
224
+		        }
225
+		        post("/workerOrder/" + postType, data).then((ress) => {
226
+		          uni.hideLoading();
227
+							this.speDATA = null
228
+							this.interceptData = null
229
+		          if (ress.status == 200 || ress.status == 11111) {
230
+		            //标本和标本轮巡工单,扫描标本后会自动调用摄像头,继续扫描,直到status不是200
231
+		            if ((this.type == "specimenPlan" || this.type == "specimen") && ress.status != 11111) {
232
+									if(ress){
233
+										this.infoDATA = ress.data;
234
+										this.speNum = ress.specimenCount;
235
+										uni.redirectTo({
236
+											url: `../scanning_Result/scanning_Result?type=${
237
+											this.queryObj.type
238
+										}&type1=${
239
+											this.queryObj.type1
240
+										}&infoData=${encodeURIComponent(
241
+											JSON.stringify(ress.data)
242
+										)}&status=${ress.status}&msg=${ress.msg}&deptCode=${
243
+											this.queryObj.deptCode
244
+										}&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}&speNum=${this.speNum}&scanOrHand=scan&isEndDeptRed=${this.isEndDeptRed}`,
245
+										});
246
+									}
247
+		            }
248
+		          } else if (ress.status==513){
249
+								this.speDATA = ress
250
+								this.setMsg()
251
+							} else if(ress.status==10004){
252
+		            uni.showToast({
253
+		              icon: "none",
254
+		              title: ress.msg,
255
+		            });
256
+		          }else{
257
+								uni.redirectTo({
258
+								  url: `../scanning_Result/scanning_Result?type=${
259
+								  this.queryObj.type
260
+								}&type1=${this.queryObj.type1}&status=${ress.status}&msg=${
261
+								  ress.msg
262
+								}&deptCode=${this.queryObj.deptCode}&dept=${
263
+								  this.queryObj.dept
264
+								}&id=${this.dataId}&model=${encodeURIComponent(
265
+								  JSON.stringify(this.infoDATA)
266
+								)}&accountObj=${encodeURIComponent(JSON.stringify(this.accountObj))}&deptId=${this.deptId}&handover=${this.handover}&scanOrHand=scan&qrcode=${this.currentCode}`,
267
+								});
268
+							}
269
+		        });
270
+		      } else {
271
+		        uni.hideLoading();
272
+		      }
273
+		    } else {
274
+		      uni.hideLoading();
275
+		      uni.showToast({
276
+		        icon: "none",
277
+		        title: result.info || "接口获取数据失败!",
278
+		      });
279
+		    }
280
+		  });
281
+		},
282
+    cancel(){
283
+			uni.navigateBack();
284
+    },
285
+  },
286
+};
287
+</script>
288
+
289
+<style lang="less" scoped>
290
+.showModel {
291
+  // position: fixed;
292
+  // left: 0;
293
+  // right: 0;
294
+  // top: 0;
295
+  // bottom: 0;
296
+  // background-color: rgba(0, 0, 0, 0.2);
297
+  // z-index: 99;
298
+
299
+  .showModel__wrap {
300
+    // width: 90%;
301
+    // position: absolute;
302
+    // left: 50%;
303
+    // top: 50%;
304
+    // transform: translate(-50%, -50%);
305
+    background-color: #fff;
306
+    // border-radius: 12rpx;
307
+		height: 100vh;
308
+    .showModel__header {
309
+      font-size: 36rpx;
310
+      color: #000;
311
+			font-weight: bold;
312
+      height: 84rpx;
313
+      display: flex;
314
+      justify-content: center;
315
+      align-items: center;
316
+    }
317
+		.content{
318
+			background: #fff;
319
+			border-top: 1px solid #E6E6E6;
320
+			.content-tip{
321
+				text-align: center;
322
+				padding: 50rpx 0 30rpx 0;
323
+				font-size: 28rpx;
324
+			}
325
+			.content-box{
326
+				padding: 24rpx;
327
+				height: 83vh;
328
+				
329
+				.icon{
330
+					display: flex;
331
+					justify-content: center;
332
+					align-items: center;
333
+					.red{
334
+						font-size: 80rpx;
335
+					}
336
+					.error-text{
337
+						margin-left: 30rpx;
338
+						font-size: 40rpx;
339
+					}
340
+				}
341
+				
342
+				.flex{
343
+					display: flex;
344
+					justify-content: space-between;
345
+				}
346
+				
347
+				.weight{
348
+					font-weight: bold;
349
+					text-align: center;
350
+					font-size: 38rpx;
351
+				}
352
+				
353
+				.list{
354
+					padding: 20rpx 0;
355
+				}
356
+				
357
+				.content-item{
358
+					width: 80rpx;
359
+					height: 80rpx;
360
+					border-radius: 10rpx;
361
+					border: 1px solid #CCCCCC;
362
+					color: #000;
363
+					font-size: 32rpx;
364
+					// margin: 0 20rpx;
365
+					text-align: center;
366
+				}
367
+			}
368
+		}
369
+		.foot_btn_spe {
370
+			padding: 24rpx;
371
+		  line-height: 88rpx;
372
+		  height: 100rpx;
373
+		  text-align: center;
374
+		  display: flex;
375
+		  justify-content: space-between;
376
+		  flex-wrap: wrap;
377
+			
378
+		  view {
379
+		    height: 88rpx;
380
+		    width: 48%;
381
+		    color: #fff;
382
+		    border-radius: 8rpx;
383
+		    font-size: 32rpx;
384
+		    margin-top: 16rpx;
385
+		  }
386
+			
387
+			.green{
388
+				background-image: linear-gradient(to right, #72c172, #3bb197);
389
+				color: #fff !important;
390
+			}
391
+			
392
+			.gray{
393
+				background: #afafaf;
394
+				color: #fff;
395
+			}
396
+		}
397
+  }
398
+	.green{
399
+		color: #49B856;
400
+	}
401
+	.mar-rig{
402
+		margin-right: 8rpx;
403
+	}
404
+}
405
+</style>

+ 1 - 1
pages/specimenCheckingDetail/specimenCheckingDetail.vue

@@ -35,7 +35,7 @@
35 35
         <view class="page_item_cont">
36 36
           <view class="page_item_cont_T">
37 37
             <view class="page_item_cont_title">
38
-              <view style="width: 10em;"> {{item.stype ? item.stype.name : '无'}} </view>
38
+              <view style="width: 10em;"> {{item.stype ? item.stype.name : '无'}} <text v-if="item.tubeType">、</text> {{item.tubeType && item.tubeType.name}}</view>
39 39
               <view class="text_big">{{ item.scode || "无" }}</view>
40 40
             </view>
41 41
             <view class="page_item_cont_title">

+ 3 - 2
pages/specimenHandoverNew/specimenHandoverNew.vue

@@ -26,11 +26,11 @@
26 26
             项目名称<text class="red">({{typeList.specimenDesc.titleCount}})</text>
27 27
           </view>
28 28
 					<view class="name" v-if="type === 'speTubeType'">
29
-					  试管类型<text class="red">({{typeList.specimenDesc.titleCount}})</text>
29
+					  试管类型<text class="red">({{typeList.speTubeType.titleCount}})</text>
30 30
 					</view>
31 31
 					<view class="value" v-if="type === 'speTubeType'">
32 32
 					  <view>
33
-					    标本数量<text class="red">({{typeList.patient.count}})</text>
33
+					    标本数量<text class="red">({{typeList.speTubeType.count}})</text>
34 34
 					  </view>
35 35
 					</view>
36 36
           <view class="value" v-if="type === 'patient'">
@@ -296,6 +296,7 @@
296 296
             this.typeList[type].titleCount = result.title || 0;
297 297
             if(this.type === type){
298 298
               this.dataList = result.data || [];
299
+							console.log(7777,this.dataList)
299 300
             }
300 301
           } else {
301 302
             uni.showToast({