Browse Source

标本扫描修改

seimin 3 years ago
parent
commit
dbfa06171b

+ 3 - 0
App.vue

@@ -123,4 +123,7 @@
123
   .footerOtherMargin{
123
   .footerOtherMargin{
124
     margin-bottom: 174rpx!important;
124
     margin-bottom: 174rpx!important;
125
   }
125
   }
126
+  .red{
127
+    color: red!important;
128
+  }
126
 </style>
129
 </style>

+ 8 - 0
pages.json

@@ -176,6 +176,14 @@
176
         }
176
         }
177
       }
177
       }
178
 
178
 
179
+    },{
180
+      "path": "pages/noScanSpecimen/noScanSpecimen",
181
+      "style": {
182
+        "h5": {
183
+          "titleNView": false
184
+        }
185
+      }
186
+
179
     }, {
187
     }, {
180
       "path": "components/footTool/footTool",
188
       "path": "components/footTool/footTool",
181
       "style": {
189
       "style": {

+ 341 - 0
pages/noScanSpecimen/noScanSpecimen.vue

@@ -0,0 +1,341 @@
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 in specimens" :key="spe.id">
6
+        <view class="page_item">
7
+          <view class="page_item_top">
8
+            <view class="page_item_top-inner">
9
+              <view class="page_item_top_L">
10
+                <text class="L_text">标本类型:{{ spe.stype ? spe.stype.name : "" }}({{
11
+                  spe.urgent == 1 ? "急" : "普"
12
+                }})</text>
13
+              </view>
14
+              <view class="page_item_top_R"></view>
15
+            </view>
16
+          </view>
17
+          <view class="page_item_cont">
18
+            <view class="page_item_cont_B">
19
+              <view class="page_item_cont_title">
20
+                <text>标本编码</text>
21
+                <text class="text_big">
22
+                  <text>{{ spe.scode }}</text>
23
+                </text>
24
+              </view>
25
+            </view>
26
+            <view class="page_item_cont_C">
27
+              <view class="page_item_cont_title_C">
28
+                <text>患者姓名</text>
29
+                <text class="text_big">
30
+                  <text>{{ spe.patientName }}<text v-if="spe.bedNum">({{spe.bedNum}})</text></text>
31
+                </text>
32
+              </view>
33
+            </view>
34
+            <view class="page_item_cont_C">
35
+              <view class="page_item_cont_title_C">
36
+                <text>目标科室</text>
37
+                <text class="text_big">
38
+                  <text>{{ spe.checkDept ? spe.checkDept.dept : "-" }}</text>
39
+                </text>
40
+              </view>
41
+            </view>
42
+          </view>
43
+          <view class="L"></view>
44
+          <view class="R"></view>
45
+        </view>
46
+        <view class="L-l"></view>
47
+        <view class="R-l"></view>
48
+      </view>
49
+    </view>
50
+    <view class="foot_btn2 footerPadding">
51
+      <view class="btn2" @click="goBack">返回</view>
52
+    </view>
53
+  </view>
54
+</template>
55
+<script>
56
+  import {
57
+    post,
58
+    webHandle
59
+  } from "../../http/http.js";
60
+  export default {
61
+    data() {
62
+      return {
63
+        workOrderId: -1,
64
+        specimens: [],
65
+      };
66
+    },
67
+    methods: {
68
+      // 返回
69
+      goBack() {
70
+        uni.navigateBack();
71
+      },
72
+      // 获取未扫描标本信息
73
+      getNoScanSpecimen() {
74
+        let postData = {
75
+          workOrderId: this.workOrderId,
76
+          currentPage: 0,
77
+          pageSize: 999,
78
+        };
79
+        uni.showLoading({
80
+          title: "加载中",
81
+          mask: true,
82
+        });
83
+        post("/api/noScanSpecimenData", postData).then((res) => {
84
+          uni.hideLoading();
85
+          if (res.data) {
86
+            this.specimens = res.data;
87
+          }
88
+        });
89
+      },
90
+    },
91
+    onLoad(options) {
92
+      this.workOrderId = options.workOrderId;
93
+      this.getNoScanSpecimen();
94
+      // #ifdef APP-PLUS
95
+      webHandle("no", "app");
96
+      // #endif
97
+      // #ifdef H5
98
+      webHandle("no", "wx");
99
+      // #endif
100
+    },
101
+  };
102
+</script>
103
+<style lang="less" scoped>
104
+  .pharmacyDetails {
105
+    background-color: rgb(249, 250, 251);
106
+    padding-top: 50rpx;
107
+    height: 100%;
108
+    box-sizing: border-box;
109
+
110
+    .pharmacyDetails_title {
111
+      font-size: 46rpx;
112
+      font-weight: 550;
113
+      text-align: center;
114
+    }
115
+
116
+    .page_item_wrap {
117
+      position: relative;
118
+      margin-top: 32rpx;
119
+
120
+      .page_item {
121
+        margin-top: 16rpx;
122
+        margin-bottom: 124rpx;
123
+        background: #fff;
124
+        border-radius: 8rpx;
125
+        margin: 0 20rpx;
126
+        border: 2rpx solid #e5e9ed;
127
+        position: relative;
128
+        overflow: hidden;
129
+        padding: 0 16rpx;
130
+
131
+        .L {
132
+          width: 40rpx;
133
+          height: 40rpx;
134
+          border-radius: 50%;
135
+          background: #f9fafb;
136
+          position: absolute;
137
+          left: -20rpx;
138
+          top: 68rpx;
139
+          border: 2rpx solid #e5e9ed;
140
+        }
141
+
142
+        .R {
143
+          width: 40rpx;
144
+          height: 40rpx;
145
+          border-radius: 50%;
146
+          background: #f9fafb;
147
+          position: absolute;
148
+          float: right;
149
+          right: -20rpx;
150
+          top: 68rpx;
151
+          border: 2rpx solid #e5e9ed;
152
+        }
153
+
154
+        .page_item_top {
155
+          height: 88rpx;
156
+          border-bottom: 2rpx dashed #e5e9ed;
157
+          padding: 0 16rpx;
158
+
159
+          .page_item_top-inner {
160
+            display: flex;
161
+            justify-content: space-between;
162
+            align-items: center;
163
+            height: 100%;
164
+
165
+            .page_item_top_L {
166
+              .L_text {
167
+                font-size: 32rpx;
168
+                font-weight: 700;
169
+              }
170
+            }
171
+
172
+            .page_item_top_R {
173
+              font-size: 32rpx;
174
+
175
+              .L_iocn {
176
+                color: rgb(7, 134, 60);
177
+                font-size: 36rpx;
178
+                font-weight: 700;
179
+              }
180
+            }
181
+          }
182
+        }
183
+
184
+        .page_item_cont {
185
+          min-height: 180rpx;
186
+          max-height: 424rpx;
187
+          padding: 0 16rpx;
188
+          text-align: left;
189
+          position: relative;
190
+
191
+          .text_big {
192
+            font-size: 32rpx;
193
+            font-weight: 700;
194
+
195
+            text {
196
+              font-weight: 700;
197
+              line-height: 1.5;
198
+            }
199
+          }
200
+
201
+          .line {
202
+            height: 20rpx;
203
+            width: 2rpx;
204
+            border-left: 2rpx solid #e5e9ed;
205
+            position: absolute;
206
+            top: 82rpx;
207
+            left: 40rpx;
208
+          }
209
+
210
+          .page_item_cont_T {
211
+            padding-top: 28rpx;
212
+            font-size: 28rpx;
213
+
214
+            .page_item_cont_title {
215
+              height: 100%;
216
+              font-size: 32rpx;
217
+              display: flex;
218
+              justify-content: space-between;
219
+            }
220
+          }
221
+
222
+          .page_item_cont_B {
223
+            padding-top: 28rpx;
224
+            margin-bottom: 28rpx;
225
+
226
+            .page_item_cont_title {
227
+              font-size: 32rpx;
228
+              display: flex;
229
+              justify-content: space-between;
230
+              align-items: center;
231
+            }
232
+          }
233
+
234
+          .page_item_cont_C {
235
+            margin-bottom: 28rpx;
236
+
237
+            .page_item_cont_title_C {
238
+              font-size: 32rpx;
239
+              display: flex;
240
+              justify-content: space-between;
241
+              align-items: center;
242
+            }
243
+          }
244
+
245
+          #infos {
246
+            display: none;
247
+          }
248
+        }
249
+      }
250
+
251
+      .L-l {
252
+        width: 2rpx;
253
+        height: 40rpx;
254
+        background: #f9fafb;
255
+        position: absolute;
256
+        left: 20rpx;
257
+        top: 72rpx;
258
+      }
259
+
260
+      .R-l {
261
+        width: 2rpx;
262
+        height: 40rpx;
263
+        background: #f9fafb;
264
+        position: absolute;
265
+        right: 20rpx;
266
+        top: 72rpx;
267
+      }
268
+    }
269
+
270
+    .cube-toolbar-item {
271
+      width: 710rpx;
272
+      height: 68rpx;
273
+      line-height: 68rpx;
274
+      position: fixed;
275
+      left: 20rpx;
276
+      bottom: 160rpx;
277
+      border-radius: 8rpx;
278
+      background: linear-gradient(to right, #72c172, #3bb197);
279
+      font-size: 36rpx;
280
+      color: #fff;
281
+      text-align: center;
282
+    }
283
+
284
+    .btn-wrap {
285
+      display: flex;
286
+      justify-content: space-between;
287
+      position: fixed;
288
+      left: 20rpx;
289
+      bottom: 160rpx;
290
+    }
291
+
292
+    .cube-toolbar-item1 {
293
+      width: 350rpx;
294
+      height: 68rpx;
295
+      line-height: 68rpx;
296
+      border-radius: 8rpx;
297
+      margin: 0 5rpx;
298
+      background: linear-gradient(to right, #72c172, #3bb197);
299
+      font-size: 36rpx;
300
+      color: #fff;
301
+      text-align: center;
302
+    }
303
+
304
+    .foot_btn2 {
305
+      position: fixed;
306
+      bottom: 0;
307
+      right: 20rpx;
308
+      left: 20rpx;
309
+      line-height: 66rpx;
310
+      height: 100rpx;
311
+      border-top: 2rpx solid #e5e9ed;
312
+      background: #f9fafb;
313
+      display: flex;
314
+      justify-content: space-between;
315
+
316
+      .btn2 {
317
+        height: 66rpx;
318
+        width: 100%;
319
+        margin: 0 1%;
320
+        background-image: linear-gradient(to right, #72c172, #3bb197);
321
+        color: #fff;
322
+        border-radius: 8rpx;
323
+        font-size: 32rpx;
324
+        margin-top: 16rpx;
325
+        text-align: center;
326
+      }
327
+
328
+      .btn3 {
329
+        height: 66rpx;
330
+        width: 48%;
331
+        margin: 0 1%;
332
+        background-image: linear-gradient(to right, #72c172, #3bb197);
333
+        color: #fff;
334
+        border-radius: 8rpx;
335
+        font-size: 32rpx;
336
+        margin-top: 16rpx;
337
+        text-align: center;
338
+      }
339
+    }
340
+  }
341
+</style>

+ 0 - 1
pages/receiptpage/receiptpage.vue

@@ -703,7 +703,6 @@
703
       this.selectedLabelSlots = "执行中";
703
       this.selectedLabelSlots = "执行中";
704
       this.waitingOrdersGetNum();
704
       this.waitingOrdersGetNum();
705
       this.executingOrders(0);
705
       this.executingOrders(0);
706
-      uni.removeStorageSync("speNum");
707
       // #ifdef APP-PLUS
706
       // #ifdef APP-PLUS
708
       webHandle("no", "app");
707
       webHandle("no", "app");
709
       // #endif
708
       // #endif

+ 3 - 2
pages/scanning/scanning.vue

@@ -228,8 +228,9 @@ export default {
228
     this.infoType = options.type1;
228
     this.infoType = options.type1;
229
     this.DEPTCode = options.deptCode;
229
     this.DEPTCode = options.deptCode;
230
     this.DEPT = options.dept;
230
     this.DEPT = options.dept;
231
-    this.speNum = uni.getStorageSync("speNum");
232
-    this.speNum = Number(this.speNum);
231
+    if (options.speNum) {
232
+      this.speNum = options.speNum;
233
+    }
233
     // #ifdef APP-PLUS
234
     // #ifdef APP-PLUS
234
     webHandle("no", "app");
235
     webHandle("no", "app");
235
     // #endif
236
     // #endif

+ 107 - 36
pages/scanning_Result/scanning_Result.vue

@@ -73,8 +73,12 @@
73
     </view>
73
     </view>
74
     <view class="Scanning_cont" v-if="res.status == 200 && (type == 'drugsBag' || type == 'jPBag')">
74
     <view class="Scanning_cont" v-if="res.status == 200 && (type == 'drugsBag' || type == 'jPBag')">
75
       <view v-if="type == 'drugsBag'"> 药包编码 : #{{ infoDATA.packid }} </view>
75
       <view v-if="type == 'drugsBag'"> 药包编码 : #{{ infoDATA.packid }} </view>
76
-      <view v-if="type == 'drugsBag' && accountObj && (queryObj.type1 === 'drug-ddd-2' || queryObj.type1 === 'drug-dsd-2')"> 交接人账号 : {{ accountObj.account }} </view>
77
-      <view v-if="type == 'drugsBag' && accountObj && (queryObj.type1 === 'drug-ddd-2' || queryObj.type1 === 'drug-dsd-2')"> 交接人姓名 : {{ accountObj.accountName }} </view>
76
+      <view
77
+        v-if="type == 'drugsBag' && accountObj && (queryObj.type1 === 'drug-ddd-2' || queryObj.type1 === 'drug-dsd-2')">
78
+        交接人账号 : {{ accountObj.account }} </view>
79
+      <view
80
+        v-if="type == 'drugsBag' && accountObj && (queryObj.type1 === 'drug-ddd-2' || queryObj.type1 === 'drug-dsd-2')">
81
+        交接人姓名 : {{ accountObj.accountName }} </view>
78
       <view v-if="type == 'jPBag'">
82
       <view v-if="type == 'jPBag'">
79
         静配药包编码 : #{{ infoDATA.packid }}
83
         静配药包编码 : #{{ infoDATA.packid }}
80
       </view>
84
       </view>
@@ -93,6 +97,7 @@
93
         (type == 'specimenPlan' && isKs != '1')
97
         (type == 'specimenPlan' && isKs != '1')
94
       ">
98
       ">
95
       <view class="btn1" @click="Scanning_again()"> 继续扫描 </view>
99
       <view class="btn1" @click="Scanning_again()"> 继续扫描 </view>
100
+      <view class="btn3" @click="getNoScanSpecimen()">查看未扫描标本</view>
96
       <view class="btn2" @click="Scanning_complete(dataId)"> 完成扫描 </view>
101
       <view class="btn2" @click="Scanning_complete(dataId)"> 完成扫描 </view>
97
     </view>
102
     </view>
98
     <view class="foot_btn" v-if="
103
     <view class="foot_btn" v-if="
@@ -206,6 +211,10 @@
206
     <showModel :title="models1.title" :icon="models1.icon" :disjunctor="models1.disjunctor"
211
     <showModel :title="models1.title" :icon="models1.icon" :disjunctor="models1.disjunctor"
207
       :radioItem="models1.radioItem" @ok="ok1" @radioChange="radioChange1" @cancel="cancel1" :operate="models1.operate">
212
       :radioItem="models1.radioItem" @ok="ok1" @radioChange="radioChange1" @cancel="cancel1" :operate="models1.operate">
208
     </showModel>
213
     </showModel>
214
+    <!-- 弹窗 -->
215
+    <showModel :title="models2.title" :icon="models2.icon" :disjunctor="models2.disjunctor" :content="models2.content"
216
+      @ok="ok2" @cancel="cancel2" :operate="models2.operate">
217
+    </showModel>
209
   </view>
218
   </view>
210
 </template>
219
 </template>
211
 <script>
220
 <script>
@@ -223,7 +232,7 @@
223
     data() {
232
     data() {
224
       return {
233
       return {
225
         // 交接人信息
234
         // 交接人信息
226
-        accountObj:undefined,
235
+        accountObj: undefined,
227
         // 完成扫描的id
236
         // 完成扫描的id
228
         wcId: "",
237
         wcId: "",
229
         // 弹窗model
238
         // 弹窗model
@@ -234,6 +243,10 @@
234
         models1: {
243
         models1: {
235
           disjunctor: false,
244
           disjunctor: false,
236
         },
245
         },
246
+        // 完成扫描弹窗model1
247
+        models2: {
248
+          disjunctor: false,
249
+        },
237
         isKs: "", //是否科室签到 1
250
         isKs: "", //是否科室签到 1
238
         infoDATA: {},
251
         infoDATA: {},
239
         res: {},
252
         res: {},
@@ -247,9 +260,20 @@
247
         speNum: 0,
260
         speNum: 0,
248
         queryObj: {}, //路由传递过来的数据
261
         queryObj: {}, //路由传递过来的数据
249
         selectRadio: [], //单选框选中的数据,第一项是qrcode,第二项是名称
262
         selectRadio: [], //单选框选中的数据,第一项是qrcode,第二项是名称
263
+        gotoFlag: true
250
       };
264
       };
251
     },
265
     },
252
     methods: {
266
     methods: {
267
+      // 查看未扫描标本
268
+      getNoScanSpecimen() {
269
+        if (!this.gotoFlag) {
270
+          return;
271
+        }
272
+        this.gotoFlag = false;
273
+        uni.navigateTo({
274
+          url: `../noScanSpecimen/noScanSpecimen?workOrderId=${this.queryObj.id}`,
275
+        });
276
+      },
253
       // 拍照
277
       // 拍照
254
       photograph(data, obj) {
278
       photograph(data, obj) {
255
         photographTool(data, obj);
279
         photographTool(data, obj);
@@ -302,8 +326,6 @@
302
                   if (ress.status == 200) {
326
                   if (ress.status == 200) {
303
                     if (this.type == "specimenPlan" || this.type == "specimen") {
327
                     if (this.type == "specimenPlan" || this.type == "specimen") {
304
                       this.infoDATA = ress.data;
328
                       this.infoDATA = ress.data;
305
-                      this.speNum++;
306
-                      uni.setStorageSync("speNum", this.speNum);
307
                       uni.navigateTo({
329
                       uni.navigateTo({
308
                         url: `../scanning_Result/scanning_Result?type=${
330
                         url: `../scanning_Result/scanning_Result?type=${
309
                         this.queryObj.type
331
                         this.queryObj.type
@@ -313,9 +335,7 @@
313
                         JSON.stringify(ress.data)
335
                         JSON.stringify(ress.data)
314
                       )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
336
                       )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
315
                         this.queryObj.deptCode
337
                         this.queryObj.deptCode
316
-                      }&dept=${this.queryObj.dept}&id=${this.dataId}&speNum=${
317
-                        this.speNum
318
-                      }&model=${encodeURIComponent(JSON.stringify(ress))}`,
338
+                      }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}`,
319
                       });
339
                       });
320
                     } else if (
340
                     } else if (
321
                       this.type == "inspect" ||
341
                       this.type == "inspect" ||
@@ -330,9 +350,7 @@
330
                         JSON.stringify(ress.data)
350
                         JSON.stringify(ress.data)
331
                       )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
351
                       )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
332
                         this.queryObj.deptCode
352
                         this.queryObj.deptCode
333
-                      }&dept=${this.queryObj.dept}&id=${this.dataId}&speNum=${
334
-                        this.speNum
335
-                      }&model=${encodeURIComponent(
353
+                      }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(
336
                         JSON.stringify(ress)
354
                         JSON.stringify(ress)
337
                       )}&patient=${ress.patient}&patientCode=${
355
                       )}&patient=${ress.patient}&patientCode=${
338
                         ress.patientCode
356
                         ress.patientCode
@@ -348,9 +366,7 @@
348
                         JSON.stringify(ress.data)
366
                         JSON.stringify(ress.data)
349
                       )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
367
                       )}&status=${ress.status}&msg=${ress.msg}&deptCode=${
350
                         this.queryObj.deptCode
368
                         this.queryObj.deptCode
351
-                      }&dept=${this.queryObj.dept}&id=${this.dataId}&speNum=${
352
-                        this.speNum
353
-                      }&model=${encodeURIComponent(JSON.stringify(ress))}`,
369
+                      }&dept=${this.queryObj.dept}&id=${this.dataId}&model=${encodeURIComponent(JSON.stringify(ress))}`,
354
                       });
370
                       });
355
                     }
371
                     }
356
                   } else {
372
                   } else {
@@ -361,9 +377,7 @@
361
                       ress.msg
377
                       ress.msg
362
                     }&deptCode=${this.queryObj.deptCode}&dept=${
378
                     }&deptCode=${this.queryObj.deptCode}&dept=${
363
                       this.queryObj.dept
379
                       this.queryObj.dept
364
-                    }&id=${this.dataId}&speNum=${
365
-                      this.speNum
366
-                    }&model=${encodeURIComponent(
380
+                    }&id=${this.dataId}&model=${encodeURIComponent(
367
                       JSON.stringify(this.infoDATA)
381
                       JSON.stringify(this.infoDATA)
368
                     )}`,
382
                     )}`,
369
                     });
383
                     });
@@ -383,22 +397,18 @@
383
           // ------------------------------
397
           // ------------------------------
384
         });
398
         });
385
       },
399
       },
386
-      // 确定
387
-      ok() {
388
-        this.models.disjunctor = false;
400
+      // 正常完成扫描
401
+      overFinish() {
389
         let data = {
402
         let data = {
390
           type: this.queryObj.type1,
403
           type: this.queryObj.type1,
391
           ids: [],
404
           ids: [],
392
         };
405
         };
393
         data.ids.push(this.wcId);
406
         data.ids.push(this.wcId);
394
-        // uni.showLoading({
395
-        //   title: '加载中',
396
-        //   mask: true
397
-        // });
398
         //只要是标本轮巡1对多或者多对多
407
         //只要是标本轮巡1对多或者多对多
408
+        // plan-spe-dsd-2  1对多
409
+        // plan-spe-dsd-3  多对多
399
         if (
410
         if (
400
           this.queryObj.type1 === "plan-spe-ddd-2" ||
411
           this.queryObj.type1 === "plan-spe-ddd-2" ||
401
-          this.queryObj.type1 === "plan-spe-ddd-3" ||
402
           this.queryObj.type1 === "plan-spe-dsd-2" ||
412
           this.queryObj.type1 === "plan-spe-dsd-2" ||
403
           this.queryObj.type1 === "plan-spe-dsd-3"
413
           this.queryObj.type1 === "plan-spe-dsd-3"
404
         ) {
414
         ) {
@@ -431,10 +441,75 @@
431
           });
441
           });
432
         }
442
         }
433
       },
443
       },
444
+      // 确定
445
+      ok() {
446
+        this.models.disjunctor = false;
447
+        let postData = {
448
+          ids: [this.queryObj.id],
449
+          sign: true
450
+        };
451
+        uni.showLoading({
452
+          title: '加载中',
453
+          mask: true
454
+        });
455
+        post("/workerOrder/expectedAndActual", postData).then((ress) => {
456
+          uni.hideLoading();
457
+          if (ress.status == 200) {
458
+            if (ress.actualReceiveNum === undefined) {
459
+              //正常完成扫描
460
+              this.overFinish()
461
+            } else {
462
+              this.models2 = {
463
+                disjunctor: true,
464
+                title: "提示",
465
+                content: `您扫描的标本<strong class="red">${ress.actualReceiveNum}</strong>个,与系统预计标本${ress.expectReceiveNum}个标本不一致,您确认要完成扫描码?`,
466
+                icon: "warn",
467
+                operate: {
468
+                  ok: "确定",
469
+                  cancel: "取消",
470
+                },
471
+              };
472
+            }
473
+          } else {
474
+            uni.showToast({
475
+              icon: "none",
476
+              title: "请求失败!",
477
+            });
478
+          }
479
+        })
480
+      },
434
       // 取消
481
       // 取消
435
       cancel() {
482
       cancel() {
436
         this.models.disjunctor = false;
483
         this.models.disjunctor = false;
437
       },
484
       },
485
+      // 确定
486
+      ok2() {
487
+        this.models2.disjunctor = false;
488
+        let postData = {
489
+          ids: [this.queryObj.id],
490
+        };
491
+        uni.showLoading({
492
+          title: '加载中',
493
+          mask: true
494
+        });
495
+        post("/workerOrder/expectedAndActual", postData).then((ress) => {
496
+          uni.hideLoading();
497
+          if (ress.status == 200) {
498
+            uni.navigateTo({
499
+              url: "../receiptpage/receiptpage",
500
+            });
501
+          } else {
502
+            uni.showToast({
503
+              icon: "none",
504
+              title: "请求失败!",
505
+            });
506
+          }
507
+        })
508
+      },
509
+      // 取消
510
+      cancel2() {
511
+        this.models2.disjunctor = false;
512
+      },
438
       // 完成扫描
513
       // 完成扫描
439
       Scanning_complete(id) {
514
       Scanning_complete(id) {
440
         let data = {
515
         let data = {
@@ -549,10 +624,13 @@
549
       // 知道了
624
       // 知道了
550
       showAlert(id) {
625
       showAlert(id) {
551
         uni.navigateTo({
626
         uni.navigateTo({
552
-          url: "../receiptpage/receiptpage",
627
+          url: "../receiptpage/receiptpage"
553
         });
628
         });
554
       },
629
       },
555
     },
630
     },
631
+    onShow() {
632
+      this.gotoFlag = true;
633
+    },
556
     onLoad(options) {
634
     onLoad(options) {
557
       console.log(options, "result");
635
       console.log(options, "result");
558
       this.queryObj = options;
636
       this.queryObj = options;
@@ -562,7 +640,7 @@
562
       } else if (options.model) {
640
       } else if (options.model) {
563
         this.infoDATA = JSON.parse(options.model);
641
         this.infoDATA = JSON.parse(options.model);
564
       }
642
       }
565
-      if(options.accountObj && options.accountObj != "undefined"){
643
+      if (options.accountObj && options.accountObj != "undefined") {
566
         this.accountObj = JSON.parse(options.accountObj);
644
         this.accountObj = JSON.parse(options.accountObj);
567
       }
645
       }
568
 
646
 
@@ -581,13 +659,6 @@
581
       }
659
       }
582
       if (options.speNum) {
660
       if (options.speNum) {
583
         this.speNum = options.speNum;
661
         this.speNum = options.speNum;
584
-      } else {
585
-        this.speNumLocal = uni.getStorageSync("speNum");
586
-        if (this.speNumLocal) {
587
-          this.speNum = Number(this.speNumLocal);
588
-        } else {
589
-          this.speNum = 0;
590
-        }
591
       }
662
       }
592
       this.DEPTCode = options.deptCode;
663
       this.DEPTCode = options.deptCode;
593
       this.type = options.type;
664
       this.type = options.type;
@@ -602,7 +673,7 @@
602
 </script>
673
 </script>
603
 <style lang="less">
674
 <style lang="less">
604
   .Scanning_Result {
675
   .Scanning_Result {
605
-    padding: 0 74rpx;
676
+    padding: 0 20rpx;
606
 
677
 
607
     .Scanning_top {
678
     .Scanning_top {
608
       .Scanning_top_icon {
679
       .Scanning_top_icon {
@@ -672,7 +743,7 @@
672
       .btn2,
743
       .btn2,
673
       .btn3 {
744
       .btn3 {
674
         height: 88rpx;
745
         height: 88rpx;
675
-        width: 45%;
746
+        flex: 1;
676
         margin: 0 1%;
747
         margin: 0 1%;
677
         background-image: linear-gradient(to right, #72c172, #3bb197);
748
         background-image: linear-gradient(to right, #72c172, #3bb197);
678
         color: #fff;
749
         color: #fff;

+ 2 - 4
pages/scanning_code/scanning_code.vue

@@ -446,6 +446,7 @@
446
                 }
446
                 }
447
                 //扫描
447
                 //扫描
448
                 post("/workerOrder/" + postType, data).then((ress) => {
448
                 post("/workerOrder/" + postType, data).then((ress) => {
449
+                  console.log(ress,1111)
449
                   if (ress.status == 200) {
450
                   if (ress.status == 200) {
450
                     // 药包核对中状态变为已完成
451
                     // 药包核对中状态变为已完成
451
                     if (
452
                     if (
@@ -462,7 +463,6 @@
462
                           uni.hideLoading();
463
                           uni.hideLoading();
463
                           if (result.state == 200) {
464
                           if (result.state == 200) {
464
                             // --------start----------
465
                             // --------start----------
465
-                            uni.setStorageSync("speNum", 1);
466
                             uni.navigateTo({
466
                             uni.navigateTo({
467
                               url: `../scanning_Result/scanning_Result?type=${
467
                               url: `../scanning_Result/scanning_Result?type=${
468
                               this.queryObj.type
468
                               this.queryObj.type
@@ -489,7 +489,6 @@
489
                       } else {
489
                       } else {
490
                         uni.hideLoading();
490
                         uni.hideLoading();
491
                         // --------start----------
491
                         // --------start----------
492
-                        uni.setStorageSync("speNum", 1);
493
                         uni.navigateTo({
492
                         uni.navigateTo({
494
                           url: `../scanning_Result/scanning_Result?type=${
493
                           url: `../scanning_Result/scanning_Result?type=${
495
                           this.queryObj.type
494
                           this.queryObj.type
@@ -537,7 +536,6 @@
537
                         )}`,
536
                         )}`,
538
                         });
537
                         });
539
                       } else {
538
                       } else {
540
-                        uni.setStorageSync("speNum", 1);
541
                         uni.navigateTo({
539
                         uni.navigateTo({
542
                           url: `../scanning_Result/scanning_Result?type=${
540
                           url: `../scanning_Result/scanning_Result?type=${
543
                           this.queryObj.type
541
                           this.queryObj.type
@@ -551,7 +549,7 @@
551
                           this.queryObj.dept
549
                           this.queryObj.dept
552
                         }&id=${id}&model=${encodeURIComponent(
550
                         }&id=${id}&model=${encodeURIComponent(
553
                           JSON.stringify(ress)
551
                           JSON.stringify(ress)
554
-                        )}`,
552
+                        )}&speNum=${ress.specimenCount}`,
555
                         });
553
                         });
556
                       }
554
                       }
557
 
555
 

+ 482 - 317
pages/scanning_djEnd/scanning_djEnd.vue

@@ -9,14 +9,17 @@
9
       </view>
9
       </view>
10
     </view>
10
     </view>
11
 
11
 
12
-    <view class="Scanning_top" v-if="
12
+    <view
13
+      class="Scanning_top"
14
+      v-if="
13
         infoDATA.status == 10005 ||
15
         infoDATA.status == 10005 ||
14
         infoDATA.status == 100018 ||
16
         infoDATA.status == 100018 ||
15
         infoDATA.status == 10004 ||
17
         infoDATA.status == 10004 ||
16
         infoDATA.status == 100021 ||
18
         infoDATA.status == 100021 ||
17
         infoDATA.status == 500 ||
19
         infoDATA.status == 500 ||
18
         infoDATA.status == 100031
20
         infoDATA.status == 100031
19
-      ">
21
+      "
22
+    >
20
       <view class="Scanning_top_icon">
23
       <view class="Scanning_top_icon">
21
         <text class="cubeic-close icon_transport transport-shibai"></text>
24
         <text class="cubeic-close icon_transport transport-shibai"></text>
22
       </view>
25
       </view>
@@ -25,26 +28,55 @@
25
       </view>
28
       </view>
26
     </view>
29
     </view>
27
 
30
 
28
-    <view class="Scanning_cont" v-if="
31
+    <view
32
+      class="Scanning_cont"
33
+      v-if="
29
         (infoDATA.status == 200 && type == 'specimenPlan') ||
34
         (infoDATA.status == 200 && type == 'specimenPlan') ||
30
         (infoDATA.status == 200 && type == 'specimen')
35
         (infoDATA.status == 200 && type == 'specimen')
31
-      "></view>
32
-    <view class="Scanning_cont" v-if="
36
+      "
37
+    ></view>
38
+    <view
39
+      class="Scanning_cont"
40
+      v-if="
33
         (infoDATA.status == 200 && type == 'patientTransport') ||
41
         (infoDATA.status == 200 && type == 'patientTransport') ||
34
         (infoDATA.status == 200 && type == 'inspect')
42
         (infoDATA.status == 200 && type == 'inspect')
35
-      ">扫描患者腕带并将患者送往目标科室.</view>
36
-    <view class="Scanning_cont" v-if="
37
-        (infoDATA.status == 200 && type == 'drugsBag'&&(type1 == 'drug-ddd-2'||type1 == 'drug-dsd-2')) ||
38
-        (infoDATA.status == 200 && type == 'jPBag'&&(type1 == 'jp-ddd-2'||type1 == 'jp-dsd-2'))
39
-      ">已到达目标科室,请扫描药包或静配包.</view>
40
-    <view class="Scanning_cont" v-if="
41
-          (infoDATA.status == 200 && type == 'drugsBag'&&(type1 == 'drug-ddd-1'||type1 == 'drug-dsd-1')) ||
42
-          (infoDATA.status == 200 && type == 'jPBag'&&(type1 == 'jp-ddd-1'||type1 == 'jp-dsd-1'))
43
-        ">已到达目标科室,请取药包或静配包后送达目标科室.</view>
44
-    <view class="Scanning_cont" v-if="
43
+      "
44
+      >扫描患者腕带并将患者送往目标科室.</view
45
+    >
46
+    <view
47
+      class="Scanning_cont"
48
+      v-if="
49
+        (infoDATA.status == 200 &&
50
+          type == 'drugsBag' &&
51
+          (type1 == 'drug-ddd-2' || type1 == 'drug-dsd-2')) ||
52
+        (infoDATA.status == 200 &&
53
+          type == 'jPBag' &&
54
+          (type1 == 'jp-ddd-2' || type1 == 'jp-dsd-2'))
55
+      "
56
+      >已到达目标科室,请扫描药包或静配包.</view
57
+    >
58
+    <view
59
+      class="Scanning_cont"
60
+      v-if="
61
+        (infoDATA.status == 200 &&
62
+          type == 'drugsBag' &&
63
+          (type1 == 'drug-ddd-1' || type1 == 'drug-dsd-1')) ||
64
+        (infoDATA.status == 200 &&
65
+          type == 'jPBag' &&
66
+          (type1 == 'jp-ddd-1' || type1 == 'jp-dsd-1'))
67
+      "
68
+      >已到达目标科室,请取药包或静配包后送达目标科室.</view
69
+    >
70
+    <view
71
+      class="Scanning_cont"
72
+      v-if="
45
         infoDATA.status == 200 && type == 'other' && infoDATA.type == 'qt-ddd-1'
73
         infoDATA.status == 200 && type == 'other' && infoDATA.type == 'qt-ddd-1'
46
-      ">已到达目标科室,请执行该工单.</view>
47
-    <view class="Scanning_cont" v-if="
74
+      "
75
+      >已到达目标科室,请执行该工单.</view
76
+    >
77
+    <view
78
+      class="Scanning_cont"
79
+      v-if="
48
         (infoDATA.state == 'finish' &&
80
         (infoDATA.state == 'finish' &&
49
           infoDATA.status == 200 &&
81
           infoDATA.status == 200 &&
50
           type == 'specimenPlan' &&
82
           type == 'specimenPlan' &&
@@ -52,8 +84,12 @@
52
         (infoDATA.status == 200 &&
84
         (infoDATA.status == 200 &&
53
           type == 'other' &&
85
           type == 'other' &&
54
           infoDATA.type == 'qt-dsd-1')
86
           infoDATA.type == 'qt-dsd-1')
55
-      ">已到达目标科室,工单已完成.</view>
56
-    <view class="Scanning_cont" v-if="
87
+      "
88
+      >已到达目标科室,工单已完成.</view
89
+    >
90
+    <view
91
+      class="Scanning_cont"
92
+      v-if="
57
         (infoDATA.status == 200 &&
93
         (infoDATA.status == 200 &&
58
           type == 'specimenPlan' &&
94
           type == 'specimenPlan' &&
59
           infoDATA.type != 'plan-spe-ddd-1' &&
95
           infoDATA.type != 'plan-spe-ddd-1' &&
@@ -62,16 +98,24 @@
62
           type == 'specimen' &&
98
           type == 'specimen' &&
63
           infoDATA.type != 'spe-ddd-1' &&
99
           infoDATA.type != 'spe-ddd-1' &&
64
           infoDATA.type != 'spe-dsd-1')
100
           infoDATA.type != 'spe-dsd-1')
65
-      ">已到达目标科室,请扫描标本.</view>
66
-    <view class="Scanning_cont" v-if="
101
+      "
102
+      >已到达目标科室,请扫描标本.</view
103
+    >
104
+    <view
105
+      class="Scanning_cont"
106
+      v-if="
67
         (infoDATA.status == 200 &&
107
         (infoDATA.status == 200 &&
68
           type == 'specimenPlan' &&
108
           type == 'specimenPlan' &&
69
           infoDATA.type == 'plan-spe-ddd-1') ||
109
           infoDATA.type == 'plan-spe-ddd-1') ||
70
         (infoDATA.status == 200 &&
110
         (infoDATA.status == 200 &&
71
           type == 'specimen' &&
111
           type == 'specimen' &&
72
           infoDATA.type == 'spe-ddd-1')
112
           infoDATA.type == 'spe-ddd-1')
73
-      ">已到达目标科室,请取标本后送达目标科室.</view>
74
-    <view class="Scanning_cont" v-if="
113
+      "
114
+      >已到达目标科室,请取标本后送达目标科室.</view
115
+    >
116
+    <view
117
+      class="Scanning_cont"
118
+      v-if="
75
         (infoDATA.state != 'finish' &&
119
         (infoDATA.state != 'finish' &&
76
           infoDATA.status == 200 &&
120
           infoDATA.status == 200 &&
77
           type == 'specimenPlan' &&
121
           type == 'specimenPlan' &&
@@ -79,47 +123,83 @@
79
         (infoDATA.status == 200 &&
123
         (infoDATA.status == 200 &&
80
           type == 'specimen' &&
124
           type == 'specimen' &&
81
           infoDATA.type == 'spe-dsd-1')
125
           infoDATA.type == 'spe-dsd-1')
82
-      ">已到达目标科室,请放置标本完成该工单.</view>
126
+      "
127
+      >已到达目标科室,请放置标本完成该工单.</view
128
+    >
83
     <view class="Scanning_cont" v-if="infoDATA.status != 200">
129
     <view class="Scanning_cont" v-if="infoDATA.status != 200">
84
       <view>{{ infoDATA.msg }}</view>
130
       <view>{{ infoDATA.msg }}</view>
85
     </view>
131
     </view>
86
-    <view class="foot_btn" v-if="type == 'inspect' || type == 'patientTransport'">
132
+    <view
133
+      class="foot_btn"
134
+      v-if="type == 'inspect' || type == 'patientTransport'"
135
+    >
87
       <view class="btn3" @click="Scanning_again()">继续扫描</view>
136
       <view class="btn3" @click="Scanning_again()">继续扫描</view>
88
     </view>
137
     </view>
89
     <view class="foot_btn" v-if="type == 'drugsBag' || type == 'jPBag'">
138
     <view class="foot_btn" v-if="type == 'drugsBag' || type == 'jPBag'">
90
-      <view class="btn3" @click="Scanning_again()"
91
-        v-if="type1==='drug-ddd-2'||type1==='drug-dsd-2'||type1==='jp-ddd-2'||type1==='jp-dsd-2'">继续扫描</view>
92
-      <view class="btn3" @click="showAlert()"
93
-        v-if="type1==='drug-ddd-1'||type1==='drug-dsd-1'||type1==='jp-ddd-1'||type1==='jp-dsd-1'">知道了</view>
139
+      <view
140
+        class="btn3"
141
+        @click="Scanning_again()"
142
+        v-if="
143
+          type1 === 'drug-ddd-2' ||
144
+          type1 === 'drug-dsd-2' ||
145
+          type1 === 'jp-ddd-2' ||
146
+          type1 === 'jp-dsd-2'
147
+        "
148
+        >继续扫描</view
149
+      >
150
+      <view
151
+        class="btn3"
152
+        @click="showAlert()"
153
+        v-if="
154
+          type1 === 'drug-ddd-1' ||
155
+          type1 === 'drug-dsd-1' ||
156
+          type1 === 'jp-ddd-1' ||
157
+          type1 === 'jp-dsd-1'
158
+        "
159
+        >知道了</view
160
+      >
94
     </view>
161
     </view>
95
-    <view class="foot_btn" v-if="
162
+    <view
163
+      class="foot_btn"
164
+      v-if="
96
         (type == 'specimenPlan' &&
165
         (type == 'specimenPlan' &&
97
           type1 != 'plan-spe-dsd-1' &&
166
           type1 != 'plan-spe-dsd-1' &&
98
           (type1 != 'plan-spe-ddd-1') & (type1 != 'plan-spe-ddd-2')) ||
167
           (type1 != 'plan-spe-ddd-1') & (type1 != 'plan-spe-ddd-2')) ||
99
         (type == 'specimen' &&
168
         (type == 'specimen' &&
100
           type1 != 'spe-dsd-1' &&
169
           type1 != 'spe-dsd-1' &&
101
           (type1 != 'spe-ddd-1') & (type1 != 'spe-ddd-2'))
170
           (type1 != 'spe-ddd-1') & (type1 != 'spe-ddd-2'))
102
-      ">
103
-      <view class="btn1" @click="Scanning_again()">继续扫描</view>
104
-      <view class="btn2" @click="Scanning_complete(ids)">完成扫描</view>
171
+      "
172
+    >
173
+      <view class="btn1" @click="Scanning_again()">继续扫描标本</view>
174
+      <!-- <view class="btn3" @click="getNoScanSpecimen()">查看未扫描标本</view> -->
175
+      <!-- <view class="btn2" @click="Scanning_complete(ids)">完成扫描</view> -->
105
     </view>
176
     </view>
106
-    <view class="foot_btn" v-if="
177
+    <view
178
+      class="foot_btn"
179
+      v-if="
107
         (type == 'specimenPlan' && type1 == 'plan-spe-ddd-2') ||
180
         (type == 'specimenPlan' && type1 == 'plan-spe-ddd-2') ||
108
         (type == 'specimen' && type1 == 'spe-ddd-2')
181
         (type == 'specimen' && type1 == 'spe-ddd-2')
109
-      ">
110
-      <view class="btn1" @click="Scanning_again()">继续扫描</view>
111
-      <view class="btn2" @click="Scanning_complete(ids)">完成扫描</view>
182
+      "
183
+    >
184
+      <view class="btn1" @click="Scanning_again()">继续扫描标本</view>
185
+      <!-- <view class="btn3" @click="getNoScanSpecimen()">查看未扫描标本</view> -->
186
+      <!-- <view class="btn2" @click="Scanning_complete(ids)">完成扫描</view> -->
112
     </view>
187
     </view>
113
-    <view class="foot_btn" v-if="
188
+    <view
189
+      class="foot_btn"
190
+      v-if="
114
         (infoDATA.state != 'finish' &&
191
         (infoDATA.state != 'finish' &&
115
           type == 'specimenPlan' &&
192
           type == 'specimenPlan' &&
116
           type1 == 'plan-spe-dsd-1') ||
193
           type1 == 'plan-spe-dsd-1') ||
117
         (type == 'specimen' && type1 == 'spe-dsd-1')
194
         (type == 'specimen' && type1 == 'spe-dsd-1')
118
-      ">
195
+      "
196
+    >
119
       <view class="btn1" @click="Scanning_complete1(ids)">完成工单</view>
197
       <view class="btn1" @click="Scanning_complete1(ids)">完成工单</view>
120
       <view class="btn2" @click="showAlert()">继续配送</view>
198
       <view class="btn2" @click="showAlert()">继续配送</view>
121
     </view>
199
     </view>
122
-    <view class="foot_btn" v-if="
200
+    <view
201
+      class="foot_btn"
202
+      v-if="
123
         infoDATA.status != 200 &&
203
         infoDATA.status != 200 &&
124
         type != 'specimenPlan' &&
204
         type != 'specimenPlan' &&
125
         type != 'specimen' &&
205
         type != 'specimen' &&
@@ -127,198 +207,302 @@
127
         type !== 'inspect' &&
207
         type !== 'inspect' &&
128
         type !== 'drugsBag' &&
208
         type !== 'drugsBag' &&
129
         type !== 'patientTransport'
209
         type !== 'patientTransport'
130
-      ">
210
+      "
211
+    >
131
       <view class="btn3" @click="showAlert()">知道了</view>
212
       <view class="btn3" @click="showAlert()">知道了</view>
132
     </view>
213
     </view>
133
-    <view class="foot_btn" v-if="
214
+    <view
215
+      class="foot_btn"
216
+      v-if="
134
         (infoDATA.status == 200 && type1 == 'spe-ddd-1') ||
217
         (infoDATA.status == 200 && type1 == 'spe-ddd-1') ||
135
         (infoDATA.status == 200 && type1 == 'plan-spe-ddd-1')
218
         (infoDATA.status == 200 && type1 == 'plan-spe-ddd-1')
136
-      ">
219
+      "
220
+    >
137
       <view class="btn3" @click="showAlert()">知道了</view>
221
       <view class="btn3" @click="showAlert()">知道了</view>
138
     </view>
222
     </view>
139
-    <view class="foot_btn" v-if="
223
+    <view
224
+      class="foot_btn"
225
+      v-if="
140
         (infoDATA.state == 'finish' &&
226
         (infoDATA.state == 'finish' &&
141
           infoDATA.status == 200 &&
227
           infoDATA.status == 200 &&
142
           type == 'specimenPlan' &&
228
           type == 'specimenPlan' &&
143
           type1 == 'plan-spe-dsd-1') ||
229
           type1 == 'plan-spe-dsd-1') ||
144
         (infoDATA.status == 200 && type == 'other')
230
         (infoDATA.status == 200 && type == 'other')
145
-      ">
231
+      "
232
+    >
146
       <view class="btn3" @click="showAlert()">知道了</view>
233
       <view class="btn3" @click="showAlert()">知道了</view>
147
     </view>
234
     </view>
148
     <!-- 弹窗 -->
235
     <!-- 弹窗 -->
149
-    <showModel :title="models.title" :icon="models.icon" :disjunctor="models.disjunctor" :content="models.content"
150
-      @ok="ok" @cancel="cancel" :operate="models.operate"></showModel>
236
+    <showModel
237
+      :title="models.title"
238
+      :icon="models.icon"
239
+      :disjunctor="models.disjunctor"
240
+      :content="models.content"
241
+      @ok="ok"
242
+      @cancel="cancel"
243
+      :operate="models.operate"
244
+    ></showModel>
245
+    <!-- 弹窗 -->
246
+    <showModel
247
+      :title="models2.title"
248
+      :icon="models2.icon"
249
+      :disjunctor="models2.disjunctor"
250
+      :content="models2.content"
251
+      @ok="ok2"
252
+      @cancel="cancel2"
253
+      :operate="models2.operate"
254
+    >
255
+    </showModel>
151
   </view>
256
   </view>
152
 </template>
257
 </template>
153
 <script>
258
 <script>
154
-  import showModel from "../../components/showModel/showModel.vue";
155
-  import {
156
-    get,
157
-    post,
158
-    SM,
159
-    webHandle
160
-  } from "../../http/http.js";
161
-  export default {
162
-    data() {
163
-      return {
164
-        // 弹窗model
165
-        models: {
166
-          disjunctor: false,
167
-        },
168
-        wcId: "", //工单完成ID
169
-        modelFlag: "", //工单完成类型
170
-        infoDATA: [],
171
-        ids: [],
172
-        speNum: 0,
173
-        type: "",
174
-        type1: "",
175
-        queryObj: {}, //路由传递过来的参数
176
-      };
259
+import showModel from "../../components/showModel/showModel.vue";
260
+import { get, post, SM, webHandle } from "../../http/http.js";
261
+export default {
262
+  data() {
263
+    return {
264
+      // 弹窗model
265
+      models: {
266
+        disjunctor: false,
267
+      },
268
+      // 完成扫描弹窗model1
269
+      models2: {
270
+        disjunctor: false,
271
+      },
272
+      wcId: "", //工单完成ID
273
+      modelFlag: "", //工单完成类型
274
+      infoDATA: [],
275
+      ids: [],
276
+      type: "",
277
+      type1: "",
278
+      queryObj: {}, //路由传递过来的参数
279
+      gotoFlag: true,
280
+    };
281
+  },
282
+  methods: {
283
+    // 查看未扫描标本
284
+    getNoScanSpecimen() {
285
+      if (!this.gotoFlag) {
286
+        return;
287
+      }
288
+      this.gotoFlag = false;
289
+      let id = JSON.parse(this.queryObj.ids)[0];
290
+      uni.navigateTo({
291
+        url: `../noScanSpecimen/noScanSpecimen?workOrderId=${id}`,
292
+      });
177
     },
293
     },
178
-    methods: {
179
-      // 确定
180
-      ok() {
181
-        this.models.disjunctor = false;
182
-        if (this.modelFlag === "complete") {
183
-          //完成扫描
184
-          let postType = "";
185
-          if (this.queryObj.type1 == "plan-spe-ddd-2") {
186
-            postType = "finishPlanSpes";
187
-          } else if (this.queryObj.type1 == "spe-ddd-2") {
188
-            postType = "finishSpes";
189
-          }
190
-          let data = {
191
-            type: this.queryObj.type1,
192
-            ids: this.wcId,
193
-          };
194
-          uni.showLoading({
195
-            title: '加载中',
196
-            mask: true,
197
-          });
198
-          post("/workerOrder/" + postType, data).then((res) => {
199
-            if (res.status == 200) {
200
-              uni.reLaunch({
201
-                url: "../receiptpage/receiptpage",
202
-              });
203
-            } else {
204
-              uni.hideLoading();
205
-              uni.showToast({
206
-                icon: "none",
207
-                title: "请求失败!",
208
-              });
209
-            }
294
+    // 正常完成扫描
295
+    overFinish() {
296
+      //完成扫描
297
+      let postType = "";
298
+      if (
299
+        this.queryObj.type1 === "plan-spe-ddd-2" ||
300
+        this.queryObj.type1 === "plan-spe-dsd-2" ||
301
+        this.queryObj.type1 === "plan-spe-dsd-3"
302
+      ) {
303
+        postType = "finishPlanSpes";
304
+      } else if (this.queryObj.type1 == "spe-ddd-2") {
305
+        postType = "finishSpes";
306
+      }
307
+      let data = {
308
+        type: this.queryObj.type1,
309
+        ids: this.wcId,
310
+      };
311
+      uni.showLoading({
312
+        title: "加载中",
313
+        mask: true,
314
+      });
315
+      post("/workerOrder/" + postType, data).then((res) => {
316
+        if (res.status == 200) {
317
+          uni.reLaunch({
318
+            url: "../receiptpage/receiptpage",
210
           });
319
           });
211
-        } else if (this.modelFlag === "complete1") {
212
-          //1对1标本完成工单
213
-          let ids = this.wcId;
214
-          uni.showLoading({
215
-            title: '加载中',
216
-            mask: true,
320
+        } else {
321
+          uni.hideLoading();
322
+          uni.showToast({
323
+            icon: "none",
324
+            title: "请求失败!",
217
           });
325
           });
218
-          post("/workerOrder/finishSpeOrder", ids).then((res) => {
219
-            if (res.status == 200) {
220
-              uni.reLaunch({
221
-                url: "../receiptpage/receiptpage",
222
-              });
326
+        }
327
+      });
328
+    },
329
+    // 确定
330
+    ok() {
331
+      this.models.disjunctor = false;
332
+      if (this.modelFlag === "complete") {
333
+        uni.showLoading({
334
+          title: "加载中",
335
+          mask: true,
336
+        });
337
+        let id = JSON.parse(this.queryObj.ids)[0];
338
+        let postData = {
339
+          ids: [id],
340
+          sign: true
341
+        };
342
+        post("/workerOrder/expectedAndActual", postData).then((ress) => {
343
+          uni.hideLoading();
344
+          if (ress.status == 200) {
345
+            if (ress.actualReceiveNum === undefined) {
346
+              //正常完成扫描
347
+              this.overFinish();
223
             } else {
348
             } else {
224
-              uni.hideLoading();
225
-              uni.showToast({
226
-                icon: "none",
227
-                title: "请求失败!",
228
-              });
349
+              this.models2 = {
350
+                disjunctor: true,
351
+                title: "提示",
352
+                content: `您扫描的标本<strong class="red">${ress.actualReceiveNum}</strong>个,与系统预计标本${ress.expectReceiveNum}个标本不一致,您确认要完成扫描码?`,
353
+                icon: "warn",
354
+                operate: {
355
+                  ok: "确定",
356
+                  cancel: "取消",
357
+                },
358
+              };
229
             }
359
             }
360
+          } else {
361
+            uni.showToast({
362
+              icon: "none",
363
+              title: "请求失败!",
364
+            });
365
+          }
366
+        });
367
+      } else if (this.modelFlag === "complete1") {
368
+        //1对1标本完成工单
369
+        let ids = this.wcId;
370
+        uni.showLoading({
371
+          title: "加载中",
372
+          mask: true,
373
+        });
374
+        post("/workerOrder/finishSpeOrder", ids).then((res) => {
375
+          if (res.status == 200) {
376
+            uni.reLaunch({
377
+              url: "../receiptpage/receiptpage",
378
+            });
379
+          } else {
380
+            uni.hideLoading();
381
+            uni.showToast({
382
+              icon: "none",
383
+              title: "请求失败!",
384
+            });
385
+          }
386
+        });
387
+      }
388
+    },
389
+    // 取消
390
+    cancel() {
391
+      this.models.disjunctor = false;
392
+    },
393
+    // 确定
394
+    ok2() {
395
+      this.models2.disjunctor = false;
396
+      let id = JSON.parse(this.queryObj.ids)[0];
397
+      let postData = {
398
+        ids: [id],
399
+      };
400
+      uni.showLoading({
401
+        title: "加载中",
402
+        mask: true,
403
+      });
404
+      post("/workerOrder/expectedAndActual", postData).then((ress) => {
405
+        uni.hideLoading();
406
+        if (ress.status == 200) {
407
+          uni.navigateTo({
408
+            url: "../receiptpage/receiptpage",
230
           });
409
           });
231
-        }
232
-      },
233
-      // 取消
234
-      cancel() {
235
-        this.models.disjunctor = false;
236
-      },
237
-      //完成扫描
238
-      Scanning_complete(id) {
239
-        this.modelFlag = "complete";
240
-        if (
241
-          this.queryObj.type1 == "plan-spe-ddd-2" ||
242
-          this.queryObj.type1 == "spe-ddd-2"
243
-        ) {
244
-          this.wcId = id;
245
-          this.models = {
246
-            disjunctor: true,
247
-            title: "提示",
248
-            content: "是否确定标本已扫描完成?",
249
-            icon: "warn",
250
-            operate: {
251
-              ok: "确定",
252
-              cancel: "取消",
253
-            },
254
-          };
255
         } else {
410
         } else {
256
-          uni.navigateTo({
257
-            url: `../scanning/scanning?type=${this.queryObj.type}&type1=${
258
-            this.queryObj.type1
259
-          }&deptCode=${this.queryObj.code}&dept=${
260
-            this.queryObj.dept
261
-          }&id=${encodeURIComponent(JSON.stringify(this.ids))}`,
411
+          uni.showToast({
412
+            icon: "none",
413
+            title: "请求失败!",
262
           });
414
           });
263
         }
415
         }
264
-      },
265
-      //一对一完成工单
266
-      Scanning_complete1(id) {
267
-        this.modelFlag = "complete1";
416
+      });
417
+    },
418
+    // 取消
419
+    cancel2() {
420
+      this.models2.disjunctor = false;
421
+    },
422
+    //完成扫描
423
+    Scanning_complete(id) {
424
+      this.modelFlag = "complete";
425
+      if (
426
+        this.queryObj.type1 == "plan-spe-ddd-2" ||
427
+        this.queryObj.type1 == "spe-ddd-2"
428
+      ) {
268
         this.wcId = id;
429
         this.wcId = id;
269
         this.models = {
430
         this.models = {
270
           disjunctor: true,
431
           disjunctor: true,
271
           title: "提示",
432
           title: "提示",
272
-          content: "是否确定标本配送完成?",
433
+          content: "是否确定标本已扫描完成?",
273
           icon: "warn",
434
           icon: "warn",
274
           operate: {
435
           operate: {
275
             ok: "确定",
436
             ok: "确定",
276
             cancel: "取消",
437
             cancel: "取消",
277
           },
438
           },
278
         };
439
         };
279
-      },
280
-      //继续扫描
281
-      Scanning_again() {
282
-        SM().then((ress1) => {
283
-          // ----------------
284
-          //检验二维码的有效性
285
-          post("/dept/scanning", {
286
-            content: ress1,
287
-          }).then((result) => {
288
-            if (result.state == 200 || result.state == 201) {
289
-              let ress = result.code;
290
-              let speCode = ress;
291
-              let data = {
292
-                code: speCode,
293
-                type: this.queryObj.type1,
294
-                deptCode: this.code,
295
-                ids: this.ids,
296
-              };
297
-              let postType = "";
298
-              if (this.type == "jPBag" || this.type == "drugsBag") {
299
-                postType = "handleDrugsAndJp";
300
-              }
301
-              if (this.type == "specimen") {
302
-                postType = "handleSpes";
303
-                data["speCode"] = data.code;
304
-                delete data.code;
305
-              }
306
-              if (this.type == "specimenPlan") {
307
-                postType = "handlePlanSpes";
308
-                data["speCode"] = data.code;
309
-                delete data.code;
310
-              }
311
-              if (this.type == "inspect") {
312
-                postType = "handleIns";
313
-              }
314
-              if (this.type == "patientTransport") {
315
-                postType = "handleTrans";
316
-              }
317
-              post("/workerOrder/" + postType, data).then((ress) => {
318
-                if (ress.status == 200) {
319
-                  this.speNum++;
320
-                  uni.navigateTo({
321
-                    url: `../scanning_djInfo/scanning_djInfo?type=${
440
+      } else {
441
+        uni.navigateTo({
442
+          url: `../scanning/scanning?type=${this.queryObj.type}&type1=${
443
+            this.queryObj.type1
444
+          }&deptCode=${this.queryObj.code}&dept=${
445
+            this.queryObj.dept
446
+          }&id=${encodeURIComponent(JSON.stringify(this.ids))}`,
447
+        });
448
+      }
449
+    },
450
+    //一对一完成工单
451
+    Scanning_complete1(id) {
452
+      this.modelFlag = "complete1";
453
+      this.wcId = id;
454
+      this.models = {
455
+        disjunctor: true,
456
+        title: "提示",
457
+        content: "是否确定标本配送完成?",
458
+        icon: "warn",
459
+        operate: {
460
+          ok: "确定",
461
+          cancel: "取消",
462
+        },
463
+      };
464
+    },
465
+    //继续扫描
466
+    Scanning_again() {
467
+      SM().then((ress1) => {
468
+        // ----------------
469
+        //检验二维码的有效性
470
+        post("/dept/scanning", {
471
+          content: ress1,
472
+        }).then((result) => {
473
+          if (result.state == 200 || result.state == 201) {
474
+            let ress = result.code;
475
+            let speCode = ress;
476
+            let data = {
477
+              code: speCode,
478
+              type: this.queryObj.type1,
479
+              deptCode: this.code,
480
+              ids: this.ids,
481
+            };
482
+            let postType = "";
483
+            if (this.type == "jPBag" || this.type == "drugsBag") {
484
+              postType = "handleDrugsAndJp";
485
+            }
486
+            if (this.type == "specimen") {
487
+              postType = "handleSpes";
488
+              data["speCode"] = data.code;
489
+              delete data.code;
490
+            }
491
+            if (this.type == "specimenPlan") {
492
+              postType = "handlePlanSpes";
493
+              data["speCode"] = data.code;
494
+              delete data.code;
495
+            }
496
+            if (this.type == "inspect") {
497
+              postType = "handleIns";
498
+            }
499
+            if (this.type == "patientTransport") {
500
+              postType = "handleTrans";
501
+            }
502
+            post("/workerOrder/" + postType, data).then((ress) => {
503
+              if (ress.status == 200) {
504
+                uni.navigateTo({
505
+                  url: `../scanning_djInfo/scanning_djInfo?type=${
322
                     this.queryObj.type
506
                     this.queryObj.type
323
                   }&type1=${this.queryObj.type1}&infoData=${encodeURIComponent(
507
                   }&type1=${this.queryObj.type1}&infoData=${encodeURIComponent(
324
                     JSON.stringify(ress.data)
508
                     JSON.stringify(ress.data)
@@ -326,14 +510,11 @@
326
                     this.queryObj.code
510
                     this.queryObj.code
327
                   }&dept=${this.queryObj.dept}&ids=${encodeURIComponent(
511
                   }&dept=${this.queryObj.dept}&ids=${encodeURIComponent(
328
                     JSON.stringify(this.ids)
512
                     JSON.stringify(this.ids)
329
-                  )}&speNum=${this.speNum}&model=${encodeURIComponent(
330
-                    JSON.stringify(ress)
331
-                  )}`,
332
-                  });
333
-                  uni.setStorageSync("speNum", this.speNum);
334
-                } else {
335
-                  uni.navigateTo({
336
-                    url: `../scanning_djInfo/scanning_djInfo?type=${
513
+                  )}&model=${encodeURIComponent(JSON.stringify(ress))}`,
514
+                });
515
+              } else {
516
+                uni.navigateTo({
517
+                  url: `../scanning_djInfo/scanning_djInfo?type=${
337
                     this.queryObj.type
518
                     this.queryObj.type
338
                   }&type1=${this.queryObj.type1}&status=${ress.status}&msg=${
519
                   }&type1=${this.queryObj.type1}&status=${ress.status}&msg=${
339
                     ress.msg
520
                     ress.msg
@@ -341,142 +522,126 @@
341
                     this.queryObj.dept
522
                     this.queryObj.dept
342
                   }&ids=${encodeURIComponent(
523
                   }&ids=${encodeURIComponent(
343
                     JSON.stringify(this.ids)
524
                     JSON.stringify(this.ids)
344
-                  )}&speNum=${this.speNum}&infoData=${encodeURIComponent(
525
+                  )}&infoData=${encodeURIComponent(
345
                     JSON.stringify(ress.data)
526
                     JSON.stringify(ress.data)
346
                   )}&model=${encodeURIComponent(JSON.stringify(ress))}`,
527
                   )}&model=${encodeURIComponent(JSON.stringify(ress))}`,
347
-                  });
348
-                }
349
-              });
350
-            } else {
351
-              uni.showToast({
352
-                icon: "none",
353
-                title: "请求失败!",
354
-              });
355
-            }
356
-          });
357
-          // ------------------------------
358
-        });
359
-      },
360
-      // 知道了
361
-      showAlert() {
362
-        uni.navigateTo({
363
-          url: "../receiptpage/receiptpage",
528
+                });
529
+              }
530
+            });
531
+          } else {
532
+            uni.showToast({
533
+              icon: "none",
534
+              title: "请求失败!",
535
+            });
536
+          }
364
         });
537
         });
365
-      },
538
+        // ------------------------------
539
+      });
366
     },
540
     },
367
-    onLoad(options) {
368
-      console.log(options, "djEnd");
369
-      this.queryObj = options;
370
-      let list = JSON.parse(options.model); //签到返回的信息
371
-      this.code = options.code; //二维码code
372
-      this.ids = options.ids && JSON.parse(options.ids); //科室ID数组
373
-      this.infoDATA = list;
374
-      if (options.type) {
375
-        //关联类型
376
-        this.type = options.type;
377
-      } else {
378
-        this.type = list.type;
379
-      }
380
-      this.type1 = options.type1;
381
-      if (options.speNum) {
382
-        this.speNum = options.speNum;
383
-      } else {
384
-        this.speNumLocal = uni.getStorageSync("speNum");
385
-        // 本地存在speNum的时候
386
-        if (this.speNumLocal) {
387
-          this.speNum = Number(this.speNumLocal);
388
-        }
389
-      }
390
-      // #ifdef APP-PLUS
391
-      webHandle("no", "app");
392
-      // #endif
393
-      // #ifdef H5
394
-      webHandle("no", "wx");
395
-      // #endif
541
+    // 知道了
542
+    showAlert() {
543
+      uni.navigateTo({
544
+        url: "../receiptpage/receiptpage",
545
+      });
396
     },
546
     },
397
-  };
547
+  },
548
+  onShow() {
549
+    this.gotoFlag = true;
550
+  },
551
+  onLoad(options) {
552
+    console.log(options, "djEnd");
553
+    this.queryObj = options;
554
+    let list = JSON.parse(options.model); //签到返回的信息
555
+    this.code = options.code; //二维码code
556
+    this.ids = options.ids && JSON.parse(options.ids); //科室ID数组
557
+    this.infoDATA = list;
558
+    if (options.type) {
559
+      //关联类型
560
+      this.type = options.type;
561
+    } else {
562
+      this.type = list.type;
563
+    }
564
+    this.type1 = options.type1;
565
+    // #ifdef APP-PLUS
566
+    webHandle("no", "app");
567
+    // #endif
568
+    // #ifdef H5
569
+    webHandle("no", "wx");
570
+    // #endif
571
+  },
572
+};
398
 </script>
573
 </script>
399
 <style lang="less">
574
 <style lang="less">
400
-  .Scanning_djEnd {
401
-    padding: 0px 74rpx;
575
+.Scanning_djEnd {
576
+  padding: 0px 20rpx;
402
 
577
 
403
-    .Scanning_top {
404
-      height: 270rpx;
578
+  .Scanning_top {
579
+    height: 270rpx;
405
 
580
 
406
-      .Scanning_top_icon {
407
-        width: 140rpx;
408
-        height: 140rpx;
409
-        margin: 0 auto;
410
-        // margin-top: 116rpx;
411
-        border-radius: 50%;
412
-        line-height: 140rpx;
413
-
414
-        .cubeic-ok {
415
-          font-size: 140rpx;
416
-          color: #35b34a;
417
-        }
581
+    .Scanning_top_icon {
582
+      width: 140rpx;
583
+      height: 140rpx;
584
+      margin: 0 auto;
585
+      // margin-top: 116rpx;
586
+      border-radius: 50%;
587
+      line-height: 140rpx;
418
 
588
 
419
-        .cubeic-close {
420
-          font-size: 140rpx;
421
-          color: #ff3b53;
422
-        }
589
+      .cubeic-ok {
590
+        font-size: 140rpx;
591
+        color: #35b34a;
423
       }
592
       }
424
 
593
 
425
-      .Scanning_top_text {
426
-        .text1 {
427
-          margin-top: 40rpx;
428
-          font-size: 48rpx;
429
-          text-align: center;
430
-        }
594
+      .cubeic-close {
595
+        font-size: 140rpx;
596
+        color: #ff3b53;
431
       }
597
       }
432
     }
598
     }
433
 
599
 
434
-    .Scanning_cont {
435
-      font-size: 32rpx;
436
-      text-align: center;
437
-
438
-      view {
439
-        margin-bottom: 16rpx;
440
-      }
441
-
442
-      .text {
443
-        margin-top: 24rpx;
444
-        color: #35b34a;
445
-      }
446
-
600
+    .Scanning_top_text {
447
       .text1 {
601
       .text1 {
448
-        margin-top: 24rpx;
449
-        color: #ff3b53;
602
+        margin-top: 40rpx;
603
+        font-size: 48rpx;
604
+        text-align: center;
450
       }
605
       }
451
     }
606
     }
607
+  }
452
 
608
 
453
-    .foot_btn {
454
-      line-height: 88rpx;
455
-      height: 100rpx;
456
-      margin-top: 40rpx;
457
-      text-align: center;
609
+  .Scanning_cont {
610
+    font-size: 32rpx;
611
+    text-align: center;
458
 
612
 
459
-      view {
460
-        height: 88rpx;
461
-        width: 45%;
462
-        background-image: linear-gradient(to right, #72c172, #3bb197);
463
-        color: #fff;
464
-        border-radius: 8rpx;
465
-        font-size: 32rpx;
466
-        margin-top: 16rpx;
467
-      }
613
+    view {
614
+      margin-bottom: 16rpx;
615
+    }
468
 
616
 
469
-      .btn1 {
470
-        float: left;
471
-      }
617
+    .text {
618
+      margin-top: 24rpx;
619
+      color: #35b34a;
620
+    }
472
 
621
 
473
-      .btn2 {
474
-        float: right;
475
-      }
622
+    .text1 {
623
+      margin-top: 24rpx;
624
+      color: #ff3b53;
625
+    }
626
+  }
476
 
627
 
477
-      .btn3 {
478
-        margin: 0 auto;
479
-      }
628
+  .foot_btn {
629
+    line-height: 88rpx;
630
+    height: 100rpx;
631
+    margin-top: 40rpx;
632
+    text-align: center;
633
+    display: flex;
634
+
635
+    view {
636
+      height: 88rpx;
637
+      flex: 1;
638
+      margin: 0 1%;
639
+      background-image: linear-gradient(to right, #72c172, #3bb197);
640
+      color: #fff;
641
+      border-radius: 8rpx;
642
+      font-size: 32rpx;
643
+      margin-top: 16rpx;
480
     }
644
     }
481
   }
645
   }
646
+}
482
 </style>
647
 </style>

+ 100 - 28
pages/scanning_djInfo/scanning_djInfo.vue

@@ -76,6 +76,7 @@
76
         res.status == 100018 || type == 'specimen' || type == 'specimenPlan'
76
         res.status == 100018 || type == 'specimen' || type == 'specimenPlan'
77
       ">
77
       ">
78
       <view class="btn1" @click="Scanning_again()">继续扫描</view>
78
       <view class="btn1" @click="Scanning_again()">继续扫描</view>
79
+      <view class="btn3" @click="getNoScanSpecimen()" v-if="type == 'specimen' || type == 'specimenPlan'">查看未扫描标本</view>
79
       <view class="btn2" @click="Scanning_complete(ids)">完成扫描</view>
80
       <view class="btn2" @click="Scanning_complete(ids)">完成扫描</view>
80
     </view>
81
     </view>
81
     <view class="foot_btn" v-if="
82
     <view class="foot_btn" v-if="
@@ -108,6 +109,10 @@
108
     <!-- 弹窗 -->
109
     <!-- 弹窗 -->
109
     <showModel :title="models.title" :icon="models.icon" :disjunctor="models.disjunctor" :content="models.content"
110
     <showModel :title="models.title" :icon="models.icon" :disjunctor="models.disjunctor" :content="models.content"
110
       @ok="ok" @cancel="cancel" :operate="models.operate"></showModel>
111
       @ok="ok" @cancel="cancel" :operate="models.operate"></showModel>
112
+    <!-- 弹窗 -->
113
+    <showModel :title="models2.title" :icon="models2.icon" :disjunctor="models2.disjunctor" :content="models2.content"
114
+      @ok="ok2" @cancel="cancel2" :operate="models2.operate">
115
+    </showModel>
111
   </view>
116
   </view>
112
 </template>
117
 </template>
113
 <script>
118
 <script>
@@ -125,6 +130,10 @@
125
         models: {
130
         models: {
126
           disjunctor: false,
131
           disjunctor: false,
127
         },
132
         },
133
+        // 完成扫描弹窗model1
134
+        models2: {
135
+          disjunctor: false,
136
+        },
128
         wcId: "", //工单完成ID
137
         wcId: "", //工单完成ID
129
         infoDATA: [],
138
         infoDATA: [],
130
         res: {
139
         res: {
@@ -142,18 +151,31 @@
142
         packid: "",
151
         packid: "",
143
         speNum: 0,
152
         speNum: 0,
144
         queryObj: {}, //路由传递过来的参数
153
         queryObj: {}, //路由传递过来的参数
154
+        gotoFlag: true,
145
       };
155
       };
146
     },
156
     },
147
     methods: {
157
     methods: {
148
-      // 确定
149
-      ok() {
158
+      // 查看未扫描标本
159
+      getNoScanSpecimen() {
160
+        if (!this.gotoFlag) {
161
+          return;
162
+        }
163
+        this.gotoFlag = false;
164
+        uni.navigateTo({
165
+          url: `../noScanSpecimen/noScanSpecimen?workOrderId=${this.queryObj.ids[0]}`,
166
+        });
167
+      },
168
+      overFinish() {
150
         let postType = "";
169
         let postType = "";
151
-        if (this.queryObj.type1 == "plan-spe-ddd-2") {
170
+        if (
171
+          this.queryObj.type1 === "plan-spe-ddd-2" ||
172
+          this.queryObj.type1 === "plan-spe-dsd-2" ||
173
+          this.queryObj.type1 === "plan-spe-dsd-3"
174
+        ) {
152
           postType = "finishPlanSpes";
175
           postType = "finishPlanSpes";
153
         } else if (this.queryObj.type1 == "spe-ddd-2") {
176
         } else if (this.queryObj.type1 == "spe-ddd-2") {
154
           postType = "finishSpes";
177
           postType = "finishSpes";
155
         }
178
         }
156
-        this.models.disjunctor = false;
157
         let data = {
179
         let data = {
158
           type: this.queryObj.type1,
180
           type: this.queryObj.type1,
159
           ids: this.wcId,
181
           ids: this.wcId,
@@ -171,10 +193,76 @@
171
           }
193
           }
172
         });
194
         });
173
       },
195
       },
196
+      // 确定
197
+      ok() {
198
+        this.models.disjunctor = false;
199
+        let postData = {
200
+          ids: this.queryObj.ids,
201
+          sign: true
202
+        };
203
+        uni.showLoading({
204
+          title: "加载中",
205
+          mask: true,
206
+        });
207
+        post("/workerOrder/expectedAndActual", postData).then((ress) => {
208
+          uni.hideLoading();
209
+          if (ress.status == 200) {
210
+            if (ress.actualReceiveNum === undefined) {
211
+              //正常完成扫描
212
+              this.overFinish();
213
+            } else {
214
+              this.models2 = {
215
+                disjunctor: true,
216
+                title: "提示",
217
+                content: `您扫描的标本<strong class="red">${ress.actualReceiveNum}</strong>个,与系统预计标本${ress.expectReceiveNum}个标本不一致,您确认要完成扫描码?`,
218
+                icon: "warn",
219
+                operate: {
220
+                  ok: "确定",
221
+                  cancel: "取消",
222
+                },
223
+              };
224
+            }
225
+          } else {
226
+            uni.showToast({
227
+              icon: "none",
228
+              title: "请求失败!",
229
+            });
230
+          }
231
+        });
232
+
233
+      },
174
       // 取消
234
       // 取消
175
       cancel() {
235
       cancel() {
176
         this.models.disjunctor = false;
236
         this.models.disjunctor = false;
177
       },
237
       },
238
+      // 确定
239
+      ok2() {
240
+        this.models2.disjunctor = false;
241
+        let postData = {
242
+          ids: this.queryObj.ids,
243
+        };
244
+        uni.showLoading({
245
+          title: "加载中",
246
+          mask: true,
247
+        });
248
+        post("/workerOrder/expectedAndActual", postData).then((ress) => {
249
+          uni.hideLoading();
250
+          if (ress.status == 200) {
251
+            uni.navigateTo({
252
+              url: "../receiptpage/receiptpage",
253
+            });
254
+          } else {
255
+            uni.showToast({
256
+              icon: "none",
257
+              title: "请求失败!",
258
+            });
259
+          }
260
+        });
261
+      },
262
+      // 取消
263
+      cancel2() {
264
+        this.models2.disjunctor = false;
265
+      },
178
       //完成扫描
266
       //完成扫描
179
       Scanning_complete(id) {
267
       Scanning_complete(id) {
180
         if (
268
         if (
@@ -286,8 +374,7 @@
286
                       this.type == "specimen"
374
                       this.type == "specimen"
287
                     ) {
375
                     ) {
288
                       this.infoDATA = res;
376
                       this.infoDATA = res;
289
-                      this.speNum++;
290
-                      uni.setStorageSync("speNum", this.speNum); //seimin 2020年6月15日18:45:46
377
+                      this.speNum = res.specimenCount;
291
                       // --------------------------
378
                       // --------------------------
292
                       this.res["status"] = res.status;
379
                       this.res["status"] = res.status;
293
                       this.res["msg"] = res.msg;
380
                       this.res["msg"] = res.msg;
@@ -305,7 +392,7 @@
305
                         this.queryObj.deptCode
392
                         this.queryObj.deptCode
306
                       }&dept=${this.queryObj.dept}&ids=${encodeURIComponent(
393
                       }&dept=${this.queryObj.dept}&ids=${encodeURIComponent(
307
                         JSON.stringify(this.ids)
394
                         JSON.stringify(this.ids)
308
-                      )}&speNum=${this.speNum}&model=${encodeURIComponent(
395
+                      )}&model=${encodeURIComponent(
309
                         JSON.stringify(res)
396
                         JSON.stringify(res)
310
                       )}`,
397
                       )}`,
311
                       });
398
                       });
@@ -318,7 +405,7 @@
318
                       this.queryObj.deptCode
405
                       this.queryObj.deptCode
319
                     }&dept=${this.queryObj.dept}&ids=${encodeURIComponent(
406
                     }&dept=${this.queryObj.dept}&ids=${encodeURIComponent(
320
                       JSON.stringify(this.ids)
407
                       JSON.stringify(this.ids)
321
-                    )}&speNum=${this.speNum}&model=${encodeURIComponent(
408
+                    )}&model=${encodeURIComponent(
322
                       JSON.stringify(res)
409
                       JSON.stringify(res)
323
                     )}`,
410
                     )}`,
324
                     });
411
                     });
@@ -343,6 +430,7 @@
343
       },
430
       },
344
     },
431
     },
345
     onLoad(options) {
432
     onLoad(options) {
433
+      console.log(options,'options')
346
       this.queryObj = options;
434
       this.queryObj = options;
347
       if (this.queryObj.model) {
435
       if (this.queryObj.model) {
348
         let list = JSON.parse(this.queryObj.model);
436
         let list = JSON.parse(this.queryObj.model);
@@ -368,12 +456,6 @@
368
           this.idsType = 2;
456
           this.idsType = 2;
369
         }
457
         }
370
       }
458
       }
371
-      if (this.queryObj.speNum) {
372
-        this.speNum = this.queryObj.speNum;
373
-      } else {
374
-        this.speNum = uni.getStorageSync("speNum");
375
-        this.speNum = Number(this.speNum);
376
-      }
377
       this.DEPTCode = this.queryObj.deptCode;
459
       this.DEPTCode = this.queryObj.deptCode;
378
       this.type = this.queryObj.type;
460
       this.type = this.queryObj.type;
379
       // #ifdef APP-PLUS
461
       // #ifdef APP-PLUS
@@ -387,7 +469,7 @@
387
 </script>
469
 </script>
388
 <style lang="less">
470
 <style lang="less">
389
   .Scanning_djInfo {
471
   .Scanning_djInfo {
390
-    padding: 0 74rpx;
472
+    padding: 0 20rpx;
391
 
473
 
392
     .Scanning_top {
474
     .Scanning_top {
393
       height: 270rpx;
475
       height: 270rpx;
@@ -448,30 +530,20 @@
448
       height: 100rpx;
530
       height: 100rpx;
449
       margin-top: 40rpx;
531
       margin-top: 40rpx;
450
       text-align: center;
532
       text-align: center;
533
+      display: flex;
451
 
534
 
452
       .btn1,
535
       .btn1,
453
       .btn2,
536
       .btn2,
454
       .btn3 {
537
       .btn3 {
455
         height: 88rpx;
538
         height: 88rpx;
456
-        width: 45%;
539
+        margin: 0 1%;
540
+        flex: 1;
457
         background-image: linear-gradient(to right, #72c172, #3bb197);
541
         background-image: linear-gradient(to right, #72c172, #3bb197);
458
         color: #fff;
542
         color: #fff;
459
         border-radius: 8rpx;
543
         border-radius: 8rpx;
460
         font-size: 32rpx;
544
         font-size: 32rpx;
461
         margin-top: 16rpx;
545
         margin-top: 16rpx;
462
       }
546
       }
463
-
464
-      .btn1 {
465
-        float: left;
466
-      }
467
-
468
-      .btn2 {
469
-        float: right;
470
-      }
471
-
472
-      .btn3 {
473
-        margin: 0 auto;
474
-      }
475
     }
547
     }
476
   }
548
   }
477
 </style>
549
 </style>