瀏覽代碼

拉取代码

maotao 7 月之前
父節點
當前提交
ad0c7cac6a

+ 42 - 34
components/appUpdata/appUpdata.vue

@@ -6,12 +6,13 @@
6
 				<image class="img" src="/static/img/updata.png"></image>
6
 				<image class="img" src="/static/img/updata.png"></image>
7
 			</view> -->
7
 			</view> -->
8
 			<view class="versioninfo">
8
 			<view class="versioninfo">
9
-				<view class="title">发现新版本</view>
9
+				<view class="title">更新提示</view>
10
+				<view class="content">有新版本发布,请及时更新!</view>
10
 				<view class="schedule" v-if="isSchedule">	
11
 				<view class="schedule" v-if="isSchedule">	
11
 					<progress :percent="upProgress" show-info stroke-width="15" />
12
 					<progress :percent="upProgress" show-info stroke-width="15" />
12
 				</view>
13
 				</view>
13
 				<view class="btn">
14
 				<view class="btn">
14
-					<button type="primary" size="mini" :disabled="isSchedule" @click="nowUpdate()">立即升级</button>
15
+					<button size="mini" :disabled="isSchedule" @click="nowUpdate()">立即更新</button>
15
 				</view>
16
 				</view>
16
 			</view>
17
 			</view>
17
 		</view>
18
 		</view>
@@ -36,9 +37,8 @@
36
 				// manifest 中应用版本名称
37
 				// manifest 中应用版本名称
37
 				appVersion: '',
38
 				appVersion: '',
38
 				// manifest 中应用版本号
39
 				// manifest 中应用版本号
39
-				appVersionCode: '',
40
 				apkInfo: {},
40
 				apkInfo: {},
41
-				apkUrl:'http://192.168.3.108/getapk/pdaz-v1.0.0.apk',
41
+				apkUrl:'',
42
 				updateContent: []
42
 				updateContent: []
43
 			};
43
 			};
44
 		},
44
 		},
@@ -50,33 +50,37 @@
50
 				// 获取本地应用资源版本号
50
 				// 获取本地应用资源版本号
51
 				plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
51
 				plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
52
 					this.appVersion = wgtinfo.version;
52
 					this.appVersion = wgtinfo.version;
53
-					this.appVersionCode = wgtinfo.versionCode;
54
-					// this.getVersionNumber();
53
+					this.getVersionNumber();
55
 				})
54
 				})
56
 			},
55
 			},
57
 			// 获取后台版本号 检查是否有新版本
56
 			// 获取后台版本号 检查是否有新版本
58
 			getVersionNumber() {
57
 			getVersionNumber() {
59
-				let version = this.appVersionCode;
60
-				// this.isUpdate = true;
61
-				post("/configuration/updData/workConfigHistory").then((res) => {
62
-				    if (res.status == 200) {
63
-				      if(res.appVersionCode > version) {
64
-				      	this.apkInfo = res;
65
-				      	this.isUpdate = true;
66
-				      } else {
67
-				      	this.isUpdate = false;
68
-				      }
69
-				    } else {
70
-						uni.showToast({
71
-							icon: "none",
72
-							title: res.msg || "接口获取数据失败!",
73
-						});
74
-					}
75
-				})	
76
-			},
77
-			// 暂不升级
78
-			notUpdate() {
79
-				this.isUpdate = false;
58
+				let version = this.appVersion;
59
+				uni.showLoading({
60
+				  title: "加载中",
61
+				});
62
+				let postData = {
63
+				  "idx": 0,
64
+				  "sum": 1,
65
+				  systemConfiguration: {
66
+				    keyconfig: "supportAppVersion"
67
+				  }
68
+				}
69
+				post("/simple/data/fetchDataList/systemConfiguration", postData).then((res) => {
70
+				  uni.hideLoading();
71
+					if (res.status == 200) {
72
+				    this.supportAppVersion = res.list[0].valueconfig
73
+						let ip = uni.getStorageSync('ip')
74
+						this.apkUrl = ip + `/getapk/pdazV${this.supportAppVersion}.apk`
75
+						console.log(444,this.apkUrl)
76
+						if(this.supportAppVersion != version){
77
+							this.isUpdate = true;
78
+						}else{
79
+							this.isUpdate = false;
80
+						}
81
+				  }
82
+				})
83
+				
80
 			},
84
 			},
81
 			// 点击立即升级查看手机是安卓还是ios
85
 			// 点击立即升级查看手机是安卓还是ios
82
 			nowUpdate() {
86
 			nowUpdate() {
@@ -175,15 +179,17 @@
175
 		}
179
 		}
176
 	}
180
 	}
177
 	.versioninfo {
181
 	.versioninfo {
178
-		padding: 15rpx 30rpx;
182
+		// padding: 15rpx 0rpx;
179
 		border-radius: 25rpx;
183
 		border-radius: 25rpx;
180
 		background-color: #fff;
184
 		background-color: #fff;
181
-	}
182
-	.title {
183
-		// position: absolute;
184
-		// top: 150rpx;
185
-		font-size: 40rpx;
186
-		// color: #fff;
185
+		.title {
186
+			font-size: 36rpx;
187
+			// border-bottom: 1px solid #eee;
188
+			padding: 20rpx 0;
189
+		}
190
+		.content{
191
+			
192
+		}
187
 	}
193
 	}
188
 	.info {
194
 	.info {
189
 		position: relative;
195
 		position: relative;
@@ -213,6 +219,8 @@
213
 			display: flex;
219
 			display: flex;
214
 			align-items: center;
220
 			align-items: center;
215
 			justify-content: center;
221
 			justify-content: center;
222
+			background: #49b856;
223
+			color: #fff;
216
 		}
224
 		}
217
 	}
225
 	}
218
 }
226
 }

+ 2 - 2
components/numberKeyModel/numberKeyModel.vue

@@ -141,8 +141,8 @@ export default {
141
 				justify-content: space-around;
141
 				justify-content: space-around;
142
 				margin-bottom: 20rpx;
142
 				margin-bottom: 20rpx;
143
 				.content-item{
143
 				.content-item{
144
-					width: 100rpx;
145
-					height: 100rpx;
144
+					width: 80rpx;
145
+					height: 80rpx;
146
 					border-radius: 10rpx;
146
 					border-radius: 10rpx;
147
 					border: 1px solid #CCCCCC;
147
 					border: 1px solid #CCCCCC;
148
 					color: #000;
148
 					color: #000;

+ 1 - 0
http/http.js

@@ -158,6 +158,7 @@ export function changeIP(ip) {
158
   console.log(ip)
158
   console.log(ip)
159
   path = `${ip}/service`;
159
   path = `${ip}/service`;
160
   appIp = ip;
160
   appIp = ip;
161
+	uni.setStorageSync('ip', ip);
161
   uni.setStorageSync('path', path);
162
   uni.setStorageSync('path', path);
162
 }
163
 }
163
 // 建立websocket
164
 // 建立websocket

+ 2 - 2
manifest.json

@@ -2,8 +2,8 @@
2
     "name" : "病理全流程",
2
     "name" : "病理全流程",
3
     "appid" : "__UNI__9F2011E",
3
     "appid" : "__UNI__9F2011E",
4
     "description" : "",
4
     "description" : "",
5
-    "versionName" : "1.0.0",
6
-    "versionCode" : "100",
5
+    "versionName" : "1.0",
6
+    "versionCode" : 10,
7
     "transformPx" : false,
7
     "transformPx" : false,
8
     /* 5+App特有相关 */
8
     /* 5+App特有相关 */
9
     "app-plus" : {
9
     "app-plus" : {

+ 2 - 6
pages/homePage/homePage.vue

@@ -78,8 +78,6 @@
78
     <showModel :title="models2.title" :icon="models2.icon" :disjunctor="models2.disjunctor" :content="models2.content"
78
     <showModel :title="models2.title" :icon="models2.icon" :disjunctor="models2.disjunctor" :content="models2.content"
79
       @ok="ok2" @cancel="cancel2" :operate="models2.operate">
79
       @ok="ok2" @cancel="cancel2" :operate="models2.operate">
80
     </showModel>
80
     </showModel>
81
-		<!-- apk自动更新 -->
82
-		<appUpdata v-if="isApp && isUpdate" @getUpdate="isUpdate=false"></appUpdata>
83
 	</view>
81
 	</view>
84
 </template>
82
 </template>
85
 
83
 
@@ -121,7 +119,7 @@
121
         // 密码
119
         // 密码
122
         password: "",
120
         password: "",
123
         //ip地址或域名
121
         //ip地址或域名
124
-        ip: "hsms.dashitech.com",
122
+        ip: "",
125
         scroll_refresher_enabled: true, //是否开启自定义下拉刷新
123
         scroll_refresher_enabled: true, //是否开启自定义下拉刷新
126
         triggered: false, //下拉刷新状态
124
         triggered: false, //下拉刷新状态
127
         freshing: false, //上拉加载开关
125
         freshing: false, //上拉加载开关
@@ -155,7 +153,7 @@
155
           disjunctor: false,
153
           disjunctor: false,
156
         },
154
         },
157
         objHistory: {},
155
         objHistory: {},
158
-				isUpdate:true
156
+				isUpdate:false
159
       };
157
       };
160
     },
158
     },
161
 		components: {
159
 		components: {
@@ -1122,7 +1120,6 @@
1122
       }
1120
       }
1123
 			// #ifdef APP-PLUS
1121
 			// #ifdef APP-PLUS
1124
 			this.isApp = true;
1122
 			this.isApp = true;
1125
-			this.isUpdate = true;
1126
 			uni.closeSocket();
1123
 			uni.closeSocket();
1127
 			// #endif
1124
 			// #endif
1128
       if (!this.workSchemeType) {
1125
       if (!this.workSchemeType) {
@@ -1173,7 +1170,6 @@
1173
       //#endif
1170
       //#endif
1174
       // #ifdef APP-PLUS
1171
       // #ifdef APP-PLUS
1175
       this.isApp = true;
1172
       this.isApp = true;
1176
-			this.isUpdate = true;
1177
       // 通知权限 start
1173
       // 通知权限 start
1178
       // var main = plus.android.runtimeMainActivity();
1174
       // var main = plus.android.runtimeMainActivity();
1179
       // var pkName = main.getPackageName();
1175
       // var pkName = main.getPackageName();

+ 22 - 2
pages/receiptpage/receiptpage.vue

@@ -333,7 +333,9 @@
333
 		</view>
333
 		</view>
334
 
334
 
335
 		<!-- 悬浮按钮 -->
335
 		<!-- 悬浮按钮 -->
336
-    <uni-fab :pattern="pattern" :content="content" :direction="direction" @fabClick="fabClick" @trigger="trigger"></uni-fab>
336
+		<view>
337
+			<uni-fab :pattern="pattern" :content="content" :direction="direction" @fabClick="fabClick" @trigger="trigger"></uni-fab>
338
+		</view>
337
 		<!-- 弹窗 -->
339
 		<!-- 弹窗 -->
338
     <showModel :title="models.title" :icon="models.icon" :disjunctor="models.disjunctor" :content="models.content"
340
     <showModel :title="models.title" :icon="models.icon" :disjunctor="models.disjunctor" :content="models.content"
339
       @ok="ok" @cancel="cancel" @know="know" :operate="models.operate"></showModel>
341
       @ok="ok" @cancel="cancel" @know="know" :operate="models.operate"></showModel>
@@ -422,6 +424,8 @@
422
 		<scanner></scanner>
424
 		<scanner></scanner>
423
 		<!-- 动态密钥 -->
425
 		<!-- 动态密钥 -->
424
 		<numberKeyModel v-if="showKey" :keyArr="keyArr" @cancel="showKey = false" @confirm="confirmKey($event)"></numberKeyModel>
426
 		<numberKeyModel v-if="showKey" :keyArr="keyArr" @cancel="showKey = false" @confirm="confirmKey($event)"></numberKeyModel>
427
+		<!-- apk自动更新 -->
428
+		<appUpdata v-if="isApp && isUpdate" @getUpdate="isUpdate=false"></appUpdata>
425
 	</view>
429
 	</view>
426
 </template>
430
 </template>
427
 <script>
431
 <script>
@@ -436,6 +440,7 @@
436
 	import uniDrawer from "@/components/uni-drawer/uni-drawer.vue";
440
 	import uniDrawer from "@/components/uni-drawer/uni-drawer.vue";
437
 	import ldSelect from "@/components/ld-select/ld-select.vue";
441
 	import ldSelect from "@/components/ld-select/ld-select.vue";
438
 	import MxDatePicker from "@/components/mx-datepicker/mx-datepicker.vue";
442
 	import MxDatePicker from "@/components/mx-datepicker/mx-datepicker.vue";
443
+	import appUpdata from "../../components/appUpdata/appUpdata.vue";
439
 	
444
 	
440
   import {
445
   import {
441
     get,
446
     get,
@@ -598,7 +603,9 @@
598
 				showKey:false,
603
 				showKey:false,
599
 				keyNum:4, //密钥位数
604
 				keyNum:4, //密钥位数
600
 				isNumberKey:false, //是否开启动态密钥
605
 				isNumberKey:false, //是否开启动态密钥
601
-				keyArr: []
606
+				keyArr: [],
607
+				isApp:false,
608
+				isUpdate:false,
602
       };
609
       };
603
     },
610
     },
604
 		components: {
611
 		components: {
@@ -641,6 +648,7 @@
641
 			numberKeyModel,
648
 			numberKeyModel,
642
 			scanner,
649
 			scanner,
643
       selectAccount,
650
       selectAccount,
651
+			appUpdata
644
     },
652
     },
645
     methods: {
653
     methods: {
646
 			confirmKey(data){
654
 			confirmKey(data){
@@ -2940,6 +2948,8 @@
2940
       }
2948
       }
2941
       // #ifdef APP-PLUS
2949
       // #ifdef APP-PLUS
2942
       webHandle("no", "app");
2950
       webHandle("no", "app");
2951
+			this.isUpdate = true
2952
+			this.isApp = true
2943
       // #endif
2953
       // #endif
2944
       // #ifdef H5
2954
       // #ifdef H5
2945
       webHandle("no", "wx");
2955
       webHandle("no", "wx");
@@ -2949,6 +2959,8 @@
2949
 			this.getConfig();
2959
 			this.getConfig();
2950
 			let that = this
2960
 			let that = this
2951
 			// #ifdef APP-PLUS
2961
 			// #ifdef APP-PLUS
2962
+			this.isUpdate = true
2963
+			this.isApp = true
2952
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
2964
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
2953
 			uni.$on('scan', function(data) {
2965
 			uni.$on('scan', function(data) {
2954
 				that.padChange(data)
2966
 				that.padChange(data)
@@ -2971,6 +2983,14 @@
2971
 		}
2983
 		}
2972
   };
2984
   };
2973
 </script>
2985
 </script>
2986
+<style scoped>
2987
+	>>>.uni-fab--leftBottom{
2988
+		bottom: calc(65px + var(--window-bottom)) !important;
2989
+	}
2990
+	>>>.uni-fab__circle--leftBottom{
2991
+		bottom: calc(75px + var(--window-bottom)) !important;
2992
+	}
2993
+</style>
2974
 <style lang="less">
2994
 <style lang="less">
2975
 	.hideInput{
2995
 	.hideInput{
2976
 		height: 40px;
2996
 		height: 40px;

+ 28 - 6
pages/specimenPort/detail.vue

@@ -175,14 +175,30 @@
175
 					barcode:scannerCode,
175
 					barcode:scannerCode,
176
 					platform:"app"
176
 					platform:"app"
177
 				}).then((res) => {
177
 				}).then((res) => {
178
+					let data = res.data[0]
178
 					this.SMFlag = true
179
 					this.SMFlag = true
179
 					uni.hideLoading();
180
 					uni.hideLoading();
180
 					if(res.status==200){
181
 					if(res.status==200){
181
-						if(res.data[0].status.name=='标本离体'){
182
-							uni.navigateTo({
183
-							  url: `/pages/specimenPort/scan?data=${JSON.stringify(res.data[0])}&type=${res.type}`
184
-							});
185
-						}else{
182
+						let item = data.pathologySpecimenDTOList.find(i=>i.specimenCode == scannerCode)
183
+						if(!item.fixationTime && data.pathologyFormType==0){
184
+							if(data.status.value==2 || data.status.value==3 ||
185
+							data.status.value==4){
186
+								uni.navigateTo({
187
+								  url: `/pages/specimenPort/scan?data=${JSON.stringify(data)}&type=${res.type}`
188
+								});
189
+							}else{
190
+								uni.showToast({
191
+									title: '查询到标本申请单信息',
192
+									duration: 1000,
193
+									icon:'none'
194
+								});
195
+								setTimeout(_=>{
196
+									uni.navigateTo({
197
+									  url: `/pages/specimenPort/detail?detailId=${data.id}`
198
+									});
199
+								},800)
200
+							}
201
+						}else if(item.fixationTime && data.pathologyFormType==0){
186
 							uni.showToast({
202
 							uni.showToast({
187
 								title: '查询到标本申请单信息',
203
 								title: '查询到标本申请单信息',
188
 								duration: 1000,
204
 								duration: 1000,
@@ -190,9 +206,15 @@
190
 							});
206
 							});
191
 							setTimeout(_=>{
207
 							setTimeout(_=>{
192
 								uni.navigateTo({
208
 								uni.navigateTo({
193
-								  url: `/pages/specimenPort/detail?detailId=${res.data[0].id}`
209
+									url: `/pages/specimenPort/detail?detailId=${data.id}`
194
 								});
210
 								});
195
 							},800)
211
 							},800)
212
+						}else{
213
+							uni.showToast({
214
+								title: '该申请单类型不是病理检查申请单',
215
+								duration: 1000,
216
+								icon:'none'
217
+							});
196
 						}
218
 						}
197
 					}else{
219
 					}else{
198
 						uni.showModal({
220
 						uni.showModal({

+ 89 - 23
pages/specimenPort/scan.vue

@@ -2,8 +2,11 @@
2
 	<view class="content">
2
 	<view class="content">
3
 		<view class="info">
3
 		<view class="info">
4
 			<view class="header">
4
 			<view class="header">
5
-				<view class="title" :class="list.length < infoData.specimenNum?'par-top1':'par-top2'">{{list.length}}/{{infoData.specimenNum}}</view>
5
+				<view class="center" :class="list.length < infoData.specimenNum?'par-top1':'par-top2'">
6
+					<view class="sign red">{{list.length}}/{{specimenNum}}</view>
7
+				</view>
6
 				<view class="tip" v-if="list.length < infoData.specimenNum">请继续扫描标本!</view>
8
 				<view class="tip" v-if="list.length < infoData.specimenNum">请继续扫描标本!</view>
9
+				<view class="title">申请单共有<span class="red">{{totalNum}}</span>份,已固定<span class="red">{{fixationNum}}</span>份还需固定<span class="red">{{specimenNum}}</span>份</view>
7
 			</view>
10
 			</view>
8
 			<view>
11
 			<view>
9
 				<view class="list" v-for="(item, index) in list" :key="index">
12
 				<view class="list" v-for="(item, index) in list" :key="index">
@@ -24,7 +27,7 @@
24
 				</view>
27
 				</view>
25
 				<view class="df-list">
28
 				<view class="df-list">
26
 					<view class="list-title">住院号:</view>
29
 					<view class="list-title">住院号:</view>
27
-					<view class="no-center">{{infoData.patientDTO.barCode}}</view>
30
+					<view class="no-center">{{infoData.patientDTO.patientCode}}</view>
28
 				</view>
31
 				</view>
29
 				<view class="df-list">
32
 				<view class="df-list">
30
 					<view class="list-title">科室名称:</view>
33
 					<view class="list-title">科室名称:</view>
@@ -36,10 +39,10 @@
36
 				</view>
39
 				</view>
37
 			</view>
40
 			</view>
38
 		</view>
41
 		</view>
39
-		<view class="btn-view" v-if="list.length < infoData.specimenNum">
42
+<!-- 		<view class="btn-view" v-if="list.length < infoData.specimenNum">
40
 			<button class="back-btn" @click="back">返回</button>
43
 			<button class="back-btn" @click="back">返回</button>
41
-		</view>
42
-		<view class="btn-view df-sb" v-if="list.length == infoData.specimenNum">
44
+		</view> -->
45
+		<view class="btn-view df-sb">
43
 			<button class="back-btn2" @click="back">返回</button>
46
 			<button class="back-btn2" @click="back">返回</button>
44
 			<button class="back-btn3" @click="fixation">标本固定存放</button>
47
 			<button class="back-btn3" @click="fixation">标本固定存放</button>
45
 		</view>
48
 		</view>
@@ -101,7 +104,10 @@
101
 					fixative:'',
104
 					fixative:'',
102
 					handoverUserId:''
105
 					handoverUserId:''
103
 				},
106
 				},
104
-				pathologyFormId:null
107
+				pathologyFormId:null,
108
+				fixationNum:null,
109
+				specimenNum:null, 
110
+				totalNum:null, 
105
 			}
111
 			}
106
 		},
112
 		},
107
 		components: {
113
 		components: {
@@ -147,11 +153,26 @@
147
 			},
153
 			},
148
 			back(){
154
 			back(){
149
 				// this.padChange('86386627710976\n')
155
 				// this.padChange('86386627710976\n')
156
+				this.cancelSpecimenModal()
150
 				uni.setStorageSync('pathologyFormId', null)
157
 				uni.setStorageSync('pathologyFormId', null)
151
 				uni.navigateTo({
158
 				uni.navigateTo({
152
 				  url: `/pages/specimenPort/specimenPort?backType=detail`
159
 				  url: `/pages/specimenPort/specimenPort?backType=detail`
153
 				});
160
 				});
154
 			},
161
 			},
162
+			// 标本重置
163
+			cancelSpecimenModal(){
164
+				let ids = []
165
+				for(let i of this.list){
166
+					ids.push(i.id)
167
+				}
168
+				let data = {
169
+					pathologySpecimenIds:ids.join(',')
170
+				}
171
+				post('/pathology/cancel', data).then((res) => {
172
+					
173
+				});
174
+
175
+			},
155
 			// 标本固定
176
 			// 标本固定
156
 			fixation(){
177
 			fixation(){
157
 				this.form={
178
 				this.form={
@@ -216,6 +237,9 @@
216
 				}else{
237
 				}else{
217
 					time = this.form.fixationTime
238
 					time = this.form.fixationTime
218
 				}
239
 				}
240
+				let str = this.list.map(i=>{
241
+					return i.specimenCode
242
+				})
219
 				uni.showLoading({
243
 				uni.showLoading({
220
 					title: "加载中",
244
 					title: "加载中",
221
 					mask: true,
245
 					mask: true,
@@ -226,6 +250,7 @@
226
 					specimenFixingLiquid:{
250
 					specimenFixingLiquid:{
227
 						id:this.form.fixative
251
 						id:this.form.fixative
228
 					},
252
 					},
253
+					specimenCodes:str.join(','),
229
 					handoverUserId:this.form.handoverUserId,
254
 					handoverUserId:this.form.handoverUserId,
230
 					fixationTime:time,
255
 					fixationTime:time,
231
 					specimenDeptId:this.userInfo.dept.id
256
 					specimenDeptId:this.userInfo.dept.id
@@ -263,15 +288,31 @@
263
 					delete query.pathologyFormId
288
 					delete query.pathologyFormId
264
 				}
289
 				}
265
 				post("/pathology/scanCode", query).then((res) => {
290
 				post("/pathology/scanCode", query).then((res) => {
291
+					let data = res.data[0]
266
 					this.SMFlag = true
292
 					this.SMFlag = true
267
 					uni.hideLoading();
293
 					uni.hideLoading();
268
 					if(res.status==200){
294
 					if(res.status==200){
269
-						uni.setStorageSync('pathologyFormId', res.data[0].id);
270
-						if(res.data[0].status.name=='标本离体'){
271
-							uni.navigateTo({
272
-							  url: `/pages/specimenPort/scan?data=${JSON.stringify(res.data[0])}&type=${res.type}`
273
-							});
274
-						}else{
295
+						let item = data.pathologySpecimenDTOList.find(i=>i.specimenCode == scannerCode)
296
+						uni.setStorageSync('pathologyFormId', data.id);
297
+						if(!item.fixationTime && data.pathologyFormType==0){
298
+							if(data.status.value==2 || data.status.value==3 ||
299
+							data.status.value==4){
300
+								uni.navigateTo({
301
+								  url: `/pages/specimenPort/scan?data=${JSON.stringify(data)}&type=${res.type}`
302
+								});
303
+							}else{
304
+								uni.showToast({
305
+									title: '查询到标本申请单信息',
306
+									duration: 1000,
307
+									icon:'none'
308
+								});
309
+								setTimeout(_=>{
310
+									uni.navigateTo({
311
+									  url: `/pages/specimenPort/detail?detailId=${data.id}`
312
+									});
313
+								},800)
314
+							}
315
+						}else if(item.fixationTime && data.pathologyFormType==0){
275
 							uni.showToast({
316
 							uni.showToast({
276
 								title: '查询到标本申请单信息',
317
 								title: '查询到标本申请单信息',
277
 								duration: 1000,
318
 								duration: 1000,
@@ -279,9 +320,15 @@
279
 							});
320
 							});
280
 							setTimeout(_=>{
321
 							setTimeout(_=>{
281
 								uni.navigateTo({
322
 								uni.navigateTo({
282
-								  url: `/pages/specimenPort/detail?detailId=${res.data[0].id}`
323
+									url: `/pages/specimenPort/detail?detailId=${data.id}`
283
 								});
324
 								});
284
 							},800)
325
 							},800)
326
+						}else{
327
+							uni.showToast({
328
+								title: '该申请单类型不是病理检查申请单',
329
+								duration: 1000,
330
+								icon:'none'
331
+							});
285
 						}
332
 						}
286
 					}else{
333
 					}else{
287
 						uni.showModal({
334
 						uni.showModal({
@@ -298,6 +345,15 @@
298
 						});
345
 						});
299
 					}
346
 					}
300
 				})
347
 				})
348
+			},
349
+			getSpecimenNum(){
350
+				post(`/pathology/check/pathologyForm/${this.infoData.id}`, {
351
+					operationType:'fixation'
352
+				}).then(res=>{
353
+					this.fixationNum = res.fixationNum
354
+					this.specimenNum = res.specimenNum
355
+					this.totalNum = res.totalNum
356
+				})
301
 			}
357
 			}
302
 		},
358
 		},
303
 		onBackPress(e) {
359
 		onBackPress(e) {
@@ -319,15 +375,16 @@
319
 		onLoad(option){
375
 		onLoad(option){
320
 			let data = JSON.parse(option.data)
376
 			let data = JSON.parse(option.data)
321
 			this.infoData = data
377
 			this.infoData = data
378
+			this.getSpecimenNum()
322
 			this.type = option.type
379
 			this.type = option.type
323
 			this.list = data.pathologySpecimenDTOList?data.pathologySpecimenDTOList:[]
380
 			this.list = data.pathologySpecimenDTOList?data.pathologySpecimenDTOList:[]
324
-			if(this.list.length == this.infoData.specimenNum){
325
-				uni.showToast({
326
-					title: '您标本已扫描完成,请填写固定信息',
327
-					duration: 2000,
328
-					icon:'none'
329
-				});
330
-			}
381
+			// if(this.list.length == this.infoData.specimenNum){
382
+			// 	uni.showToast({
383
+			// 		title: '您标本已扫描完成,请填写固定信息',
384
+			// 		duration: 2000,
385
+			// 		icon:'none'
386
+			// 	});
387
+			// }
331
 			this.getFixation()
388
 			this.getFixation()
332
 		}
389
 		}
333
 	}
390
 	}
@@ -364,15 +421,24 @@
364
 	page {
421
 	page {
365
 		background: #F8F8F8;
422
 		background: #F8F8F8;
366
 	}
423
 	}
424
+	.red{
425
+		color: red;
426
+	}
367
 	.content {
427
 	.content {
368
 		.header {
428
 		.header {
369
 			width: 100%;
429
 			width: 100%;
370
 			height: 450rpx;
430
 			height: 450rpx;
371
 			text-align: center;
431
 			text-align: center;
432
+			.center{
433
+				.sign{
434
+					font-size: 70rpx;
435
+					font-weight: bold;
436
+				}
437
+			}
372
 			.title{
438
 			.title{
373
-				color: red;
374
-				font-size: 70rpx;
375
-				font-weight: bold;
439
+				font-weight: 500;
440
+				font-size: 34rpx;
441
+				padding: 0 20rpx;
376
 			}
442
 			}
377
 			.par-top1{
443
 			.par-top1{
378
 				padding-top: 100rpx;
444
 				padding-top: 100rpx;

+ 55 - 10
pages/specimenPort/specimenPort.vue

@@ -1,7 +1,11 @@
1
 <template>
1
 <template>
2
 	<view class="conte">
2
 	<view class="conte">
3
 		<view class="header">
3
 		<view class="header">
4
-			<text class="title">{{userInfo.dept.dept}}</text>
4
+			<text class="title">{{userInfo.dept.dept}}
5
+				<text class="red" v-if="otherData">
6
+					(单 {{otherData.pathologyFormNum}}, 标 {{otherData.specimenNum}})
7
+				</text>
8
+			</text>
5
 			<view class="filter" @click="filterClick">
9
 			<view class="filter" @click="filterClick">
6
 				<text class="newicon newicon-shaixuan icon"></text>
10
 				<text class="newicon newicon-shaixuan icon"></text>
7
 			</view>
11
 			</view>
@@ -18,7 +22,7 @@
18
 			</view>
22
 			</view>
19
 			<view class="df-list">
23
 			<view class="df-list">
20
 				<view class="df-list-over-left">患者:{{item.patientName}}({{item.patientDTO.bedNum}}床)</view>
24
 				<view class="df-list-over-left">患者:{{item.patientName}}({{item.patientDTO.bedNum}}床)</view>
21
-				<view class="df-list-over">住院号:{{item.patientDTO.barCode}}</view>
25
+				<view class="df-list-over">住院号:{{item.patientDTO.patientCode}}</view>
22
 			</view>
26
 			</view>
23
 			<view class="df-list">
27
 			<view class="df-list">
24
 				<view class="df-list-over-left">离:{{yyTimeFilter(item.inVitroTime)}}</view>
28
 				<view class="df-list-over-left">离:{{yyTimeFilter(item.inVitroTime)}}</view>
@@ -46,6 +50,8 @@
46
 		</uni-drawer>
50
 		</uni-drawer>
47
 		<!-- PDA扫描 -->
51
 		<!-- PDA扫描 -->
48
 		<scanner></scanner>
52
 		<scanner></scanner>
53
+		<!-- apk自动更新 -->
54
+		<appUpdata v-if="isApp && isUpdate" @getUpdate="isUpdate=false"></appUpdata>
49
 	</view>
55
 	</view>
50
 </template>
56
 </template>
51
 
57
 
@@ -55,6 +61,7 @@
55
 		post
61
 		post
56
 	} from "../../http/http.js";
62
 	} from "../../http/http.js";
57
 	import scanner from "../../components/scanner/scanner.vue";
63
 	import scanner from "../../components/scanner/scanner.vue";
64
+	import appUpdata from "../../components/appUpdata/appUpdata.vue";
58
 	export default {
65
 	export default {
59
 		data() {
66
 		data() {
60
 			return {
67
 			return {
@@ -70,10 +77,14 @@
70
 				totalNum:0,
77
 				totalNum:0,
71
 				hasMore:true,
78
 				hasMore:true,
72
 				SMFlag:true,
79
 				SMFlag:true,
80
+				otherData:null,
81
+				isApp:false,
82
+				isUpdate:false,
73
 			}
83
 			}
74
 		},
84
 		},
75
 		components: {
85
 		components: {
76
-			scanner
86
+			scanner,
87
+			appUpdata
77
 		},
88
 		},
78
 		methods: {
89
 		methods: {
79
 			// 时间格式化
90
 			// 时间格式化
@@ -186,7 +197,7 @@
186
 			},
197
 			},
187
 			// 查看详情
198
 			// 查看详情
188
 			detail(item){
199
 			detail(item){
189
-				// this.padChange('BL2410251554361\n')
200
+				// this.padChange('118274209746944\n')
190
 				uni.navigateTo({
201
 				uni.navigateTo({
191
 				  url: `/pages/specimenPort/detail?detailId=${item.id}`
202
 				  url: `/pages/specimenPort/detail?detailId=${item.id}`
192
 				});
203
 				});
@@ -254,6 +265,7 @@
254
 					if(res.list.length){
265
 					if(res.list.length){
255
 						this.hasMore = true;
266
 						this.hasMore = true;
256
 						this.list = this.idx === 0 ? res.list : this.list.concat(res.list);
267
 						this.list = this.idx === 0 ? res.list : this.list.concat(res.list);
268
+						this.otherData = res.otherData
257
 					}else{
269
 					}else{
258
 						if(this.idx == 0){
270
 						if(this.idx == 0){
259
 							this.list = []
271
 							this.list = []
@@ -278,14 +290,30 @@
278
 					barcode:scannerCode,
290
 					barcode:scannerCode,
279
 					platform:"app"
291
 					platform:"app"
280
 				}).then((res) => {
292
 				}).then((res) => {
293
+					let data = res.data[0]
281
 					this.SMFlag = true
294
 					this.SMFlag = true
282
 					uni.hideLoading();
295
 					uni.hideLoading();
283
 					if(res.status==200){
296
 					if(res.status==200){
284
-						if(res.data[0].status.name=='标本离体'){
285
-							uni.navigateTo({
286
-							  url: `/pages/specimenPort/scan?data=${JSON.stringify(res.data[0])}&type=${res.type}`
287
-							});
288
-						}else{
297
+						let item = data.pathologySpecimenDTOList.find(i=>i.specimenCode == scannerCode)
298
+						if(!item.fixationTime && data.pathologyFormType==0){
299
+							if(data.status.value==2 || data.status.value==3 ||
300
+							data.status.value==4){
301
+								uni.navigateTo({
302
+								  url: `/pages/specimenPort/scan?data=${JSON.stringify(data)}&type=${res.type}`
303
+								});
304
+							}else{
305
+								uni.showToast({
306
+									title: '查询到标本申请单信息',
307
+									duration: 1000,
308
+									icon:'none'
309
+								});
310
+								setTimeout(_=>{
311
+									uni.navigateTo({
312
+									  url: `/pages/specimenPort/detail?detailId=${data.id}`
313
+									});
314
+								},800)
315
+							}
316
+						}else if(item.fixationTime && data.pathologyFormType==0){
289
 							uni.showToast({
317
 							uni.showToast({
290
 								title: '查询到标本申请单信息',
318
 								title: '查询到标本申请单信息',
291
 								duration: 1000,
319
 								duration: 1000,
@@ -293,9 +321,15 @@
293
 							});
321
 							});
294
 							setTimeout(_=>{
322
 							setTimeout(_=>{
295
 								uni.navigateTo({
323
 								uni.navigateTo({
296
-								  url: `/pages/specimenPort/detail?detailId=${res.data[0].id}`
324
+									url: `/pages/specimenPort/detail?detailId=${data.id}`
297
 								});
325
 								});
298
 							},800)
326
 							},800)
327
+						}else{
328
+							uni.showToast({
329
+								title: '该申请单类型不是病理检查申请单',
330
+								duration: 1000,
331
+								icon:'none'
332
+							});
299
 						}
333
 						}
300
 					}else{
334
 					}else{
301
 						uni.showModal({
335
 						uni.showModal({
@@ -332,6 +366,8 @@
332
 		onShow() {
366
 		onShow() {
333
 			let that = this
367
 			let that = this
334
 			// #ifdef APP-PLUS
368
 			// #ifdef APP-PLUS
369
+			this.isUpdate = true
370
+			this.isApp = true
335
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
371
 			uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
336
 			uni.$on('scan', function(data) {
372
 			uni.$on('scan', function(data) {
337
 				that.padChange(data)
373
 				that.padChange(data)
@@ -341,6 +377,11 @@
341
 		onLoad(option) {
377
 		onLoad(option) {
342
 			let backType = option.backType ? option.backType : null
378
 			let backType = option.backType ? option.backType : null
343
 			this.getDept(backType)
379
 			this.getDept(backType)
380
+			// #ifdef APP-PLUS
381
+			this.isUpdate = true
382
+			this.isApp = true
383
+			// #endif
384
+
344
 		}
385
 		}
345
 	}
386
 	}
346
 </script>
387
 </script>
@@ -365,6 +406,10 @@
365
 				color: #57BC63;
406
 				color: #57BC63;
366
 				font-size: 32rpx;
407
 				font-size: 32rpx;
367
 				font-weight: 500;
408
 				font-weight: 500;
409
+				.red{
410
+					color: red;
411
+					margin-left: 10px;
412
+				}
368
 			}
413
 			}
369
 
414
 
370
 			.filter {
415
 			.filter {