Browse Source

白求恩优化

seimin 1 week ago
parent
commit
3808aa9be8

+ 10 - 4
components/backModel/backModel.vue

@@ -89,11 +89,16 @@
89
     methods: {
89
     methods: {
90
       // 获取退回原因
90
       // 获取退回原因
91
       getReasonForReturn() {
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
         }).then(res => {
100
         }).then(res => {
96
-          this.list = res;
101
+          this.list = res.list || [];
97
         })
102
         })
98
       },
103
       },
99
       // 修改退回原因
104
       // 修改退回原因
@@ -160,6 +165,7 @@
160
           text-align: left;
165
           text-align: left;
161
           width: 100%;
166
           width: 100%;
162
           padding: 0 16rpx;
167
           padding: 0 16rpx;
168
+          box-sizing: border-box;
163
         }
169
         }
164
 
170
 
165
         .pickerBack {
171
         .pickerBack {

+ 6 - 6
pages/inspectList/inspectList.vue

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

+ 27 - 2
pages/receipt_infopage/receipt_infopage.vue

@@ -497,6 +497,7 @@
497
     },
497
     },
498
     data() {
498
     data() {
499
       return {
499
       return {
500
+        deptCodeScan: '',//特殊关闭,扫码结果
500
         patientHandoverData: {},
501
         patientHandoverData: {},
501
         patientHandoverCode: '',
502
         patientHandoverCode: '',
502
         other: {
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
         this.textareaFlag = true;
1544
         this.textareaFlag = true;
1521
         this.models = {
1545
         this.models = {
1522
           title: "特殊情况关闭",
1546
           title: "特殊情况关闭",
@@ -1536,6 +1560,7 @@
1536
         post("/workerOrder/specialCaseClose", {
1560
         post("/workerOrder/specialCaseClose", {
1537
           workOrderId: this.dataId,
1561
           workOrderId: this.dataId,
1538
           reason: this.textareaText.trim(),
1562
           reason: this.textareaText.trim(),
1563
+          deptCode: this.deptCodeScan || undefined,
1539
         }).then((result) => {
1564
         }).then((result) => {
1540
           this.models.disjunctor = false;
1565
           this.models.disjunctor = false;
1541
           this.textareaFlag = false;
1566
           this.textareaFlag = false;
@@ -1554,7 +1579,7 @@
1554
             uni.hideLoading();
1579
             uni.hideLoading();
1555
             this.models = {
1580
             this.models = {
1556
               disjunctor: true,
1581
               disjunctor: true,
1557
-              content: "工单关闭失败",
1582
+              content: result.msg || '工单关闭失败',
1558
               icon: "error",
1583
               icon: "error",
1559
               operate: {
1584
               operate: {
1560
                 know: "返回",
1585
                 know: "返回",

+ 21 - 50
pages/receiptpage/receiptpage.vue

@@ -116,38 +116,23 @@
116
                   }}<text v-if="item.reservationNumber">({{ item.reservationNumber }})</text>
116
                   }}<text v-if="item.reservationNumber">({{ item.reservationNumber }})</text>
117
                 </view>
117
                 </view>
118
                 <view style="font-weight: bold;">
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
                 </view>
120
                 </view>
127
                 <view v-if="item.inspectScore">
121
                 <view v-if="item.inspectScore">
128
                   陪检方式 :
122
                   陪检方式 :
129
                   <text>{{ item.inspectScore ? item.inspectScore.inspectMode : "暂无" }}</text>
123
                   <text>{{ item.inspectScore ? item.inspectScore.inspectMode : "暂无" }}</text>
130
                 </view>
124
                 </view>
125
+                <view v-if="item.goods">
126
+                  携带设备 :
127
+                  <text>{{ item.goods || "暂无" }}</text>
128
+                </view>
131
                 <view style="word-break: break-all;" v-if="item.workOrderRemark">
129
                 <view style="word-break: break-all;" v-if="item.workOrderRemark">
132
                   注意事项 :
130
                   注意事项 :
133
                   <text>{{ item.workOrderRemark || "" }}</text>
131
                   <text>{{ item.workOrderRemark || "" }}</text>
134
                 </view>
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
                 </view>
136
                 </view>
152
                 <view v-if="item.isAccompany === 1 || item.isAccompany === 0">
137
                 <view v-if="item.isAccompany === 1 || item.isAccompany === 0">
153
                   陪同情况 :
138
                   陪同情况 :
@@ -164,38 +149,23 @@
164
                   }}<text v-if="item.reservationNumber">({{ item.reservationNumber }})</text>
149
                   }}<text v-if="item.reservationNumber">({{ item.reservationNumber }})</text>
165
                 </view>
150
                 </view>
166
                 <view style="font-weight: bold;">
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
                 </view>
153
                 </view>
175
                 <view v-if="item.inspectScore">
154
                 <view v-if="item.inspectScore">
176
                   陪检方式 :
155
                   陪检方式 :
177
                   <text>{{ item.inspectScore ? item.inspectScore.inspectMode : "暂无" }}</text>
156
                   <text>{{ item.inspectScore ? item.inspectScore.inspectMode : "暂无" }}</text>
178
                 </view>
157
                 </view>
158
+                <view v-if="item.goods">
159
+                  携带设备 :
160
+                  <text>{{ item.goods || "暂无" }}</text>
161
+                </view>
179
                 <view style="word-break: break-all;" v-if="item.workOrderRemark">
162
                 <view style="word-break: break-all;" v-if="item.workOrderRemark">
180
                   注意事项 :
163
                   注意事项 :
181
                   <text>{{ item.workOrderRemark || "暂无" }}</text>
164
                   <text>{{ item.workOrderRemark || "暂无" }}</text>
182
                 </view>
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
                 </view>
169
                 </view>
200
                 <view v-if="item.isAccompany === 1 || item.isAccompany === 0">
170
                 <view v-if="item.isAccompany === 1 || item.isAccompany === 0">
201
                   陪同情况 :
171
                   陪同情况 :
@@ -284,18 +254,19 @@
284
               <text class="red" v-if="item.gdState.value == 4 && item.taskType.carryingCourses[0].checkoutMethod.value == 1">可通过扫描科室码或者拍照进行签到</text>
254
               <text class="red" v-if="item.gdState.value == 4 && item.taskType.carryingCourses[0].checkoutMethod.value == 1">可通过扫描科室码或者拍照进行签到</text>
285
               <text class="red" v-if="item.gdState.value == 4 && item.taskType.carryingCourses[0].checkoutMethod.value == 2">扫描交接人员二维码进行交接</text>
255
               <text class="red" v-if="item.gdState.value == 4 && item.taskType.carryingCourses[0].checkoutMethod.value == 2">扫描交接人员二维码进行交接</text>
286
             </view>
256
             </view>
287
-            <!-- 如果不是患者陪检或患者转运或其他,万能交接 -->
257
+            <!-- 如果不是患者陪检,患者转运,其他,万能交接,标本配送,标本轮巡 -->
288
             <view class="page_item_btn" v-if="
258
             <view class="page_item_btn" v-if="
289
                 selectedLabelSlots == '执行中' &&
259
                 selectedLabelSlots == '执行中' &&
290
                 item.taskType.associationType.value != 'patientTransport' &&
260
                 item.taskType.associationType.value != 'patientTransport' &&
291
                 item.taskType.associationType.value != 'inspect' &&
261
                 item.taskType.associationType.value != 'inspect' &&
292
                 item.taskType.associationType.value != 'other' &&
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
               " hover-class="seimin-btn-hover">
266
               " hover-class="seimin-btn-hover">
296
               <smallScreen :sData="item" :sType="2">扫码</smallScreen>
267
               <smallScreen :sData="item" :sType="2">扫码</smallScreen>
297
             </view>
268
             </view>
298
-            <!-- 如果不是静配,药配,标本配送,标本轮巡,万能交接 -->
269
+            <!-- 如果不是静配,药配,万能交接,标本配送,标本轮巡-->
299
             <view class="page_item_btn_wrap" v-if="
270
             <view class="page_item_btn_wrap" v-if="
300
                 selectedLabelSlots == '执行中' &&
271
                 selectedLabelSlots == '执行中' &&
301
                 item.taskType.associationType.value != 'jPBag' &&
272
                 item.taskType.associationType.value != 'jPBag' &&

+ 111 - 3
pages/scanning_B/scanning_B.vue

@@ -64,10 +64,13 @@
64
 				<text v-html="speContent"></text>
64
 				<text v-html="speContent"></text>
65
 			</uni-popup-dialog>
65
 			</uni-popup-dialog>
66
 		</uni-popup>
66
 		</uni-popup>
67
+    <!-- 填写交接人工号弹窗 -->
68
+    <selectAccount @click.stop.native v-if="hosModels1.disjunctor" :disjunctor="hosModels1.disjunctor" @ok="hosOk1" @cancel="hosCancel1"></selectAccount>
67
   </view>
69
   </view>
68
 </template>
70
 </template>
69
 <script>
71
 <script>
70
   import {
72
   import {
73
+    SM,
71
     get,
74
     get,
72
     post,
75
     post,
73
     webHandle
76
     webHandle
@@ -75,6 +78,8 @@
75
   export default {
78
   export default {
76
     data() {
79
     data() {
77
       return {
80
       return {
81
+        SMFlag:true,
82
+        extraData: {},
78
         loginUser: uni.getStorageSync("userData").user,
83
         loginUser: uni.getStorageSync("userData").user,
79
         bigScanShowSignBtn: false,//显示接单签到按钮或待到达本人
84
         bigScanShowSignBtn: false,//显示接单签到按钮或待到达本人
80
         bigScanArriveNotOwner: false,//支持待到达非本人
85
         bigScanArriveNotOwner: false,//支持待到达非本人
@@ -94,6 +99,10 @@
94
         hosModels: {
99
         hosModels: {
95
           disjunctor: false,
100
           disjunctor: false,
96
         },
101
         },
102
+        // 填写交接人工号弹窗model
103
+        hosModels1: {
104
+          disjunctor: false,
105
+        },
97
         // 退回弹窗model
106
         // 退回弹窗model
98
         backModels: {
107
         backModels: {
99
           disjunctor: false,
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
         const {
471
         const {
366
           reasonForReturn,
472
           reasonForReturn,
367
           remarks,
473
           remarks,
@@ -379,6 +485,7 @@
379
           handoverId: data ? data.accountId : undefined,
485
           handoverId: data ? data.accountId : undefined,
380
           handoverName: data ? data.accountName : undefined,
486
           handoverName: data ? data.accountName : undefined,
381
           gdId: workorderId || undefined,
487
           gdId: workorderId || undefined,
488
+          deptCode: deptCode || undefined,
382
         }
489
         }
383
         post('/workerOrder/returnSpecimen', postData).then(res => {
490
         post('/workerOrder/returnSpecimen', postData).then(res => {
384
           uni.hideLoading();
491
           uni.hideLoading();
@@ -393,7 +500,7 @@
393
             this.models = {
500
             this.models = {
394
               disjunctor: true,
501
               disjunctor: true,
395
               title: "提示",
502
               title: "提示",
396
-              content: `标本退回失败`,
503
+              content: res.msg || `标本退回失败`,
397
               icon: "error",
504
               icon: "error",
398
             };
505
             };
399
           }
506
           }
@@ -745,6 +852,7 @@
745
       },
852
       },
746
     },
853
     },
747
 		onShow() {
854
 		onShow() {
855
+      this.SMFlag = true;
748
 			let that = this
856
 			let that = this
749
 			// #ifdef APP-PLUS
857
 			// #ifdef APP-PLUS
750
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
858
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器