From ab478c5acee01dc7fcd319c5715fc38b8342219c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 02 七月 2025 16:44:21 +0800
Subject: [PATCH] #优化

---
 Monitor-APP/pages/home/home.vue |  763 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 548 insertions(+), 215 deletions(-)

diff --git a/Monitor-APP/pages/home/home.vue b/Monitor-APP/pages/home/home.vue
index 12946e6..7b023e5 100644
--- a/Monitor-APP/pages/home/home.vue
+++ b/Monitor-APP/pages/home/home.vue
@@ -7,6 +7,7 @@
 				</view>
 				<!-- 鏃ュ巻 -->
 				<view class="time-tools">{{calendar}}</view>
+				<view class="version">V:{{version}}</view>
 				<view class="button-left" @click="ejected()"></view>
 				<view class="button-right" @click="ejected()"></view>
 				<!-- 涓昏鍥� -->
@@ -156,12 +157,13 @@
 									</y-box>
 								</view>
 								<view style="height: 2%;"></view>
-								<view style="height: 18%;">
-									<y-box>
-										<view class="flex-col" style="width: 100%;height: 100%;font-size: 4vh;justify-content: center;letter-spacing: 1vh;">
-											鏅鸿兘澶у睆鏄剧ず绯荤粺
-										</view>
-									</y-box>
+								<view style="height: 18%;display: flex;justify-content: space-around;align-items: center;">
+									<!-- <view style="font-size: 4vh">
+										鑷姩浠撳簱WCS鐩戞帶骞冲彴
+									</view> -->
+									<view style="height: 50%;">
+										<image style="height: 100%;" src="../../static/img/logo-bai.png" mode="aspectFit"></image>
+									</view>
 								</view>
 							</view>
 						</view>
@@ -201,10 +203,10 @@
 									vertical 婊戝姩鏂瑰悜鏄惁涓虹旱鍚� 
 									display-multiple-items 鍚屾椂鏄剧ず鐨勬粦鍧楁暟閲� -->
 									<swiper class="swiper-body-main" vertical="true" 
-									display-multiple-items="2"
+									display-multiple-items="1"
 									circular="true" :autoplay="true" :interval="3000" :duration="2000">
 										<swiper-item class="swiper-item" v-for="(item,i) in swiperList" :key="i">
-											<view style="width: 30%;">{{i+1}} / {{swiperList.length}}</view>
+											<view style="width: 100%;">{{i+1}} / {{swiperList.length}}</view>
 											<!-- <view style="width: 30%;">鏂欏彿: {{item.matnr}}</view> -->
 											<view style="width: 50%; font-size: 3vw;">鐗╂枡缂栫爜: {{item.matnr}}</view>
 											<view style="width: 50%; font-size: 3vw;">鍚嶇О: {{item.maknx}}</view>
@@ -264,27 +266,33 @@
 						</view>
 					</view>
 					<view class="item">
-						<view class="desc">port锛�</view>
+						<view class="desc">Wcsport锛�</view>
 						<view class="input">
 							<input type="text" v-model="basePort">
+						</view>
+					</view>										
+					<view class="item">
+						<view class="desc">WcsUrl锛�</view>
+						<view class="input">
+							<input type="text" v-model="baseUrl">
+						</view>
+					</view>
+					<view class="item">
+						<view class="desc">Wmsport锛�</view>
+						<view class="input">
+							<input type="text" v-model="wmsPort">
+						</view>
+					</view>
+					<view class="item">
+						<view class="desc">WmsUrl锛�</view>
+						<view class="input">
+							<input type="text" v-model="wmsUrl">
 						</view>
 					</view>
 					<view class="item">
 						<view class="desc">ledId锛�</view>
 						<view class="input">
 							<input type="text" v-model="baseLedId">
-						</view>
-					</view>
-					<view class="item">
-						<view class="desc">CrnId锛�</view>
-						<view class="input">
-							<input type="text" v-model="baseCrnId">
-						</view>
-					</view>
-					<view class="item">
-						<view class="desc">Url锛�</view>
-						<view class="input">
-							<input type="text" v-model="baseUrl">
 						</view>
 					</view>
 				</scroll-view>
@@ -295,16 +303,24 @@
 				</view>
 			</view>
 		</view>
+		<view>
+			<!-- 鎻愮ず绐楃ず渚� -->
+			<uni-popup ref="upVersion" type="dialog">
+				<uni-popup-dialog :type="msgType" title="閫氱煡" :content="dialogContent" @confirm="dialogConfirm"
+					@close="dialogClose"></uni-popup-dialog>
+			</uni-popup>
+		</view>
 		<view style="color: #FFF;position: fixed;bottom: 10px;left: 10px;" v-show="timeOut">
-			杩炴帴瓒呮椂: {{times}} s
+			杩炴帴瓒呮椂锛屾鍦ㄩ噸鏂板缓绔嬮摼鎺�:: {{times}} 
 		</view>
 	</view>
 </template>
 <!-- {"msg":"鎿嶄綔鎴愬姛","code":200,"data":[{"title":"鍏ㄦ澘鍑哄簱","workNo":7460,"staNo":110,"sourceStaNo":null,"locNo":null,"sourceLocNo":"0807102","matDtos":[{"matNo":"50460834","maknx":"200x60妗岄潰","count":26.0}],"emptyMk":false,"ioType":101}]} -->
 <script>
-	import demodata from '@/mockdata/demodata.json';
+	
 	import ycqdata from '@/pages/index/data.json';
-	import {WebSocketClient} from "@/static/js/WebSocketClient"	
+	
+	import WebSocketUtil from './uniWebSocket';
 	let socket;
 	export default {
 		data() {
@@ -316,6 +332,10 @@
 				homeMode: [],
 				infoMode: [],
 				errorInfoMode: [],
+				needUpdateCharts: false,
+				viewSwitchTimer: null, // 瑙嗗浘鍒囨崲瀹氭椂鍣�
+				viewSwitchInProgress: false, // 娣诲姞杩欎竴琛屾潵璺熻釜瑙嗗浘鍒囨崲鐘舵��
+				timerIds: [], // 瀛樺偍瀹氭椂鍣↖D
 				baseInfo: {
 					xDistance: 1,
 					yDistance: 2,
@@ -372,8 +392,16 @@
 				currDate: '',
 				locList:[],	
 				oldHours:'',
-				oldMin:''
-        
+				oldMin:'',
+				socketClient: null,
+				messages: [],
+				version:'',
+				socketUrl:'',
+				msgType: 'success',
+				filename: '',
+				dialogContent: '',
+				wmsUrl:'',
+				wmsPort:''
 				
 			}
 		},
@@ -382,6 +410,7 @@
 			// #ifdef APP-PLUS
 			plus.navigator.setFullscreen(true)
 			// #endif
+			this.getVersion()
 		},
 		mounted() {
 			let that = this
@@ -390,11 +419,15 @@
 			const BasePort = uni.getStorageSync('BasePort');
 			const BaseCrnId = uni.getStorageSync('BaseCrnId');
 			const PROJ = uni.getStorageSync('UPROJ');
+			const WMSURL = uni.getStorageSync('wmsUrl');
+			const WMSPORT = uni.getStorageSync('wmsPort');
 			that.baseUrl = PROJ
 			that.baseIP = BaseIP
 			that.baseLedId = BaseLedId
 			that.basePort = BasePort
 			that.baseCrnId = BaseCrnId
+			that.wmsUrl = WMSURL
+			that.wmsPort = WMSPORT
 			// this.getUrl()
 		},
 		created() {
@@ -404,15 +437,21 @@
 			const BasePort = uni.getStorageSync('BasePort');
 			const BaseCrnId = uni.getStorageSync('BaseCrnId');
 			const PROJ = uni.getStorageSync('UPROJ');
+			const WMSURL = uni.getStorageSync('wmsUrl');
+			const WMSPORT = uni.getStorageSync('wmsPort');
 			that.baseUrl = PROJ
 			that.baseIP = BaseIP
 			that.baseLedId = BaseLedId
 			that.basePort = BasePort
 			that.baseCrnId = BaseCrnId
-			that.webSockerInit();
+			that.wmsUrl = WMSURL
+			that.wmsPort = WMSPORT
+			that.uniWebSocket();
+			// that.webSockerInit()
 		},
 		onLoad() {			
-			setInterval(()=>{
+			// 瀛樺偍瀹氭椂鍣↖D浠ヤ究鍚庣画娓呯悊
+			const timerId1 = setInterval(()=>{
 				this.getServerData()
 				// this.initlineChart()
 				// this.initPieChart()
@@ -429,119 +468,226 @@
 				// 娴嬭瘯鐢�
 				
 			},1000)
+			this.timerIds.push(timerId1)
 			
-			setInterval(()=> {	
+			const timerId2 = setInterval(()=> {	
 				setTimeout(()=>{
 					plus.runtime.restart();
 				},100)
 				
 			},1000*60*60*4)
-			
-			// setInterval(()=> {
-			// 	setTimeout(()=>{
-			// 		var time = new Date();
-			// 		var hh = time.getHours();
-			// 		var mm = time.getMinutes();
-			// 		if(hh > this.oldHours && mm >this.oldMin && this.oldMin - mm < 55){
-			// 			plus.runtime.restart();
-			// 		}
-			// 		if(mm >this.oldMin && mm - this.oldMin >2){
-			// 			plus.runtime.restart();
-			// 		}
-			// 	},100)
+			this.timerIds.push(timerId2)
+			//瀹夊崜鍐呭瓨鍗犵敤鎵撳嵃
+			// setInterval(() => {
+			// 	plus.android.importClass('android.os.Debug');
+			// 	          const mem = plus.android.invoke(
+			// 	            'android.os.Debug', 
+			// 	            'getNativeHeapAllocatedSize'
+			// 	          ) / 1048576;
+			// 	          console.log(mem.toFixed(1))
 				
-			// },1000*30)
+			// 	}, 2000)
+			
+		},
+		onUnload() {
+			// 娓呯悊鎵�鏈夊畾鏃跺櫒
+			this.timerIds.forEach(id => clearInterval(id))
+			this.timerIds = []
+		},
+		beforeDestroy() {
+			// 娓呯悊WebSocket杩炴帴
+			if (this.socketClient) {
+				this.socketClient.close()
+				this.socketClient = null
+			}
+			
+			// 娓呯悊鎵�鏈夊畾鏃跺櫒
+			this.timerIds.forEach(id => clearInterval(id))
+			this.timerIds = []
+			
+			// 娓呯悊瑙嗗浘鍒囨崲瀹氭椂鍣�
+			if (this.viewSwitchTimer) {
+				clearTimeout(this.viewSwitchTimer)
+				this.viewSwitchTimer = null
+			}
 		},
 		methods: {
+			uniWebSocket(){
+				let that = this;
+				that.commonUrl = that.baseIP + ':' +that.basePort + "/" +that.baseUrl
+				that.socketUrl = "ws://"+that.commonUrl+"/led/"+that.baseLedId
+				// 鍒涘缓WebSocket瀹炰緥
+				    that.socketClient = new WebSocketUtil(that.socketUrl, {
+				      // 蹇冭烦闂撮殧锛岄粯璁�30绉�
+				      heartbeatInterval: 30000,
+				      // 閲嶈繛闂撮殧锛岄粯璁�3绉�
+				      reconnectInterval: 3000,
+				      // 鏈�澶ч噸杩炴鏁帮紝-1琛ㄧず鏃犻檺閲嶈繛
+				      maxReconnectAttempts: -1,				      
+				      // 娑堟伅鍥炶皟
+				      onMessage: (res) => {
+				        try {
+				          const data = JSON.parse(res.data);				          
+				          that.showDate(data)
+				          // 澶勭悊娑堟伅...
+				        } catch (e) {
+				          console.error('瑙f瀽娑堟伅澶辫触', e);
+				        }
+				      },
+				      // 杩炴帴鎵撳紑鍥炶皟
+				      onOpen: (res) => {
+						  that.timeOut = false
+						  that.times = 0
+				        console.log('WebSocket宸茶繛鎺�', res);	
+				      },
+				      // 杩炴帴閿欒鍥炶皟
+				      onError: (error) => {
+				        console.error('WebSocket閿欒', error);
+				      },
+				      // 杩炴帴鍏抽棴鍥炶皟
+				      onClose: (res) => {
+						  that.timeOut = true
+						  that.times = that.times+1
+						  that.infoType = 0
+				        console.log('WebSocket宸插叧闂�', res);
+				      },
+				      // 閲嶈繛鍥炶皟
+				      onReconnect: (info) => {
+				        console.log(`WebSocket閲嶈繛(${info.attempts}/${info.maxAttempts})`);
+				      }
+				    });
+				    
+				    // 寤虹珛杩炴帴
+				    that.socketClient.connect();
+			},
+			// 鍙戦�佹秷鎭�
+			    sendMessage(content) {
+			      const message = {
+			        type: 'chat',
+			        content: content,
+			        timestamp: Date.now()
+			      };
+			      
+			      this.socketClient.send(message)
+			        .then(() => {
+			          console.log('娑堟伅鍙戦�佹垚鍔�');
+			        })
+			        .catch(error => {
+			          console.error('娑堟伅鍙戦�佸け璐�', error);
+			        });
+			    },
 			webSockerInit(){
 				let that = this;
+				
+				if(that.baseIP === '' && that.basePort === '' && that.baseUrl ==='' ){
+					that.timeOut = true
+					that.times = that.times+1
+					that.infoType = 0
+					return ;
+				}
+				
 				that.commonUrl = that.baseIP + ':' +that.basePort + "/" +that.baseUrl
 				let socketUrl = "ws://"+that.commonUrl+"/led/"+that.baseLedId
 						// socketUrl = "ws://10.0.100.150:8080/gtctu/led/113"
 				const ws = new WebSocketClient(socketUrl);
 				ws.connect()
-				ws.onmessage((msg)=>{					
+				
+				console.log(ws)		
+						
+				ws.onclose(() =>{
+					
+				})
+				
+				ws.onmessage((msg)=>{
+				 that.timeOut = false
 				 let data = JSON.parse(msg.data)
-				 if(data.type === "default"){
-				 	that.chartsData.Pie.series[0].data = data.pie
-				 	that.baseInfo.stockCount = data.stockCunt
-				 	that.baseInfo.emptyCount = data.emptyCount
-				 	that.baseInfo.noneCount =data.noneCount
-				 	that.baseInfo.used = data.used
-				 	that.baseInfo.usedPr = data.usedPr
-				 	
-				 	that.chartsData.Line.categories = [
-				 		that.getDateFormat(-11),that.getDateFormat(-10),that.getDateFormat(-9),that.getDateFormat(-8),
-				 		that.getDateFormat(-7),that.getDateFormat(-6),that.getDateFormat(-5),that.getDateFormat(-4),
-				 		that.getDateFormat(-3),that.getDateFormat(-2),that.getDateFormat(-1),that.getDateFormat(0),]
-				 	that.chartsData.Line.series = data.rows
-				 	that.calendar = data.year + "骞�" + data.month + "鏈�" + data.day + "鏃� " + data.hour + ":" + data.minute + ":" + data.second + " " + data.week
-				 	that.currDate = data.year + "/" + data.month + "/" + data.day
-				 	that.locList = data.inventoryData
-					that.oldHours = data.hour
-					that.oldMin = data.minute
-				 }else if(data.type === "error"){
-				 	if (data.errMsg && data.errMsg !== "") {
-				 		var errorInfo = data.errMsg
-				 		if (that.infoType == 1) {
-				 			that.infoType = 3
-				 			that.infoText.title = "鍏朵粬淇℃伅" 
-				 			// that.infoText.title = "寮傚父"
-				 			that.infoText.error = errorInfo
-				 			return
-				 		}
-				 		that.infoType = 2
-				 		that.infoText.title = "鍏朵粬淇℃伅"
-				 		// that.infoText.title = "寮傚父"
-				 		that.infoText.error = errorInfo
-				 	} else {
-				 		if (that.infoType == 1) {
-				 			return
-				 		}
-				 		that.infoType = 0
-				 	}
-				 }else if(data.type === "task"){
-					 if (data.taskList && data.taskList !== "" && data.taskList.length !=0) {
-					 	if (that.infoType == 2 || that.infoType == 3) {
-					 		return;
-					 	}
-					 	// infoType1:鍙湁鎷f枡绛変俊鎭�
-					 	that.infoType = 1
-					 	if (data.taskList[0].ioType === 101) {
-					 		that.infoText.title = '鍏ㄦ澘鍑哄簱'
-					 	} else if(data.taskList[0].ioType === 103) {
-					 		that.infoText.title = '鎷f枡鍑哄簱'
-					 	} else if(data.taskList[0].ioType === 107) {
-					 		that.infoText.title = '鐩樼偣鍑哄簱'
-					 	} else if(data.taskList[0].ioType === 1) {
-					 		that.infoText.title = '鍏ュ簱'
-					 	} else if(data.taskList[0].ioType === 10) {
-					 		that.infoText.title = '绌烘墭鍏ュ簱'
-					 	} else if(data.taskList[0].ioType === 110) {
-					 		that.infoText.title = '绌烘墭鍑哄簱'
-					 	} else if(data.taskList[0].ioType === 104) {
-					 		that.infoText.title = '骞舵澘鍑哄簱'
-					 	}else if(data.taskList[0].ioType === 54) {
-					 		that.infoText.title = '骞舵澘鍏ュ簱'
-					 	}
-					 	that.infoText.barcode = data.taskList[0].barcode
-					 	that.infoText.workNo = data.taskList[0].workNo
-					 	that.infoText.sourceLocNo = data.taskList[0].sourceLocNo
-					 	that.infoText.staNo = data.taskList[0].staNo
-					 	that.swiperList = data.taskList[0].matDtos
-					 	// that.infoText.matnr = res.data[0].matDtos[0].matnr
-					 	// that.infoText.specs = res.data[0].matDtos[0].specs
-					 	// that.infoText.maknx = res.data[0].matDtos[0].maknx
-					 	// that.infoText.count = res.data[0].matDtos[0].count
-					 } else {
-					 	if (that.infoType == 2 || that.infoType == 3) {
-					 		return;
-					 	}
-					 	that.infoType = 0
-					 }
-				 }
+				 that.showDate(data)
 				 
 				})
+				
+			},
+			showDate(data){
+				const that = this
+				if(data.type === "default"){
+					// 璁剧疆鏍囪锛岃〃绀烘暟鎹凡鏇存柊锛岄渶瑕侀噸鏂版覆鏌撳浘琛�
+					that.needUpdateCharts = true
+					that.chartsData.Pie.series[0].data = data.pie
+					that.baseInfo.stockCount = data.stockCunt
+					that.baseInfo.emptyCount = data.emptyCount
+					that.baseInfo.noneCount =data.noneCount
+					that.baseInfo.used = data.used
+					that.baseInfo.usedPr = data.usedPr
+					
+					that.chartsData.Line.categories = [
+						that.getDateFormat(-11),that.getDateFormat(-10),that.getDateFormat(-9),that.getDateFormat(-8),
+						that.getDateFormat(-7),that.getDateFormat(-6),that.getDateFormat(-5),that.getDateFormat(-4),
+						that.getDateFormat(-3),that.getDateFormat(-2),that.getDateFormat(-1),that.getDateFormat(0),]
+					that.chartsData.Line.series = data.rows
+					that.calendar = data.year + "骞�" + data.month + "鏈�" + data.day + "鏃� " + data.hour + ":" + data.minute + ":" + data.second + " " + data.week
+					that.currDate = data.year + "/" + data.month + "/" + data.day
+					that.locList = data.inventoryData
+									that.oldHours = data.hour
+									that.oldMin = data.minute
+				}else if(data.type === "error"){
+					if (data.errMsg && data.errMsg !== "") {
+						var errorInfo = data.errMsg
+						if (that.infoType == 1) {
+							that.infoType = 3
+							that.infoText.title = "鍏朵粬淇℃伅" 
+							// that.infoText.title = "寮傚父"
+							that.infoText.error = errorInfo
+							return
+						}
+						that.infoType = 2
+						that.infoText.title = "鍏朵粬淇℃伅"
+						// that.infoText.title = "寮傚父"
+						that.infoText.error = errorInfo
+					} else {
+						if (that.infoType == 1) {
+							return
+						}
+						that.infoType = 0
+					}
+				}else if(data.type === "task"){
+									 if (data.taskList && data.taskList !== "" && data.taskList.length !=0) {
+									 	if (that.infoType == 2 || that.infoType == 3) {
+									 		return;
+									 	}
+									 	// infoType1:鍙湁鎷f枡绛変俊鎭�
+									 	that.infoType = 1
+									 	if (data.taskList[0].ioType === 101) {
+									 		that.infoText.title = '鍏ㄦ澘鍑哄簱'
+									 	} else if(data.taskList[0].ioType === 103) {
+									 		that.infoText.title = '鎷f枡鍑哄簱'
+									 	} else if(data.taskList[0].ioType === 107) {
+									 		that.infoText.title = '鐩樼偣鍑哄簱'
+									 	} else if(data.taskList[0].ioType === 1) {
+									 		that.infoText.title = '鍏ュ簱'
+									 	} else if(data.taskList[0].ioType === 10) {
+									 		that.infoText.title = '绌烘墭鍏ュ簱'
+									 	} else if(data.taskList[0].ioType === 110) {
+									 		that.infoText.title = '绌烘墭鍑哄簱'
+									 	} else if(data.taskList[0].ioType === 104) {
+									 		that.infoText.title = '骞舵澘鍑哄簱'
+									 	}else if(data.taskList[0].ioType === 54) {
+									 		that.infoText.title = '骞舵澘鍏ュ簱'
+									 	}
+									 	that.infoText.barcode = data.taskList[0].barcode
+									 	that.infoText.workNo = data.taskList[0].workNo
+									 	that.infoText.sourceLocNo = data.taskList[0].sourceLocNo
+									 	that.infoText.staNo = data.taskList[0].staNo
+									 	that.swiperList = data.taskList[0].matDtos
+									 	// that.infoText.matnr = res.data[0].matDtos[0].matnr
+									 	// that.infoText.specs = res.data[0].matDtos[0].specs
+									 	// that.infoText.maknx = res.data[0].matDtos[0].maknx
+									 	// that.infoText.count = res.data[0].matDtos[0].count
+									 } else {
+									 	if (that.infoType == 2 || that.infoType == 3) {
+									 		return;
+									 	}
+									 	that.infoType = 0
+									 }
+				}
 			},
 			statisticalModel() {
 				let that = this
@@ -557,15 +703,16 @@
 					}
 				})
 			},
-			timeOut() {
-				console.log(this.times);
-			},
 			getUrl() {
-				this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePort + "/" +this.baseUrl
+				this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePort + "/" +this.baseUrl				
 			},
 			getServerData() {
-				this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line))
-				this.chartsDataPie2=JSON.parse(JSON.stringify(this.chartsData.Pie))
+				// 鍙湪鏁版嵁鍙樺寲鏃舵墠杩涜娣辨嫹璐�
+				if (this.needUpdateCharts) {
+					this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line))
+					this.chartsDataPie2=JSON.parse(JSON.stringify(this.chartsData.Pie))
+					this.needUpdateCharts = false
+				}
 			},
 			// 鑾峰彇閿欒淇℃伅
 			getInfo2() {
@@ -723,91 +870,147 @@
 			},
 			// 鎺у埗鍣�
 			controller() {
-				switch(this.infoType) {
-					// 鏈変俊鎭� 浣� 娌℃湁閿欒淇℃伅
-					case 0: 
-						if (this.errorInfoViewShow) {
-							this.errorInfoViewShow = false
-							this.errorInfoMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.homeViewShow = true
-								this.homeMode = ['fade', 'slide-bottom']
-							},1000)
-						} else if (this.infoViewShow) {
-							this.infoViewShow = false
-							this.infoMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.homeViewShow = true
-								this.homeMode = ['fade', 'slide-bottom']
-							},1000)
-						} else if (this.errorInfoViewShow && this.infoViewShow) {
-							this.errorInfoViewShow = false
-							this.infoViewShow = false
-							this.infoMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.homeViewShow = true
-								this.homeMode = ['fade', 'slide-bottom']
-							},1000)
-						}
-						return;
-					case 1: 
-						if (this.homeViewShow) {
-							this.homeViewShow = false
-							this.homeMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.infoViewShow = true
-								this.infoMode = ['fade', 'slide-bottom']
-							},1000)
-						} else if (this.errorInfoViewShow) {
-							this.errorInfoViewShow = false
-							this.errorInfoMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.infoViewShow = true
-								this.infoMode = ['fade', 'slide-bottom']
-							},1000)
-						}
-						
-						return;
-						// 鏈変俊鎭� 涓� 鏈夐敊璇俊鎭�
-					case 2:
-						if (this.homeViewShow) {
-							this.homeViewShow = false
-							this.homeMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.errorInfoViewShow = true
-								this.errorInfoMode = ['fade', 'slide-bottom']
-							},1000)
-						} else if (this.infoViewShow) {
-							this.infoViewShow = false
-							this.infoMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.errorInfoViewShow = true
-								this.errorInfoMode = ['fade', 'slide-bottom']
-							},1000)
-						}
-						return;
-					// 鏈変俊鎭� 涓� 鏈夐敊璇俊鎭�
-					case 3:
-						if (this.homeViewShow) {
-							this.homeViewShow = false
-							this.homeMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.errorInfoViewShow = true
-								this.errorInfoMode = ['fade', 'slide-bottom']
-							},1000)
-						} else if (this.infoViewShow) {
-							this.infoViewShow = false
-							this.infoMode = ['fade', 'slide-bottom']
-							setTimeout(()=>{
-								this.errorInfoViewShow = true
-								this.errorInfoMode = ['fade', 'slide-bottom']
-							},1000)
-						}
-						return;
-					
-				}
-				
-			},
+    // 濡傛灉瑙嗗浘鍒囨崲姝e湪杩涜涓紝涓嶈涓柇
+    if (this.viewSwitchInProgress) {
+        return;
+    }
+    
+    // 娓呴櫎涔嬪墠鐨勮鍥惧垏鎹㈠畾鏃跺櫒
+    if (this.viewSwitchTimer) {
+        clearTimeout(this.viewSwitchTimer)
+        this.viewSwitchTimer = null
+    }
+    
+    switch(this.infoType) {
+        // 鏈変俊鎭� 浣� 娌℃湁閿欒淇℃伅
+        case 0: 
+            if (this.errorInfoViewShow) {
+                this.viewSwitchInProgress = true;
+                this.errorInfoViewShow = false
+                this.errorInfoMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.homeViewShow = true
+                    this.homeMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            } else if (this.infoViewShow) {
+                this.viewSwitchInProgress = true;
+                this.infoViewShow = false
+                this.infoMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.homeViewShow = true
+                    this.homeMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            } else if (this.errorInfoViewShow && this.infoViewShow) {
+                this.viewSwitchInProgress = true;
+                this.errorInfoViewShow = false
+                this.infoViewShow = false
+                this.infoMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.homeViewShow = true
+                    this.homeMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            }
+            return;
+        case 1: 
+            if (this.homeViewShow) {
+                this.viewSwitchInProgress = true;
+                this.homeViewShow = false
+                this.homeMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.infoViewShow = true
+                    this.infoMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            } else if (this.errorInfoViewShow) {
+                this.viewSwitchInProgress = true;
+                this.errorInfoViewShow = false
+                this.errorInfoMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.infoViewShow = true
+                    this.infoMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            }
+            
+            return;
+            // 鏈変俊鎭� 涓� 鏈夐敊璇俊鎭�
+        case 2:
+            if (this.homeViewShow) {
+                this.viewSwitchInProgress = true;
+                this.homeViewShow = false
+                this.homeMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.errorInfoViewShow = true
+                    this.errorInfoMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            } else if (this.infoViewShow) {
+                this.viewSwitchInProgress = true;
+                this.infoViewShow = false
+                this.infoMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.errorInfoViewShow = true
+                    this.errorInfoMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            }
+            return;
+        // 鏈変俊鎭� 涓� 鏈夐敊璇俊鎭�
+        case 3:
+            if (this.homeViewShow) {
+                this.viewSwitchInProgress = true;
+                this.homeViewShow = false
+                this.homeMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.errorInfoViewShow = true
+                    this.errorInfoMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            } else if (this.infoViewShow) {
+                this.viewSwitchInProgress = true;
+                this.infoViewShow = false
+                this.infoMode = ['fade', 'slide-bottom']
+                this.viewSwitchTimer = setTimeout(()=>{
+                    this.errorInfoViewShow = true
+                    this.errorInfoMode = ['fade', 'slide-bottom']
+                    // 璁剧疆鍙︿竴涓畾鏃跺櫒鏉ラ噸缃繘琛屼腑鏍囧織
+                    setTimeout(() => {
+                        this.viewSwitchInProgress = false;
+                    }, 1000);
+                },1000)
+            }
+            return;
+        
+    }
+    
+},
 			// 涓诲睆骞�
 			handle(type) {
 				this.homeViewShow = !this.homeViewShow
@@ -838,6 +1041,8 @@
 				uni.setStorageSync('BasePort',this.basePort);
 				uni.setStorageSync('BaseCrnId',this.baseCrnId);
 				uni.setStorageSync('UPROJ',this.baseUrl);
+				uni.setStorageSync('wmsUrl',this.wmsUrl);
+				uni.setStorageSync('wmsPort',this.wmsPort);
 				this.getUrl()
 				this.ejectShow = false
 			},
@@ -940,6 +1145,127 @@
 						}
 					}
 				})
+			},
+			//妫�娴嬪綋鍓嶅钩鍙帮紝濡傛灉鏄畨鍗撳垯鍚姩瀹夊崜鏇存柊
+			getVersion() {
+				let that = this;
+				uni.getSystemInfo({
+					success: (res) => {
+						if (res.platform == "android") {
+							that.AndroidCheckUpdate();
+						}
+							// that.AndroidCheckUpdate();
+						
+					}
+				})
+			},
+			// 鑾峰彇褰撳墠鐗堟湰鍙�
+			AndroidCheckUpdate() {
+				let that = this;
+				plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
+					that.version = wgtinfo.version //瀹㈡埛绔増鏈彿
+				})
+				setTimeout(()=>{
+					that.getUpdateVersion()
+				},100)
+			},
+			// 鏍¢獙鐗堟湰
+			getUpdateVersion() {
+				let that = this
+				let type = 1
+				if (that.baseUrl == 'http://undefined:undefined/undefined') {
+					return
+				}
+				const wms = 'http://'+ that.baseIP + ':' +that.wmsPort + "/" +that.wmsUrl
+				console.log(wms)
+				let url = wms + '/appVersion/checkUpdate/' + that.version + '/' + type
+				uni.request({
+					url: url,
+					method: 'GET',
+					success(res) {
+						console.log(res);
+						var res = res.data
+						if (res.data) {
+							that.filename = res.data.path
+							that.dialogContent = '鍙戠幇鏂扮増鏈�:' + res.data.version + ', 鏄惁绔嬪嵆鏇存柊'
+							that.$refs.upVersion.open()
+						} else {
+							uni.showToast({
+								title: res.msg,
+								icon: "none",
+								position: 'top'
+							})
+						}
+						
+					}
+				})
+			},
+			dialogConfirm() {
+				this.$refs.upVersion.close()
+				this.downWgt()
+			},
+			dialogClose() {
+				this.$refs.upVersion.close()
+			},
+			downWgt() {
+				let that = this;
+				const wms = 'http://'+ that.baseIP + ':' +that.wmsPort + "/" +that.wmsUrl
+				const downloadUrl = wms + "/appVersion/downloadApp/" + that.filename
+				uni.showLoading({
+					title: '鏇存柊涓�︹��'
+				})
+				const downloadTask = uni.downloadFile({ //鎵ц涓嬭浇
+					url: downloadUrl, //涓嬭浇鍦板潃
+					timeout: 1000 * 30, //30绉掕秴鏃舵椂闂�
+					success: downloadResult => { //涓嬭浇鎴愬姛
+						console.log(downloadResult);
+						that.showdownLine = false
+						uni.hideLoading();
+						if (downloadResult.statusCode == 200) {
+							uni.showModal({
+								title: '',
+								content: '鏇存柊鎴愬姛锛岀‘瀹氱幇鍦ㄩ噸鍚悧锛�',
+								confirmText: '閲嶅惎',
+								confirmColor: '#EE8F57',
+								success: function(res) {
+									if (res.confirm == true) {
+										plus.runtime.install( //瀹夎
+											downloadResult.tempFilePath, {
+												force: true
+											},
+											function(res) {
+												utils.showToast('鏇存柊鎴愬姛锛岄噸鍚腑');
+												plus.runtime.restart();
+											}
+										);
+									}
+								}
+							});
+						} else {
+							uni.hideLoading();
+							that.showdownLine = false
+							uni.showToast({
+								title:'璇峰厛涓婁紶瀹夎鍖�',
+								icon: 'error'
+							})
+						}
+					},
+					fail: err => {
+						uni.hideLoading();
+						that.showdownLine = false
+						that.$u.toast(downloadResult.errMsg)
+					},
+					complete: com => {
+						
+						console.log(com)
+					}
+				});
+			
+				// 涓嬭浇杩涘害
+				downloadTask.onProgressUpdate(res => {
+					that.downloadNum = res.progress
+					console.log('涓嬭浇杩涘害' + that.downloadNum);
+				});
 			},
 		}
 		
@@ -1112,6 +1438,13 @@
 		font-size:1.5vw;
 		font-weight: 700;
 	}
+	.version{
+		position: absolute;
+		left: 1%;
+		top: 1%;
+		font-size:1vw;
+		transform: scale(0.8);
+	}
 	.item-subTitle {
 		font-size:0.5vw;
 		text-indent: 0em;
@@ -1164,8 +1497,8 @@
 	}
 	.eject{
 		position: relative;
-		width: 40vw;
-		height: 40vh;
+		width: 45vw;
+		height: 45vh;
 		background-color: #fff;
 		border-radius: 2rem;
 	}

--
Gitblit v1.9.1