seimin 1 settimana fa
parent
commit
3808aa9be8

+ 10 - 4
components/backModel/backModel.vue

@@ -89,11 +89,16 @@
89 89
     methods: {
90 90
       // 获取退回原因
91 91
       getReasonForReturn() {
92
-        post('/common/common/getDictionary', {
93
-          "type": "list",
94
-          "key": "reason_for_return"
92
+        post('/simple/data/fetchDataList/dictionary', {
93
+            "idx": 0,
94
+            "sum": 9999,
95
+            "dictionary": {
96
+                "key": "reason_for_return",
97
+                "extra5": "1"
98
+                
99
+            }
95 100
         }).then(res => {
96
-          this.list = res;
101
+          this.list = res.list || [];
97 102
         })
98 103
       },
99 104
       // 修改退回原因
@@ -160,6 +165,7 @@
160 165
           text-align: left;
161 166
           width: 100%;
162 167
           padding: 0 16rpx;
168
+          box-sizing: border-box;
163 169
         }
164 170
 
165 171
         .pickerBack {

+ 6 - 6
pages/inspectList/inspectList.vue

@@ -24,7 +24,7 @@
24 24
               <view class="page_item_top_L">
25 25
                 <view class="L_time" @click="toPatientDetail(item)">
26 26
                   <template v-if="!item.execDept">
27
-                    <!-- 没有标记出行方式 -->
27
+                    <!-- 没有标记陪检方式 -->
28 28
                     <view class="circle"></view>
29 29
                     <view class="circle"></view>
30 30
                     <view class="circle"></view>
@@ -55,7 +55,7 @@
55 55
                     <text class="p_info">{{ item.residenceNo }}</text>
56 56
                   </view>
57 57
                   <view class="column">
58
-                    <text class="p_title">出行方式:</text>
58
+                    <text class="p_title">陪检方式:</text>
59 59
                     <text class="p_info">{{ (item.patientDTO && item.patientDTO.tripTypeDTO) ? item.patientDTO.tripTypeDTO.inspectMode : '' }}</text>
60 60
                   </view>
61 61
                 </view>
@@ -307,7 +307,7 @@
307 307
           "id": this.currentInspect.id,
308 308
           "execDeptId": execDeptId
309 309
         };
310
-        
310
+
311 311
         uni.showLoading({
312 312
           title: '加载中',
313 313
           mask: true,
@@ -679,13 +679,13 @@
679 679
     box-sizing: border-box;
680 680
     border-radius: 4rpx;
681 681
     background-color: #E5E8ED;
682
-  
682
+
683 683
     .toolbar-icon {
684 684
       font-size: 52rpx;
685 685
       margin-right: 16rpx;
686 686
       color: #49B856;
687 687
     }
688
-  
688
+
689 689
     .toolbar-sao {
690 690
       font-size: 36rpx;
691 691
       color: #333;
@@ -735,7 +735,7 @@
735 735
         .tab_dept {
736 736
           position: relative;
737 737
         }
738
-        
738
+
739 739
         .moreFilter {
740 740
           width: 48rpx;
741 741
           position: absolute;

+ 27 - 2
pages/receipt_infopage/receipt_infopage.vue

@@ -497,6 +497,7 @@
497 497
     },
498 498
     data() {
499 499
       return {
500
+        deptCodeScan: '',//特殊关闭,扫码结果
500 501
         patientHandoverData: {},
501 502
         patientHandoverCode: '',
502 503
         other: {
@@ -1516,7 +1517,30 @@
1516 1517
         });
1517 1518
       },
1518 1519
       // 特殊情况关闭按钮
1519
-      specialCloseClick() {
1520
+      specialCloseClick(){
1521
+        // 是否需要验证科室码
1522
+        if(this.infoDATA.taskType.closeOrderCheckDept == 1){
1523
+          this.specialCloseClickScan();
1524
+        }else{
1525
+          this.specialCloseClickText();
1526
+        }
1527
+      },
1528
+      // 扫起点科室或终点科室
1529
+      specialCloseClickScan(){
1530
+        if (!this.SMFlag) {
1531
+          return;
1532
+        }
1533
+        this.SMFlag = false;
1534
+        SM().then((content) => {
1535
+          this.SMFlag = true;
1536
+          this.specialCloseClickText(content);
1537
+        }).catch(err => {
1538
+          this.SMFlag = true;
1539
+        });
1540
+      },
1541
+      // 特殊情况填写内容
1542
+      specialCloseClickText(content) {
1543
+        this.deptCodeScan = content;
1520 1544
         this.textareaFlag = true;
1521 1545
         this.models = {
1522 1546
           title: "特殊情况关闭",
@@ -1536,6 +1560,7 @@
1536 1560
         post("/workerOrder/specialCaseClose", {
1537 1561
           workOrderId: this.dataId,
1538 1562
           reason: this.textareaText.trim(),
1563
+          deptCode: this.deptCodeScan || undefined,
1539 1564
         }).then((result) => {
1540 1565
           this.models.disjunctor = false;
1541 1566
           this.textareaFlag = false;
@@ -1554,7 +1579,7 @@
1554 1579
             uni.hideLoading();
1555 1580
             this.models = {
1556 1581
               disjunctor: true,
1557
-              content: "工单关闭失败",
1582
+              content: result.msg || '工单关闭失败',
1558 1583
               icon: "error",
1559 1584
               operate: {
1560 1585
                 know: "返回",

+ 21 - 50
pages/receiptpage/receiptpage.vue

@@ -116,38 +116,23 @@
116 116
                   }}<text v-if="item.reservationNumber">({{ item.reservationNumber }})</text>
117 117
                 </view>
118 118
                 <view style="font-weight: bold;">
119
-                  患者信息 : {{ item.patient ? item.patient.patientName : "-" }}({{
120
-                    item.patient ? item.patient.bedNum : "-"
121
-                  }})
122
-                </view>
123
-                <view v-if="item.goods">
124
-                  携带设备 :
125
-                  <text>{{ item.goods || "暂无" }}</text>
119
+                  患者信息 : {{ item.patient ? item.patient.patientName : "" }}({{ item.patient ? item.patient.bedNum : "" }})-{{ item.patient ? item.patient.residenceNo : "" }}
126 120
                 </view>
127 121
                 <view v-if="item.inspectScore">
128 122
                   陪检方式 :
129 123
                   <text>{{ item.inspectScore ? item.inspectScore.inspectMode : "暂无" }}</text>
130 124
                 </view>
125
+                <view v-if="item.goods">
126
+                  携带设备 :
127
+                  <text>{{ item.goods || "暂无" }}</text>
128
+                </view>
131 129
                 <view style="word-break: break-all;" v-if="item.workOrderRemark">
132 130
                   注意事项 :
133 131
                   <text>{{ item.workOrderRemark || "" }}</text>
134 132
                 </view>
135
-                <view v-if="item.patient.careLevel">
136
-                  护理等级 :
137
-                  <text :class="[
138
-                      item.patient.careLevel.value == 0 ||
139
-                      item.patient.careLevel.value == 1
140
-                        ? 'red'
141
-                        : 'green',
142
-                    ]">{{ item.patient.careLevel.name }}</text>
143
-                </view>
144
-                <view v-if="item.patient.illnessState">
145
-                  病情级别 :
146
-                  <text :class="{
147
-                      red:
148
-                        item.patient.illnessState.value == 2 ||
149
-                        item.patient.illnessState.value == 3,
150
-                    }">{{ item.patient.illnessState.name }}</text>
133
+                <view v-if="item.patient.careLevel || item.patient.illnessState">
134
+                  护理信息 :
135
+                  <template v-if="item.patient.careLevel"><text :class="[ item.patient.careLevel.value == 0 || item.patient.careLevel.value == 1 ? 'red' : 'green']">{{ item.patient.careLevel.name }}</text></template> <template v-if="item.patient.illnessState"><text :class="{ red: item.patient.illnessState.value == 2 || item.patient.illnessState.value == 3}">{{ item.patient.illnessState.name }}</text></template>
151 136
                 </view>
152 137
                 <view v-if="item.isAccompany === 1 || item.isAccompany === 0">
153 138
                   陪同情况 :
@@ -164,38 +149,23 @@
164 149
                   }}<text v-if="item.reservationNumber">({{ item.reservationNumber }})</text>
165 150
                 </view>
166 151
                 <view style="font-weight: bold;">
167
-                  患者信息 : {{ item.patient ? item.patient.patientName : "-" }}({{
168
-                    item.patient ? item.patient.bedNum : "-"
169
-                  }})
170
-                </view>
171
-                <view v-if="item.goods">
172
-                  携带设备 :
173
-                  <text>{{ item.goods || "暂无" }}</text>
152
+                  患者信息 : {{ item.patient ? item.patient.patientName : "" }}({{ item.patient ? item.patient.bedNum : "" }})-{{ item.patient ? item.patient.residenceNo : "" }}
174 153
                 </view>
175 154
                 <view v-if="item.inspectScore">
176 155
                   陪检方式 :
177 156
                   <text>{{ item.inspectScore ? item.inspectScore.inspectMode : "暂无" }}</text>
178 157
                 </view>
158
+                <view v-if="item.goods">
159
+                  携带设备 :
160
+                  <text>{{ item.goods || "暂无" }}</text>
161
+                </view>
179 162
                 <view style="word-break: break-all;" v-if="item.workOrderRemark">
180 163
                   注意事项 :
181 164
                   <text>{{ item.workOrderRemark || "暂无" }}</text>
182 165
                 </view>
183
-                <view v-if="item.patient.careLevel">
184
-                  护理等级 :
185
-                  <text :class="[
186
-                      item.patient.careLevel.value == 0 ||
187
-                      item.patient.careLevel.value == 1
188
-                        ? 'red'
189
-                        : 'green',
190
-                    ]">{{ item.patient.careLevel.name }}</text>
191
-                </view>
192
-                <view v-if="item.patient.illnessState">
193
-                  病情级别 :
194
-                  <text :class="{
195
-                      red:
196
-                        item.patient.illnessState.value == 2 ||
197
-                        item.patient.illnessState.value == 3,
198
-                    }">{{ item.patient.illnessState.name }}</text>
166
+                <view v-if="item.patient.careLevel || item.patient.illnessState">
167
+                  护理信息 :
168
+                  <template v-if="item.patient.careLevel"><text :class="[ item.patient.careLevel.value == 0 || item.patient.careLevel.value == 1 ? 'red' : 'green']">{{ item.patient.careLevel.name }}</text></template> <template v-if="item.patient.illnessState"><text :class="{ red: item.patient.illnessState.value == 2 || item.patient.illnessState.value == 3}">{{ item.patient.illnessState.name }}</text></template>
199 169
                 </view>
200 170
                 <view v-if="item.isAccompany === 1 || item.isAccompany === 0">
201 171
                   陪同情况 :
@@ -284,18 +254,19 @@
284 254
               <text class="red" v-if="item.gdState.value == 4 && item.taskType.carryingCourses[0].checkoutMethod.value == 1">可通过扫描科室码或者拍照进行签到</text>
285 255
               <text class="red" v-if="item.gdState.value == 4 && item.taskType.carryingCourses[0].checkoutMethod.value == 2">扫描交接人员二维码进行交接</text>
286 256
             </view>
287
-            <!-- 如果不是患者陪检或患者转运或其他,万能交接 -->
257
+            <!-- 如果不是患者陪检,患者转运,其他,万能交接,标本配送,标本轮巡 -->
288 258
             <view class="page_item_btn" v-if="
289 259
                 selectedLabelSlots == '执行中' &&
290 260
                 item.taskType.associationType.value != 'patientTransport' &&
291 261
                 item.taskType.associationType.value != 'inspect' &&
292 262
                 item.taskType.associationType.value != 'other' &&
293
-                item.taskType.associationType.value != 'ordinary' &&
294
-                !(item.taskType.associationType.value == 'specimen' && item.taskType.carryingCourses[1].checkoutMethod.value == 3 && item.gdState.value == 5)
263
+                item.taskType.associationType.value != 'specimen' &&
264
+                item.taskType.associationType.value != 'specimenPlan' &&
265
+                item.taskType.associationType.value != 'ordinary'
295 266
               " hover-class="seimin-btn-hover">
296 267
               <smallScreen :sData="item" :sType="2">扫码</smallScreen>
297 268
             </view>
298
-            <!-- 如果不是静配,药配,标本配送,标本轮巡,万能交接 -->
269
+            <!-- 如果不是静配,药配,万能交接,标本配送,标本轮巡-->
299 270
             <view class="page_item_btn_wrap" v-if="
300 271
                 selectedLabelSlots == '执行中' &&
301 272
                 item.taskType.associationType.value != 'jPBag' &&

+ 111 - 3
pages/scanning_B/scanning_B.vue

@@ -64,10 +64,13 @@
64 64
 				<text v-html="speContent"></text>
65 65
 			</uni-popup-dialog>
66 66
 		</uni-popup>
67
+    <!-- 填写交接人工号弹窗 -->
68
+    <selectAccount @click.stop.native v-if="hosModels1.disjunctor" :disjunctor="hosModels1.disjunctor" @ok="hosOk1" @cancel="hosCancel1"></selectAccount>
67 69
   </view>
68 70
 </template>
69 71
 <script>
70 72
   import {
73
+    SM,
71 74
     get,
72 75
     post,
73 76
     webHandle
@@ -75,6 +78,8 @@
75 78
   export default {
76 79
     data() {
77 80
       return {
81
+        SMFlag:true,
82
+        extraData: {},
78 83
         loginUser: uni.getStorageSync("userData").user,
79 84
         bigScanShowSignBtn: false,//显示接单签到按钮或待到达本人
80 85
         bigScanArriveNotOwner: false,//支持待到达非本人
@@ -94,6 +99,10 @@
94 99
         hosModels: {
95 100
           disjunctor: false,
96 101
         },
102
+        // 填写交接人工号弹窗model
103
+        hosModels1: {
104
+          disjunctor: false,
105
+        },
97 106
         // 退回弹窗model
98 107
         backModels: {
99 108
           disjunctor: false,
@@ -359,9 +368,106 @@
359 368
           });
360 369
         }
361 370
       },
371
+      // ==================填写工号 start===============
372
+      // 填写交接人工号-确认
373
+      hosOk1(data) {
374
+        console.log(data);
375
+        const {
376
+          accountName,
377
+          account,
378
+          accountId
379
+        } = data;
380
+        if (!accountName && !account) {
381
+          //没有填写交接人
382
+          uni.showModal({
383
+            title: "提示",
384
+            content: "请填写交接人工号!",
385
+            showCancel: false,
386
+            success: function(res) {
387
+              if (res.confirm) {
388
+                console.log("用户点击确定");
389
+              } else if (res.cancel) {
390
+                console.log("用户点击取消");
391
+              }
392
+            },
393
+          });
394
+          return;
395
+        } else if ((!accountName && account) || (accountName && !account)) {
396
+          //没有填写交接人
397
+          uni.showModal({
398
+            title: "提示",
399
+            content: "请填写正确的交接人工号!",
400
+            showCancel: false,
401
+            success: function(res) {
402
+              if (res.confirm) {
403
+                console.log("用户点击确定");
404
+              } else if (res.cancel) {
405
+                console.log("用户点击取消");
406
+              }
407
+            },
408
+          });
409
+          return;
410
+        }
411
+        this.hosModels1.disjunctor = false;
412
+        this.validateAccount1(data);
413
+      },
414
+      // 填写交接人工号-取消
415
+      hosCancel1() {
416
+        this.hosModels1.disjunctor = false;
417
+        this.flag = true;
418
+      },
419
+      // 填写交接人工号弹窗
420
+      showSelectAccount1() {
421
+        this.hosModels1 = {
422
+          disjunctor: true,
423
+        };
424
+      },
425
+      // 手动填写工号校验
426
+      validateAccount1(accountObj){
427
+        const { accountName, account, accountId } = accountObj;
428
+        
429
+        this.backHandlerAfter(this.extraData.specimen, this.extraData.workorderId, accountObj)
430
+      },
431
+      // ==================填写工号 end===============
432
+      // 扫科室码
433
+      scanDeptCode(){
434
+        if (!this.SMFlag) {
435
+          return;
436
+        }
437
+        this.SMFlag = false;
438
+        SM().then((content) => {
439
+          this.SMFlag = true;
440
+          this.backHandlerAfter(this.extraData.specimen, this.extraData.workorderId, this.extraData.data, content)
441
+        }).catch(err => {
442
+          this.SMFlag = true;
443
+        });
444
+      },
445
+      // 退回接口调用前查询验证方式
446
+      backHandler(specimen, workorderId, data){
447
+        this.extraData = {
448
+          specimen,
449
+          workorderId,
450
+          data,
451
+        }
452
+        console.log(this.backParams);
453
+        // extra7 验证方式 0无 1科室码 2动态码 3 填写工号
454
+        if(this.backParams.reasonForReturn.extra7 == 1){
455
+          // 科室码
456
+          this.scanDeptCode();
457
+        }else if(this.backParams.reasonForReturn.extra7 == 2){
458
+          // 动态码
459
+          this.scanDeptCode();
460
+        }else if(this.backParams.reasonForReturn.extra7 == 3){
461
+          // 填写工号
462
+          this.showSelectAccount();
463
+        }else{
464
+          // 无
465
+          this.backHandlerAfter(specimen, workorderId, data)
466
+        }
467
+      },
362 468
       // 退回
363
-      backHandler(specimen, workorderId, data) {
364
-        console.log(specimen);
469
+      backHandlerAfter(specimen, workorderId, data, deptCode) {
470
+        console.log(specimen, workorderId, data, deptCode);
365 471
         const {
366 472
           reasonForReturn,
367 473
           remarks,
@@ -379,6 +485,7 @@
379 485
           handoverId: data ? data.accountId : undefined,
380 486
           handoverName: data ? data.accountName : undefined,
381 487
           gdId: workorderId || undefined,
488
+          deptCode: deptCode || undefined,
382 489
         }
383 490
         post('/workerOrder/returnSpecimen', postData).then(res => {
384 491
           uni.hideLoading();
@@ -393,7 +500,7 @@
393 500
             this.models = {
394 501
               disjunctor: true,
395 502
               title: "提示",
396
-              content: `标本退回失败`,
503
+              content: res.msg || `标本退回失败`,
397 504
               icon: "error",
398 505
             };
399 506
           }
@@ -745,6 +852,7 @@
745 852
       },
746 853
     },
747 854
 		onShow() {
855
+      this.SMFlag = true;
748 856
 			let that = this
749 857
 			// #ifdef APP-PLUS
750 858
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器