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 |  307 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 197 insertions(+), 110 deletions(-)

diff --git a/Monitor-APP/pages/home/home.vue b/Monitor-APP/pages/home/home.vue
index 99effb3..7b023e5 100644
--- a/Monitor-APP/pages/home/home.vue
+++ b/Monitor-APP/pages/home/home.vue
@@ -7,7 +7,7 @@
 				</view>
 				<!-- 鏃ュ巻 -->
 				<view class="time-tools">{{calendar}}</view>
-				<view class="version">褰撳墠鐗堟湰:{{version}}</view>
+				<view class="version">V:{{version}}</view>
 				<view class="button-left" @click="ejected()"></view>
 				<view class="button-right" @click="ejected()"></view>
 				<!-- 涓昏鍥� -->
@@ -203,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>
@@ -317,9 +317,9 @@
 </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 {
@@ -332,6 +332,10 @@
 				homeMode: [],
 				infoMode: [],
 				errorInfoMode: [],
+				needUpdateCharts: false,
+				viewSwitchTimer: null, // 瑙嗗浘鍒囨崲瀹氭椂鍣�
+				viewSwitchInProgress: false, // 娣诲姞杩欎竴琛屾潵璺熻釜瑙嗗浘鍒囨崲鐘舵��
+				timerIds: [], // 瀛樺偍瀹氭椂鍣↖D
 				baseInfo: {
 					xDistance: 1,
 					yDistance: 2,
@@ -446,7 +450,8 @@
 			// that.webSockerInit()
 		},
 		onLoad() {			
-			setInterval(()=>{
+			// 瀛樺偍瀹氭椂鍣↖D浠ヤ究鍚庣画娓呯悊
+			const timerId1 = setInterval(()=>{
 				this.getServerData()
 				// this.initlineChart()
 				// this.initPieChart()
@@ -463,28 +468,48 @@
 				// 娴嬭瘯鐢�
 				
 			},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(){
@@ -584,6 +609,8 @@
 			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
@@ -680,8 +707,12 @@
 				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() {
@@ -839,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
@@ -1353,8 +1440,8 @@
 	}
 	.version{
 		position: absolute;
-		left: 2%;
-		top: 2%;
+		left: 1%;
+		top: 1%;
 		font-size:1vw;
 		transform: scale(0.8);
 	}

--
Gitblit v1.9.1