Browse Source

药品及标本优化

seimin 2 months ago
parent
commit
a8133967b1

+ 7 - 0
App.vue

@@ -212,4 +212,11 @@
212
       flex: 1;
212
       flex: 1;
213
     }
213
     }
214
   }
214
   }
215
+  .ellipsis-multiline {
216
+    display: -webkit-box;
217
+    -webkit-box-orient: vertical;
218
+    -webkit-line-clamp: 2; /* 定义显示的行数 */
219
+    overflow: hidden;
220
+    text-overflow: ellipsis;
221
+  }
215
 </style>
222
 </style>

+ 74 - 23
pages/checkAfterBigScreen/checkAfterBigScreen.vue

@@ -19,21 +19,29 @@
19
           检验科室标本数量:
19
           检验科室标本数量:
20
         </view>
20
         </view>
21
         <view class="page_item_cont_title" v-for="(item, i) in info.data" :key="i">
21
         <view class="page_item_cont_title" v-for="(item, i) in info.data" :key="i">
22
-					<uni-collapse :border="false">
23
-						<uni-collapse-item titleBorder="none">
24
-							<template v-slot:title>
25
-								<view class="page_item_cont_title_coll">
26
-									<view>{{item.deptName}}</view>
27
-									<view class="text_big" @click.stop="goToSpeDetail(item.deptName,item.deptQrCode)"><text class="underline">{{item.speCount}}</text>只</view>
28
-								</view>
29
-							</template>
30
-							<view class="content">
31
-								<view class="list" v-for="x in item.tubeTypeData" @click="viewSpe(item.deptName,item.deptQrCode,x.tubeTypeId)">
32
-									{{x.tubeTypeName}}:<text class="underline-item">{{x.speCount}}</text>
33
-								</view>
34
-							</view>
35
-						</uni-collapse-item>
36
-					</uni-collapse>
22
+          <template v-if="taskTypeConfig.speExpandTube == 1">
23
+            <uni-collapse :border="false">
24
+              <uni-collapse-item titleBorder="none" :open="taskTypeConfig.speDefaultExpandTube == 1">
25
+                <template v-slot:title>
26
+                  <view class="page_item_cont_title_coll">
27
+                    <view>{{item.deptName}}</view>
28
+                    <view class="text_big" style="padding-right: 20rpx;" @click.stop="goToSpeDetail(item.deptName,item.deptQrCode)"><text class="underline">{{item.speCount}}</text>只</view>
29
+                  </view>
30
+                </template>
31
+                <view class="content">
32
+                  <view class="list" v-for="x in item.tubeTypeData" :key="x.id" @click="viewSpe(item.deptName,item.deptQrCode,x.tubeTypeId)">
33
+                    {{x.tubeTypeName}}:<text class="underline-item">{{x.speCount}}</text>
34
+                  </view>
35
+                </view>
36
+              </uni-collapse-item>
37
+            </uni-collapse>
38
+          </template>
39
+          <template v-else>
40
+            <view class="page_item_cont_title_coll" style="width: 100%;">
41
+            	<view>{{item.deptName}}</view>
42
+            	<view class="text_big" @click.stop="goToSpeDetail(item.deptName,item.deptQrCode)"><text class="underline">{{item.speCount}}</text>只</view>
43
+            </view>
44
+          </template>
37
         </view>
45
         </view>
38
       </view>
46
       </view>
39
     </view>
47
     </view>
@@ -60,6 +68,8 @@
60
   export default {
68
   export default {
61
     data() {
69
     data() {
62
       return {
70
       return {
71
+        hosId: uni.getStorageSync('userData').user.currentHospital.id,
72
+        taskTypeConfig: {},
63
         // 弹窗model
73
         // 弹窗model
64
         models: {
74
         models: {
65
           disjunctor: false,
75
           disjunctor: false,
@@ -73,6 +83,45 @@
73
       };
83
       };
74
     },
84
     },
75
     methods: {
85
     methods: {
86
+      // 获取配置
87
+			getSpecimenTaskTypeConfig(){
88
+        uni.showLoading({
89
+          title: "加载中",
90
+          mask: true,
91
+        });
92
+        post("/simple/data/fetchDataList/taskTypeConfig", {
93
+          "idx": 0,
94
+          "sum": 1,
95
+          "taskTypeConfig": {
96
+            "taskTypeDTO": {
97
+              "hosId": {
98
+                  "id": this.hosId
99
+              },
100
+              "associationType": {
101
+                  "key": "association_types",
102
+                  "value": "specimen"
103
+              }
104
+            }
105
+          }
106
+        }).then((result) => {
107
+          uni.hideLoading();
108
+          if (result.status == 200) {
109
+            if(result.list.length){
110
+              this.taskTypeConfig = result.list[0] || {};
111
+            }else{
112
+              uni.showToast({
113
+                icon: "none",
114
+                title: "请配置标本配送任务类型!",
115
+              });
116
+            }
117
+          } else {
118
+            uni.showToast({
119
+              icon: "none",
120
+              title: result.msg || "接口获取数据失败!",
121
+            });
122
+          }
123
+        });
124
+      },
76
 			viewSpe(deptName, qrCode, id){
125
 			viewSpe(deptName, qrCode, id){
77
 				uni.navigateTo({
126
 				uni.navigateTo({
78
 				  url: `../viewSpe/viewSpe?deptName=${deptName}&workOrderId=${this.queryObj.ids}&deptCode=${qrCode}&tubeTypeId=${id}&isScan=1&specimensCheck=1&noScan=1`,
127
 				  url: `../viewSpe/viewSpe?deptName=${deptName}&workOrderId=${this.queryObj.ids}&deptCode=${qrCode}&tubeTypeId=${id}&isScan=1&specimensCheck=1&noScan=1`,
@@ -231,6 +280,7 @@
231
       console.log(options);
280
       console.log(options);
232
       this.queryObj = options;
281
       this.queryObj = options;
233
       this.getInfo(this.queryObj.ids);
282
       this.getInfo(this.queryObj.ids);
283
+      this.getSpecimenTaskTypeConfig();
234
       // #ifdef APP-PLUS
284
       // #ifdef APP-PLUS
235
       webHandle("no", "app");
285
       webHandle("no", "app");
236
       // #endif
286
       // #endif
@@ -244,7 +294,7 @@
244
 	/deep/ .uni-collapse-item--border{
294
 	/deep/ .uni-collapse-item--border{
245
 		border-bottom-color: #fff !important;
295
 		border-bottom-color: #fff !important;
246
 	}
296
 	}
247
-	
297
+
248
 	/deep/ .uni-collapse-item__title-arrow{
298
 	/deep/ .uni-collapse-item__title-arrow{
249
 		margin-right: 0 !important;
299
 		margin-right: 0 !important;
250
 	}
300
 	}
@@ -263,7 +313,7 @@
263
       padding: 0 20rpx;
313
       padding: 0 20rpx;
264
       text-align: left;
314
       text-align: left;
265
       position: relative;
315
       position: relative;
266
-      
316
+
267
       .text_title{
317
       .text_title{
268
         flex-shrink: 0;
318
         flex-shrink: 0;
269
         margin-right: 16rpx;
319
         margin-right: 16rpx;
@@ -272,18 +322,18 @@
272
       .text_big {
322
       .text_big {
273
         font-size: 32rpx;
323
         font-size: 32rpx;
274
         font-weight: 700;
324
         font-weight: 700;
275
-        margin-top: 10rpx;
325
+        // margin-top: 10rpx;
276
 
326
 
277
         .underline {
327
         .underline {
278
           text-decoration: underline;
328
           text-decoration: underline;
279
         }
329
         }
280
       }
330
       }
281
-			
331
+
282
 			.underline-item{
332
 			.underline-item{
283
 				// text-decoration: underline;
333
 				// text-decoration: underline;
284
 				// margin-right: 40rpx;
334
 				// margin-right: 40rpx;
285
 			}
335
 			}
286
-			
336
+
287
       .page_item_cont_T {
337
       .page_item_cont_T {
288
         padding-top: 28rpx;
338
         padding-top: 28rpx;
289
         padding-bottom: 28rpx;
339
         padding-bottom: 28rpx;
@@ -292,13 +342,14 @@
292
         border: 1px solid #CBCBCB;
342
         border: 1px solid #CBCBCB;
293
         border-radius: 10rpx;
343
         border-radius: 10rpx;
294
         padding: 20rpx;
344
         padding: 20rpx;
295
-				
345
+
296
         .page_item_cont_title {
346
         .page_item_cont_title {
297
           height: 100%;
347
           height: 100%;
298
           font-size: 32rpx;
348
           font-size: 32rpx;
299
           display: flex;
349
           display: flex;
300
           justify-content: space-between;
350
           justify-content: space-between;
301
           align-items: center;
351
           align-items: center;
352
+          margin-top: 10rpx;
302
 					.content{
353
 					.content{
303
 						display: flex;
354
 						display: flex;
304
 						flex-wrap: wrap;
355
 						flex-wrap: wrap;
@@ -325,14 +376,14 @@
325
           align-items: center;
376
           align-items: center;
326
         }
377
         }
327
       }
378
       }
328
-			
379
+
329
 			.page_item_cont_title_coll{
380
 			.page_item_cont_title_coll{
330
 				display: flex;
381
 				display: flex;
331
 				justify-content: space-between;
382
 				justify-content: space-between;
332
 				align-items: center;
383
 				align-items: center;
333
 				margin-right: 8rpx;
384
 				margin-right: 8rpx;
334
 			}
385
 			}
335
-			
386
+
336
       .page_item_cont_B {
387
       .page_item_cont_B {
337
         padding-top: 28rpx;
388
         padding-top: 28rpx;
338
         margin-bottom: 28rpx;
389
         margin-bottom: 28rpx;

+ 27 - 16
pages/checkAfterScanning/checkAfterScanning.vue

@@ -19,21 +19,29 @@
19
           检验科室标本数量:
19
           检验科室标本数量:
20
         </view>
20
         </view>
21
         <view class="page_item_cont_title" v-for="(item, i) in info.data" :key="i">
21
         <view class="page_item_cont_title" v-for="(item, i) in info.data" :key="i">
22
-         <uni-collapse :border="false">
23
-						<uni-collapse-item titleBorder="none">
24
-							<template v-slot:title>
25
-								<view class="page_item_cont_title_coll">
26
-									<view>{{item.deptName}}</view>
27
-									<view class="text_big" @click.stop="goToSpeDetail(item.deptName,item.deptQrCode)"><text class="underline">{{item.speCount}}</text>只</view>
28
-								</view>
29
-							</template>
30
-							<view class="content">
31
-								<view class="list" v-for="x in item.tubeTypeData" @click="viewSpe(item.deptName,item.deptQrCode,x.tubeTypeId)">
32
-									{{x.tubeTypeName}}:<text class="underline-item">{{x.speCount}}</text>
33
-								</view>
34
-							</view>
35
-						</uni-collapse-item>
36
-					</uni-collapse>
22
+          <template v-if="taskTypeConfig.speExpandTube == 1">
23
+            <uni-collapse :border="false">
24
+              <uni-collapse-item titleBorder="none" :open="taskTypeConfig.speDefaultExpandTube == 1">
25
+                <template v-slot:title>
26
+                  <view class="page_item_cont_title_coll">
27
+                    <view>{{item.deptName}}</view>
28
+                    <view class="text_big" style="padding-right: 20rpx;" @click.stop="goToSpeDetail(item.deptName,item.deptQrCode)"><text class="underline">{{item.speCount}}</text>只</view>
29
+                  </view>
30
+                </template>
31
+                <view class="content">
32
+                  <view class="list" v-for="x in item.tubeTypeData" :key="x.id" @click="viewSpe(item.deptName,item.deptQrCode,x.tubeTypeId)">
33
+                    {{x.tubeTypeName}}:<text class="underline-item">{{x.speCount}}</text>
34
+                  </view>
35
+                </view>
36
+              </uni-collapse-item>
37
+            </uni-collapse>
38
+          </template>
39
+          <template v-else>
40
+            <view class="page_item_cont_title_coll" style="width: 100%;">
41
+            	<view>{{item.deptName}}</view>
42
+            	<view class="text_big" @click.stop="goToSpeDetail(item.deptName,item.deptQrCode)"><text class="underline">{{item.speCount}}</text>只</view>
43
+            </view>
44
+          </template>
37
         </view>
45
         </view>
38
       </view>
46
       </view>
39
     </view>
47
     </view>
@@ -67,6 +75,7 @@
67
   export default {
75
   export default {
68
     data() {
76
     data() {
69
       return {
77
       return {
78
+        taskTypeConfig: {},
70
         handoverId: undefined,
79
         handoverId: undefined,
71
         handoverDeptId: undefined,
80
         handoverDeptId: undefined,
72
         info: {},
81
         info: {},
@@ -175,6 +184,7 @@
175
 			            let data = res.list[0];
184
 			            let data = res.list[0];
176
 									uni.hideLoading();
185
 									uni.hideLoading();
177
 			        		if(data){
186
 			        		if(data){
187
+                    this.taskTypeConfig = data || {};
178
 										// 输入动态数字密钥
188
 										// 输入动态数字密钥
179
 			              this.enterDynamicDigitalKey = data.enterDynamicDigitalKey
189
 			              this.enterDynamicDigitalKey = data.enterDynamicDigitalKey
180
 										console.log(55555,this.enterDynamicDigitalKey)
190
 										console.log(55555,this.enterDynamicDigitalKey)
@@ -608,7 +618,7 @@
608
       .text_big {
618
       .text_big {
609
         font-size: 32rpx;
619
         font-size: 32rpx;
610
         font-weight: 700;
620
         font-weight: 700;
611
-        margin-top: 10rpx;
621
+        // margin-top: 10rpx;
612
       }
622
       }
613
 			
623
 			
614
 			.underline{
624
 			.underline{
@@ -635,6 +645,7 @@
635
           display: flex;
645
           display: flex;
636
           justify-content: space-between;
646
           justify-content: space-between;
637
           align-items: center;
647
           align-items: center;
648
+          margin-top: 10rpx;
638
 					.content{
649
 					.content{
639
 						display: flex;
650
 						display: flex;
640
 						flex-wrap: wrap;
651
 						flex-wrap: wrap;

+ 6 - 2
pages/patientInspectLog/components/patientInspectLogListFilter.vue

@@ -4,13 +4,13 @@
4
       <view class="container_form">
4
       <view class="container_form">
5
         <view class="head">
5
         <view class="head">
6
           <text class="name">状态</text>
6
           <text class="name">状态</text>
7
-          <text class="status">{{getStateNames()}}</text>
7
+          <text class="status ellipsis-multiline">{{getStateNames()}}</text>
8
         </view>
8
         </view>
9
         <view class="statusList">
9
         <view class="statusList">
10
           <view class="statusItem" :class="{ active: item.checked }" v-for="item in searchData.stateList" :key="item.id" @click="item.checked = !item.checked;">{{item.name}}<text class="newicon newicon-xuanzejiaobiao" v-if="item.checked"></text></view>
10
           <view class="statusItem" :class="{ active: item.checked }" v-for="item in searchData.stateList" :key="item.id" @click="item.checked = !item.checked;">{{item.name}}<text class="newicon newicon-xuanzejiaobiao" v-if="item.checked"></text></view>
11
         </view>
11
         </view>
12
         <view class="category" @click="clickPageRouter('department')">
12
         <view class="category" @click="clickPageRouter('department')">
13
-          <text class="name">科室</text>
13
+          <text class="name">患者科室</text>
14
           <text class="value ellipsis">{{searchData.department ? searchData.department.dept : ''}}</text>
14
           <text class="value ellipsis">{{searchData.department ? searchData.department.dept : ''}}</text>
15
         </view>
15
         </view>
16
         
16
         
@@ -359,8 +359,12 @@
359
       justify-content: space-between;
359
       justify-content: space-between;
360
       background-color: #fff;
360
       background-color: #fff;
361
       padding: 0 24rpx;
361
       padding: 0 24rpx;
362
+      .name{
363
+        flex-shrink: 0;
364
+      }
362
       .status{
365
       .status{
363
         color: #5DAAB6;
366
         color: #5DAAB6;
367
+        padding-left: 24rpx;
364
       }
368
       }
365
     }
369
     }
366
     .statusList{
370
     .statusList{

+ 1 - 1
pages/patientInspectLog/patientInspectLogList.vue

@@ -10,7 +10,7 @@
10
     </view>
10
     </view>
11
     <view class="body" v-if="dataInfo.list.length">
11
     <view class="body" v-if="dataInfo.list.length">
12
       <view class="body_item" v-for="data in dataInfo.list" :key="data.id" @click="toDetail(data)">
12
       <view class="body_item" v-for="data in dataInfo.list" :key="data.id" @click="toDetail(data)">
13
-        <view class="body_item_head ellipsis-multiline">
13
+        <view class="body_item_head">
14
           <text>
14
           <text>
15
             <text class="sign signRed">{{ data.careLevel ? data.careLevel.name : '' }}<template v-if="data.careLevel && data.illnessState">、</template>{{ data.illnessState ? data.illnessState.name : '' }}</text> {{ data.patientName }}<text v-if="data.bedNum">({{ data.bedNum }})</text>
15
             <text class="sign signRed">{{ data.careLevel ? data.careLevel.name : '' }}<template v-if="data.careLevel && data.illnessState">、</template>{{ data.illnessState ? data.illnessState.name : '' }}</text> {{ data.patientName }}<text v-if="data.bedNum">({{ data.bedNum }})</text>
16
           </text>
16
           </text>

+ 74 - 22
pages/specimenChecking/specimenChecking.vue

@@ -4,27 +4,37 @@
4
     <view class="page_item_wrap" v-for="item in list" :key="item.deptId">
4
     <view class="page_item_wrap" v-for="item in list" :key="item.deptId">
5
       <view class="page_item">
5
       <view class="page_item">
6
         <view class="page_item_top">
6
         <view class="page_item_top">
7
-					<uni-collapse :border="false">
8
-						<uni-collapse-item titleBorder="none">
7
+          <template v-if="taskTypeConfig.speExpandTube == 1">
8
+            <uni-collapse :border="false">
9
+						<uni-collapse-item titleBorder="none" :open="taskTypeConfig.speDefaultExpandTube == 1">
9
 							<template v-slot:title>
10
 							<template v-slot:title>
10
 								<view class="page_item_cont_title_coll" @click.stop="gotoDetail(item)">
11
 								<view class="page_item_cont_title_coll" @click.stop="gotoDetail(item)">
11
 									<view class="page_item_top-inner">
12
 									<view class="page_item_top-inner">
12
-										<!-- <view class="page_item_top_L"> -->
13
-											<view class="L_text">{{item.deptName}}</view>
14
-										<!-- </view> -->
13
+                    <view class="L_text">{{item.deptName}}</view>
15
 										<view class="page_item_top_R">
14
 										<view class="page_item_top_R">
16
-											<view class="L_iocn">{{item.speNum}}</view>
15
+											<view class="L_iocn" style="margin-right: 20rpx;">{{item.speNum}}</view>
17
 										</view>
16
 										</view>
18
 									</view>
17
 									</view>
19
 								</view>
18
 								</view>
20
 							</template>
19
 							</template>
21
 							<view class="content">
20
 							<view class="content">
22
-								<view class="list" v-for="x in item.tubeTypeDataList" @click="viewSpe(item, x.tubeTypeId)">
21
+								<view class="list" v-for="x in item.tubeTypeDataList" :key="x.id" @click="viewSpe(item, x.tubeTypeId)">
23
 									{{x.tubeTypeName}}:<text class="underline-item">{{x.speNum}}</text>
22
 									{{x.tubeTypeName}}:<text class="underline-item">{{x.speNum}}</text>
24
 								</view>
23
 								</view>
25
 							</view>
24
 							</view>
26
 						</uni-collapse-item>
25
 						</uni-collapse-item>
27
 					</uni-collapse>
26
 					</uni-collapse>
27
+          </template>
28
+          <template v-else>
29
+            <view class="page_item_cont_title_coll" @click.stop="gotoDetail(item)">
30
+              <view class="page_item_top-inner">
31
+                  <view class="L_text">{{item.deptName}}</view>
32
+                <view class="page_item_top_R">
33
+                  <view class="L_iocn">{{item.speNum}}</view>
34
+                </view>
35
+              </view>
36
+            </view>
37
+          </template>
28
         </view>
38
         </view>
29
         <!-- <view class="page_item_cont">
39
         <!-- <view class="page_item_cont">
30
           <view class="page_item_cont_T">
40
           <view class="page_item_cont_T">
@@ -68,6 +78,8 @@
68
     },
78
     },
69
     data() {
79
     data() {
70
       return {
80
       return {
81
+        hosId: uni.getStorageSync('userData').user.currentHospital.id,
82
+        taskTypeConfig: {},
71
         // 弹窗model
83
         // 弹窗model
72
         models: {
84
         models: {
73
           disjunctor: false,
85
           disjunctor: false,
@@ -83,6 +95,45 @@
83
       };
95
       };
84
     },
96
     },
85
     methods: {
97
     methods: {
98
+      // 获取配置
99
+			getSpecimenTaskTypeConfig(){
100
+        uni.showLoading({
101
+          title: "加载中",
102
+          mask: true,
103
+        });
104
+        post("/simple/data/fetchDataList/taskTypeConfig", {
105
+          "idx": 0,
106
+          "sum": 1,
107
+          "taskTypeConfig": {
108
+            "taskTypeDTO": {
109
+              "hosId": {
110
+                  "id": this.hosId
111
+              },
112
+              "associationType": {
113
+                  "key": "association_types",
114
+                  "value": "specimen"
115
+              }
116
+            }
117
+          }
118
+        }).then((result) => {
119
+          uni.hideLoading();
120
+          if (result.status == 200) {
121
+            if(result.list.length){
122
+              this.taskTypeConfig = result.list[0] || {};
123
+            }else{
124
+              uni.showToast({
125
+                icon: "none",
126
+                title: "请配置标本配送任务类型!",
127
+              });
128
+            }
129
+          } else {
130
+            uni.showToast({
131
+              icon: "none",
132
+              title: result.msg || "接口获取数据失败!",
133
+            });
134
+          }
135
+        });
136
+      },
86
 			viewSpe(item, tubeTypeId){
137
 			viewSpe(item, tubeTypeId){
87
 				this.speNumChange = item.speNum;
138
 				this.speNumChange = item.speNum;
88
 				this.changeSpeObj = {
139
 				this.changeSpeObj = {
@@ -505,6 +556,7 @@
505
       console.log(options, "快捷建单");
556
       console.log(options, "快捷建单");
506
       this.msg = JSON.parse(options.infoDATA);
557
       this.msg = JSON.parse(options.infoDATA);
507
       this.getList();
558
       this.getList();
559
+      this.getSpecimenTaskTypeConfig();
508
       // #ifdef APP-PLUS
560
       // #ifdef APP-PLUS
509
       webHandle("no", "app");
561
       webHandle("no", "app");
510
       // #endif
562
       // #endif
@@ -521,11 +573,11 @@
521
 	/deep/ .uni-collapse-item--border{
573
 	/deep/ .uni-collapse-item--border{
522
 		border-bottom-color: #fff !important;
574
 		border-bottom-color: #fff !important;
523
 	}
575
 	}
524
-	
576
+
525
 	/deep/ .uni-collapse-item__title-arrow{
577
 	/deep/ .uni-collapse-item__title-arrow{
526
 		margin-right: 0 !important;
578
 		margin-right: 0 !important;
527
 	}
579
 	}
528
-	
580
+
529
   .specimenChecking {
581
   .specimenChecking {
530
     padding-bottom: 100rpx;
582
     padding-bottom: 100rpx;
531
 
583
 
@@ -607,34 +659,34 @@
607
           // height: 88rpx;
659
           // height: 88rpx;
608
           // border-bottom: 2rpx dashed #e5e9ed;
660
           // border-bottom: 2rpx dashed #e5e9ed;
609
           padding: 20rpx 16rpx;
661
           padding: 20rpx 16rpx;
610
-					
662
+
611
 					.page_item_cont_title_coll{
663
 					.page_item_cont_title_coll{
612
 						display: flex;
664
 						display: flex;
613
 						justify-content: space-between;
665
 						justify-content: space-between;
614
 						align-items: center;
666
 						align-items: center;
615
 						margin-right: 8rpx;
667
 						margin-right: 8rpx;
616
-						
668
+
617
 						.page_item_top-inner {
669
 						.page_item_top-inner {
618
 						  display: flex;
670
 						  display: flex;
619
 						  justify-content: space-between;
671
 						  justify-content: space-between;
620
 						  align-items: center;
672
 						  align-items: center;
621
 						  height: 100%;
673
 						  height: 100%;
622
 							width: 100%;
674
 							width: 100%;
623
-							
675
+
624
 						  .page_item_top_L {
676
 						  .page_item_top_L {
625
 						    .emergencys {
677
 						    .emergencys {
626
 						      background: #ff3b53 !important;
678
 						      background: #ff3b53 !important;
627
 						      width: 124rpx !important;
679
 						      width: 124rpx !important;
628
 						    }
680
 						    }
629
-						
681
+
630
 						    .emergency {
682
 						    .emergency {
631
 						      background: #ff3b53 !important;
683
 						      background: #ff3b53 !important;
632
 						    }
684
 						    }
633
-						
685
+
634
 						    .emergency1 {
686
 						    .emergency1 {
635
 						      background: #49b856 !important;
687
 						      background: #49b856 !important;
636
 						    }
688
 						    }
637
-						
689
+
638
 						    .page_item_cont_start {
690
 						    .page_item_cont_start {
639
 						      text-align: center;
691
 						      text-align: center;
640
 						      height: 44rpx;
692
 						      height: 44rpx;
@@ -645,21 +697,21 @@
645
 						      color: #fff;
697
 						      color: #fff;
646
 						      display: inline-block;
698
 						      display: inline-block;
647
 						    }
699
 						    }
648
-						
700
+
649
 						    .L_time {
701
 						    .L_time {
650
 						      color: #6cc076;
702
 						      color: #6cc076;
651
 						      font-size: 32rpx;
703
 						      font-size: 32rpx;
652
 						    }
704
 						    }
653
-						
705
+
654
 						    .L_text {
706
 						    .L_text {
655
 						      font-size: 32rpx;
707
 						      font-size: 32rpx;
656
 						      font-weight: 700;
708
 						      font-weight: 700;
657
 						    }
709
 						    }
658
 						  }
710
 						  }
659
-						
711
+
660
 						  .page_item_top_R {
712
 						  .page_item_top_R {
661
 						    font-size: 32rpx;
713
 						    font-size: 32rpx;
662
-						
714
+
663
 						    .L_iocn {
715
 						    .L_iocn {
664
 						      color: rgb(7, 134, 60);
716
 						      color: rgb(7, 134, 60);
665
 						      font-size: 36rpx;
717
 						      font-size: 36rpx;
@@ -668,7 +720,7 @@
668
 						  }
720
 						  }
669
 						}
721
 						}
670
 					}
722
 					}
671
-					
723
+
672
 					.content{
724
 					.content{
673
 						display: flex;
725
 						display: flex;
674
 						flex-wrap: wrap;
726
 						flex-wrap: wrap;
@@ -684,12 +736,12 @@
684
 						}
736
 						}
685
 					}
737
 					}
686
         }
738
         }
687
-				
739
+
688
 				.underline-item{
740
 				.underline-item{
689
 					// text-decoration: underline;
741
 					// text-decoration: underline;
690
 					// margin-right: 40rpx;
742
 					// margin-right: 40rpx;
691
 				}
743
 				}
692
-				
744
+
693
         .page_item_cont {
745
         .page_item_cont {
694
           min-height: 90rpx;
746
           min-height: 90rpx;
695
           padding: 0 16rpx;
747
           padding: 0 16rpx;

+ 57 - 4
pages/specimenHandoverNew/specimenHandoverNew.vue

@@ -96,8 +96,9 @@
96
     data() {
96
     data() {
97
       return {
97
       return {
98
         hosId: uni.getStorageSync('userData').user.currentHospital.id,
98
         hosId: uni.getStorageSync('userData').user.currentHospital.id,
99
-        type: 'patient',//patient|specimenDesc
99
+        type: '',//patient|speTubeType|specimenDesc
100
         queryObj: {}, //路由传递过来的数据
100
         queryObj: {}, //路由传递过来的数据
101
+        taskTypeConfig: {}, //页面控制
101
         typeList: {
102
         typeList: {
102
           "patient": {
103
           "patient": {
103
             id: -1,
104
             id: -1,
@@ -130,6 +131,60 @@
130
       };
131
       };
131
     },
132
     },
132
     methods: {
133
     methods: {
134
+      getSpecimenTaskTypeConfig(){
135
+        uni.showLoading({
136
+          title: "加载中",
137
+          mask: true,
138
+        });
139
+        post("/simple/data/fetchDataList/taskTypeConfig", {
140
+          "idx": 0,
141
+          "sum": 1,
142
+          "taskTypeConfig": {
143
+            "taskTypeDTO": {
144
+              "hosId": {
145
+                  "id": this.hosId
146
+              },
147
+              "associationType": {
148
+                  "key": "association_types",
149
+                  "value": "specimen"
150
+              }
151
+            }
152
+          }
153
+        }).then((result) => {
154
+          uni.hideLoading();
155
+          if (result.status == 200) {
156
+            if(result.list.length){
157
+              this.taskTypeConfig = result.list[0] || {};
158
+              
159
+              if(this.taskTypeConfig.speHandoverTubeType == 1){
160
+                // 患者
161
+                this.type = 'patient';
162
+              }else if(this.taskTypeConfig.speHandoverTubeType == 2){
163
+                // 试管类型
164
+                this.type = 'speTubeType';
165
+              }else if(this.taskTypeConfig.speHandoverTubeType == 3){
166
+                // 检验标本
167
+                this.type = 'specimenDesc';
168
+              }else{
169
+                // 默认-患者
170
+                this.type = 'patient';
171
+              }
172
+              
173
+              this.clickTab(this.type);
174
+            }else{
175
+              uni.showToast({
176
+                icon: "none",
177
+                title: "请配置标本配送任务类型!",
178
+              });
179
+            }
180
+          } else {
181
+            uni.showToast({
182
+              icon: "none",
183
+              title: result.msg || "接口获取数据失败!",
184
+            });
185
+          }
186
+        });
187
+      },
133
       ok(){
188
       ok(){
134
         this.models.disjunctor = false;
189
         this.models.disjunctor = false;
135
         uni.showLoading({
190
         uni.showLoading({
@@ -307,9 +362,7 @@
307
         });
362
         });
308
       },
363
       },
309
       initData(){
364
       initData(){
310
-        this.getInfo('patient');
311
-				// this.getInfo('speTubeType');
312
-    //     this.getInfo('specimenDesc');
365
+        this.getSpecimenTaskTypeConfig();
313
       },
366
       },
314
     },
367
     },
315
 		onShow(){
368
 		onShow(){