From 75201fffb3d5f469cfa4a77e2e71c98a13224f01 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期四, 21 十一月 2024 14:59:15 +0800
Subject: [PATCH] #

---
 Monitor-APP/static/js/dispatcher.js        |   41 +++
 Monitor-APP/static/js/WebSocketClient.js   |  191 +++++++++++++++
 Monitor-APP/manifest.json                  |  173 +++++++++++++-
 Monitor-APP/static/js/WebSocketClient02.js |  141 +++++++++++
 Monitor-APP/pages/home/home.vue            |  161 +++++++++++--
 5 files changed, 665 insertions(+), 42 deletions(-)

diff --git a/Monitor-APP/manifest.json b/Monitor-APP/manifest.json
index 6c5100a..073ccc2 100644
--- a/Monitor-APP/manifest.json
+++ b/Monitor-APP/manifest.json
@@ -26,22 +26,165 @@
             /* android鎵撳寘閰嶇疆 */
             "android" : {
                 "permissions" : [
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                     "<uses-feature android:name=\"android.hardware.camera\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-                ]
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_CHECKIN_PROPERTIES\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_SURFACE_FLINGER\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCOUNT_MANAGER\"/>",
+                    "<uses-permission android:name=\"android.permission.ADD_VOICEMAIL\"/>",
+                    "<uses-permission android:name=\"android.permission.AUTHENTICATE_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.BATTERY_STATS\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_ACCESSIBILITY_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_APPWIDGET\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_CARRIER_MESSAGING_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_DEVICE_ADMIN\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_DREAM_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_INPUT_METHOD\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_NFC_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_NOTIFICATION_LISTENER_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_PRINT_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_REMOTEVIEWS\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_TEXT_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_TV_INPUT\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_VOICE_INTERACTION\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_VPN_SERVICE\"/>",
+                    "<uses-permission android:name=\"android.permission.BIND_WALLPAPER\"/>",
+                    "<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
+                    "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
+                    "<uses-permission android:name=\"android.permission.BLUETOOTH_PRIVILEGED\"/>",
+                    "<uses-permission android:name=\"android.permission.BODY_SENSORS\"/>",
+                    "<uses-permission android:name=\"android.permission.BRICK\"/>",
+                    "<uses-permission android:name=\"android.permission.BROADCAST_PACKAGE_REMOVED\"/>",
+                    "<uses-permission android:name=\"android.permission.BROADCAST_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.BROADCAST_STICKY\"/>",
+                    "<uses-permission android:name=\"android.permission.BROADCAST_WAP_PUSH\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PRIVILEGED\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CAPTURE_AUDIO_OUTPUT\"/>",
+                    "<uses-permission android:name=\"android.permission.CAPTURE_SECURE_VIDEO_OUTPUT\"/>",
+                    "<uses-permission android:name=\"android.permission.CAPTURE_VIDEO_OUTPUT\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_COMPONENT_ENABLED_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_CONFIGURATION\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_MULTICAST_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CLEAR_APP_CACHE\"/>",
+                    "<uses-permission android:name=\"android.permission.CLEAR_APP_USER_DATA\"/>",
+                    "<uses-permission android:name=\"android.permission.CONTROL_LOCATION_UPDATES\"/>",
+                    "<uses-permission android:name=\"android.permission.DELETE_CACHE_FILES\"/>",
+                    "<uses-permission android:name=\"android.permission.DELETE_PACKAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.DEVICE_POWER\"/>",
+                    "<uses-permission android:name=\"android.permission.DIAGNOSTIC\"/>",
+                    "<uses-permission android:name=\"android.permission.DISABLE_KEYGUARD\"/>",
+                    "<uses-permission android:name=\"android.permission.DUMP\"/>",
+                    "<uses-permission android:name=\"android.permission.EXPAND_STATUS_BAR\"/>",
+                    "<uses-permission android:name=\"android.permission.FACTORY_TEST\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.FORCE_BACK\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_PACKAGE_SIZE\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_TOP_ACTIVITY_INFO\"/>",
+                    "<uses-permission android:name=\"android.permission.GLOBAL_SEARCH\"/>",
+                    "<uses-permission android:name=\"android.permission.HARDWARE_TEST\"/>",
+                    "<uses-permission android:name=\"android.permission.INJECT_EVENTS\"/>",
+                    "<uses-permission android:name=\"android.permission.INSTALL_LOCATION_PROVIDER\"/>",
+                    "<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.INSTALL_SHORTCUT\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNAL_SYSTEM_WINDOW\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.KILL_BACKGROUND_PROCESSES\"/>",
+                    "<uses-permission android:name=\"android.permission.LOCATION_HARDWARE\"/>",
+                    "<uses-permission android:name=\"android.permission.MANAGE_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MANAGE_APP_TOKENS\"/>",
+                    "<uses-permission android:name=\"android.permission.MANAGE_DOCUMENTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MASTER_CLEAR\"/>",
+                    "<uses-permission android:name=\"android.permission.MEDIA_CONTENT_CONTROL\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_FORMAT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.NFC\"/>",
+                    "<uses-permission android:name=\"android.permission.PERSISTENT_ACTIVITY\"/>",
+                    "<uses-permission android:name=\"android.permission.PROCESS_OUTGOING_CALLS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CALENDAR\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CALL_LOG\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_FRAME_BUFFER\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_HISTORY_BOOKMARKS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_INPUT_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PROFILE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SOCIAL_STREAM\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SYNC_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_SYNC_STATS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_USER_DICTIONARY\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_VOICEMAIL\"/>",
+                    "<uses-permission android:name=\"android.permission.REBOOT\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_MMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_WAP_PUSH\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.REORDER_TASKS\"/>",
+                    "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.RESTART_PACKAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.SEND_RESPOND_VIA_MESSAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_ACTIVITY_WATCHER\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_ALARM\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_ALWAYS_FINISH\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_ANIMATION_SCALE\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_DEBUG_APP\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_ORIENTATION\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_POINTER_SPEED\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_PREFERRED_APPLICATIONS\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_PROCESS_LIMIT\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_TIME\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_TIME_ZONE\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_WALLPAPER\"/>",
+                    "<uses-permission android:name=\"android.permission.SET_WALLPAPER_HINTS\"/>",
+                    "<uses-permission android:name=\"android.permission.SIGNAL_PERSISTENT_PROCESSES\"/>",
+                    "<uses-permission android:name=\"android.permission.STATUS_BAR\"/>",
+                    "<uses-permission android:name=\"android.permission.SUBSCRIBED_FEEDS_READ\"/>",
+                    "<uses-permission android:name=\"android.permission.SUBSCRIBED_FEEDS_WRITE\"/>",
+                    "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
+                    "<uses-permission android:name=\"android.permission.TRANSMIT_IR\"/>",
+                    "<uses-permission android:name=\"android.permission.UNINSTALL_SHORTCUT\"/>",
+                    "<uses-permission android:name=\"android.permission.UPDATE_DEVICE_STATS\"/>",
+                    "<uses-permission android:name=\"android.permission.USE_CREDENTIALS\"/>",
+                    "<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
+                    "<uses-permission android:name=\"android.permission.USE_SIP\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_APN_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CALENDAR\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CALL_LOG\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_GSERVICES\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_HISTORY_BOOKMARKS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_PROFILE\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SECURE_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SOCIAL_STREAM\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SYNC_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_USER_DICTIONARY\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_VOICEMAIL\"/>",
+                    "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
+                ],
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
             },
             /* ios鎵撳寘閰嶇疆 */
             "ios" : {
diff --git a/Monitor-APP/pages/home/home.vue b/Monitor-APP/pages/home/home.vue
index ac2912f..83b77f6 100644
--- a/Monitor-APP/pages/home/home.vue
+++ b/Monitor-APP/pages/home/home.vue
@@ -328,6 +328,7 @@
 <script>
 	import demodata from '@/mockdata/demodata.json';
 	import ycqdata from '@/pages/index/data.json';
+	import {WebSocketClient} from "@/static/js/WebSocketClient"	
 	export default {
 		data() {
 			return {
@@ -416,42 +417,148 @@
 			// this.getUrl()
 		},
 		onLoad() {
-			// this.ws()
 			setInterval(()=>{
 				this.getServerData()
-				this.initlineChart()
-				this.initPieChart()
-				this.getOther()
-				this.getDate()
-				this.getDate2()
-				this.getInfo()
-				this.getError()
-				// this.getInfo2()
-				// this.getError2()
-				this.getUrl()
+				// this.initlineChart()
+				// this.initPieChart()
+				// this.getOther()
+				// // this.getDate()
+				// this.getDate2()
+				// this.getInfo()
+				// this.getError()
+				// // this.getInfo2()
+				// // this.getError2()
+				// this.getUrl()
 				this.controller()
-				
+				// this.statisticalModel()
 				// 娴嬭瘯鐢�
 				
 			},1000)
 			
+			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)
+				
+			},1000*30)
+		},
+		created() {
+			let that = this
+			const BaseIP = uni.getStorageSync('BaseIp');
+			const BaseLedId = uni.getStorageSync('BaseLedId');
+			const BasePort = uni.getStorageSync('BasePort');
+			const BaseCrnId = uni.getStorageSync('BaseCrnId');
+			const PROJ = uni.getStorageSync('UPROJ');
+			that.baseUrl = "pswcs"
+			that.baseIP = "10.10.10.230"
+			that.baseLedId = BaseLedId
+			that.basePort = "9090"
+			that.baseCrnId = BaseCrnId
+			that.webSockerInit();
 		},
 		methods: {
-			ws() {
-				let _this = this
-				_this.connectWS()
-				uni.onSocketOpen(function (res) {
-					console.log("Open");
-				}) 
-				uni.onSocketClose(function (res) {
-					console.log("Close");
-					setInterval(()=>{
-						_this.connectWS()
-					},1000)
-				}) 
-			},
-			connectWS() {
-				uni.connectSocket({ url: `http://127.0.0.1:9090/pswcs/console/websocket`, })
+			webSockerInit(){
+				let that = this;
+				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)=>{					
+				 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 = '骞舵澘鍑哄簱'
+					 	}
+					 	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
+					 }
+				 }
+				 
+				})
 			},
 			timeOut1() {
 				console.log(this.times);
diff --git a/Monitor-APP/static/js/WebSocketClient.js b/Monitor-APP/static/js/WebSocketClient.js
new file mode 100644
index 0000000..c8a5b6a
--- /dev/null
+++ b/Monitor-APP/static/js/WebSocketClient.js
@@ -0,0 +1,191 @@
+import { EventDispatcher } from './dispatcher';
+
+export class WebSocketClient extends EventDispatcher {
+    // #socket閾炬帴
+    url = '';
+    // #socket瀹炰緥
+    socket = null;
+    // #閲嶈繛娆℃暟
+    reconnectAttempts = 0;
+    // #鏈�澶ч噸杩炴暟
+    maxReconnectAttempts = 20;
+    // #閲嶈繛闂撮殧
+    reconnectInterval = 60000; // 10 seconds
+    // #鍙戦�佸績璺虫暟鎹棿闅�
+    heartbeatInterval = 1000 * 30;
+    // #璁℃椂鍣╥d
+    heartbeatTimer = undefined;
+    // #褰诲簳缁堟ws
+    stopWs = false;
+    // *鏋勯�犲嚱鏁�
+    constructor(url) {
+        super();
+        this.url = url;
+    }
+    // >鐢熷懡鍛ㄦ湡閽╁瓙
+    onopen(callBack) {
+        this.addEventListener('open', callBack);
+    }
+    onmessage(callBack) {
+        this.addEventListener('message', callBack);
+    }
+    onclose(callBack) {
+        this.addEventListener('close', callBack);
+    }
+    onerror(callBack) {
+        this.addEventListener('error', callBack);
+    }
+    // >娑堟伅鍙戦��
+    send(message) {
+        if (this.socket && this.socket.readyState === WebSocket.OPEN) {
+            this.socket.send({
+				data:message,				
+			});
+        } else {
+            console.error('[WebSocket] 鏈繛鎺�');
+        }
+    }
+
+    // !鍒濆鍖栬繛鎺�
+    connect() {
+        if (this.reconnectAttempts === 0) {
+            this.log('WebSocket', `鍒濆鍖栬繛鎺ヤ腑...          ${this.url}`);
+        }
+        if (this.socket && this.socket.readyState === WebSocket.OPEN) {
+            return;
+        }
+        this.socket = uni.connectSocket({
+			url: this.url,
+			complete: ()=> {}
+		});
+		this.socket.onOpen((event)=>{			
+			this.stopWs = false;
+			// 閲嶇疆閲嶈繛灏濊瘯鎴愬姛杩炴帴
+			this.reconnectAttempts = 0;
+			// 鍦ㄨ繛鎺ユ垚鍔熸椂鍋滄褰撳墠鐨勫績璺虫娴嬪苟閲嶆柊鍚姩
+			this.startHeartbeat();			
+			this.log('WebSocket', `杩炴帴鎴愬姛,绛夊緟鏈嶅姟绔暟鎹帹閫乕onopen]...     ${this.url}`);
+			this.dispatchEvent('open', event);
+		})
+        // !websocket杩炴帴鎴愬姛
+        // this.socket.onOpen = event => {			
+        //     this.stopWs = false;
+        //     // 閲嶇疆閲嶈繛灏濊瘯鎴愬姛杩炴帴
+        //     this.reconnectAttempts = 0;
+        //     // 鍦ㄨ繛鎺ユ垚鍔熸椂鍋滄褰撳墠鐨勫績璺虫娴嬪苟閲嶆柊鍚姩
+        //     this.startHeartbeat();			
+        //     this.log('WebSocket', `杩炴帴鎴愬姛,绛夊緟鏈嶅姟绔暟鎹帹閫乕onopen]...     ${this.url}`);
+        //     this.dispatchEvent('open', event);
+        // };
+		this.socket.onMessage((event)=>{
+			this.dispatchEvent('message', event);
+			this.startHeartbeat();
+		})
+   //      this.socket.onMessage = event => {
+			// console.log(event)
+           // this.dispatchEvent('message', event);
+           // this.startHeartbeat();
+   //      };
+		this.socket.onClose((event)=>{
+			if (this.reconnectAttempts === 0) {
+			    this.log('WebSocket', `杩炴帴鏂紑[onclose]...    ${this.url}`);
+			}
+			if (!this.stopWs) {
+			    this.handleReconnect();
+			}
+			this.dispatchEvent('close', event);
+		})
+        // this.socket.onClose = event => {
+        //     if (this.reconnectAttempts === 0) {
+        //         this.log('WebSocket', `杩炴帴鏂紑[onclose]...    ${this.url}`);
+        //     }
+        //     if (!this.stopWs) {
+        //         this.handleReconnect();
+        //     }
+        //     this.dispatchEvent('close', event);
+        // };
+		this.socket.onError((event)=>{
+			if (this.reconnectAttempts === 0) {
+			    this.log('WebSocket', `杩炴帴寮傚父[onerror]...    ${this.url}`);
+			}
+			if (!this.stopWs) {
+			    this.handleReconnect();
+			}
+			this.closeHeartbeat();
+			this.dispatchEvent('error', event);
+		})
+		
+		// uni.onSocketError((event)=>{
+		// 	console.log("333")
+		// 	if (this.reconnectAttempts === 0) {
+		// 	    this.log('WebSocket', `杩炴帴寮傚父[onerror]...    ${this.url}`);
+		// 	}
+		// 	if (!this.stopWs) {
+		// 	    this.handleReconnect();
+		// 	}
+		// 	this.closeHeartbeat();
+		// 	this.dispatchEvent('error', event);
+		// })
+        // this.socket.onError = event => {
+        //     if (this.reconnectAttempts === 0) {
+        //         this.log('WebSocket', `杩炴帴寮傚父[onerror]...    ${this.url}`);
+        //     }
+        //     this.closeHeartbeat();
+        //     this.dispatchEvent('error', event);
+        // };
+    }
+
+    // > 鏂綉閲嶈繛閫昏緫
+    handleReconnect() {
+        if (this.reconnectAttempts < this.maxReconnectAttempts) {
+            this.reconnectAttempts++;
+            this.log('WebSocket', `灏濊瘯閲嶈繛... (${this.reconnectAttempts}/${this.maxReconnectAttempts})       ${this.url}`);
+            setTimeout(() => {
+                this.connect();
+            }, this.reconnectInterval);
+        } else {
+			plus.runtime.restart();
+            // this.closeHeartbeat();
+            // this.log('WebSocket', `鏈�澶ч噸杩炲け璐ワ紝缁堟閲嶈繛: ${this.url}`);
+        }
+    }
+
+    // >鍏抽棴杩炴帴
+    close() {
+        if (this.socket) {
+            this.stopWs = true;
+            this.socket.close();
+            this.socket = null;
+            this.removeEventListener('open');
+            this.removeEventListener('message');
+            this.removeEventListener('close');
+            this.removeEventListener('error');
+        }
+        this.closeHeartbeat();
+    }
+
+    // >寮�濮嬪績璺虫娴� -> 瀹氭椂鍙戦�佸績璺虫秷鎭�
+    startHeartbeat() {		
+        if (this.stopWs) return;
+        if (this.heartbeatTimer) {
+            this.closeHeartbeat();
+        }
+        this.heartbeatTimer = setInterval(() => {
+            if (this.socket) {
+                this.socket.send({
+                	data: JSON.stringify({ type: 'heartBeat', data: {} }),
+                	
+                });
+                this.log('WebSocket', '閫佸績璺虫暟鎹�...');
+            } else {
+                console.error('[WebSocket] 鏈繛鎺�');
+            }
+        }, this.heartbeatInterval);
+    }
+
+    // >鍏抽棴蹇冭烦
+    closeHeartbeat() {
+        clearInterval(this.heartbeatTimer);
+        this.heartbeatTimer = undefined;
+    }
+}
\ No newline at end of file
diff --git a/Monitor-APP/static/js/WebSocketClient02.js b/Monitor-APP/static/js/WebSocketClient02.js
new file mode 100644
index 0000000..7ea8584
--- /dev/null
+++ b/Monitor-APP/static/js/WebSocketClient02.js
@@ -0,0 +1,141 @@
+// import { EventDispatcher } from './dispatcher';
+
+export class WebSocketClient extends EventDispatcher {
+    // #socket閾炬帴
+    url = '';
+    // #socket瀹炰緥
+    socket = null;
+    // #閲嶈繛娆℃暟
+    reconnectAttempts = 0;
+    // #鏈�澶ч噸杩炴暟
+    maxReconnectAttempts = 5;
+    // #閲嶈繛闂撮殧
+    reconnectInterval = 10000; // 10 seconds
+    // #鍙戦�佸績璺虫暟鎹棿闅�
+    heartbeatInterval = 1000 * 30;
+    // #璁℃椂鍣╥d
+    heartbeatTimer = undefined;
+    // #褰诲簳缁堟ws
+    stopWs = false;
+    // *鏋勯�犲嚱鏁�
+    constructor(url) {
+        super();
+        this.url = url;
+    }
+    // >鐢熷懡鍛ㄦ湡閽╁瓙
+    onopen(callBack) {
+        this.addEventListener('open', callBack);
+    }
+    onmessage(callBack) {
+        this.addEventListener('message', callBack);
+    }
+    onclose(callBack) {
+        this.addEventListener('close', callBack);
+    }
+    onerror(callBack) {
+        this.addEventListener('error', callBack);
+    }
+    // >娑堟伅鍙戦��
+    send(message) {
+        if (this.socket && this.socket.readyState === WebSocket.OPEN) {
+            this.socket.send(message);
+        } else {
+            console.error('[WebSocket] 鏈繛鎺�');
+        }
+    }
+
+    // !鍒濆鍖栬繛鎺�
+    connect() {
+        if (this.reconnectAttempts === 0) {
+            this.log('WebSocket', `鍒濆鍖栬繛鎺ヤ腑...          ${this.url}`);
+        }
+        if (this.socket && this.socket.readyState === WebSocket.OPEN) {
+            return;
+        }
+        this.socket = new WebSocket(this.url);
+
+        // !websocket杩炴帴鎴愬姛
+        this.socket.onopen = event => {
+            this.stopWs = false;
+            // 閲嶇疆閲嶈繛灏濊瘯鎴愬姛杩炴帴
+            this.reconnectAttempts = 0;
+            // 鍦ㄨ繛鎺ユ垚鍔熸椂鍋滄褰撳墠鐨勫績璺虫娴嬪苟閲嶆柊鍚姩
+            this.startHeartbeat();
+            this.log('WebSocket', `杩炴帴鎴愬姛,绛夊緟鏈嶅姟绔暟鎹帹閫乕onopen]...     ${this.url}`);
+            this.dispatchEvent('open', event);
+        };
+
+        this.socket.onmessage = event => {
+            this.dispatchEvent('message', event);
+            this.startHeartbeat();
+        };
+
+        this.socket.onclose = event => {
+            if (this.reconnectAttempts === 0) {
+                this.log('WebSocket', `杩炴帴鏂紑[onclose]...    ${this.url}`);
+            }
+            if (!this.stopWs) {
+                this.handleReconnect();
+            }
+            this.dispatchEvent('close', event);
+        };
+
+        this.socket.onerror = event => {
+            if (this.reconnectAttempts === 0) {
+                this.log('WebSocket', `杩炴帴寮傚父[onerror]...    ${this.url}`);
+            }
+            this.closeHeartbeat();
+            this.dispatchEvent('error', event);
+        };
+    }
+
+    // > 鏂綉閲嶈繛閫昏緫
+    handleReconnect() {
+        if (this.reconnectAttempts < this.maxReconnectAttempts) {
+            this.reconnectAttempts++;
+            this.log('WebSocket', `灏濊瘯閲嶈繛... (${this.reconnectAttempts}/${this.maxReconnectAttempts})       ${this.url}`);
+            setTimeout(() => {
+                this.connect();
+            }, this.reconnectInterval);
+        } else {
+            this.closeHeartbeat();
+            this.log('WebSocket', `鏈�澶ч噸杩炲け璐ワ紝缁堟閲嶈繛: ${this.url}`);
+        }
+    }
+
+    // >鍏抽棴杩炴帴
+    close() {
+        if (this.socket) {
+            this.stopWs = true;
+            this.socket.close();
+            this.socket = null;
+            this.removeEventListener('open');
+            this.removeEventListener('message');
+            this.removeEventListener('close');
+            this.removeEventListener('error');
+        }
+        this.closeHeartbeat();
+    }
+
+    // >寮�濮嬪績璺虫娴� -> 瀹氭椂鍙戦�佸績璺虫秷鎭�
+    startHeartbeat() {
+        if (this.stopWs) return;
+        if (this.heartbeatTimer) {
+            this.closeHeartbeat();
+        }
+        this.heartbeatTimer = setInterval(() => {
+            if (this.socket) {
+                this.socket.send(JSON.stringify({ type: 'heartBeat', data: {} }));
+                this.log('WebSocket', '閫佸績璺虫暟鎹�...');
+            } else {
+                console.error('[WebSocket] 鏈繛鎺�');
+            }
+        }, this.heartbeatInterval);
+    }
+
+    // >鍏抽棴蹇冭烦
+    closeHeartbeat() {
+        clearInterval(this.heartbeatTimer);
+        this.heartbeatTimer = undefined;
+    }
+}
\ No newline at end of file
diff --git a/Monitor-APP/static/js/dispatcher.js b/Monitor-APP/static/js/dispatcher.js
new file mode 100644
index 0000000..8259b48
--- /dev/null
+++ b/Monitor-APP/static/js/dispatcher.js
@@ -0,0 +1,41 @@
+class Log {
+    static console = true;
+    log(title, text) {
+        // if (!Log.console) return;
+        // if (import.meta.env.MODE === 'production') return;
+        const color = '#ff4d4f';
+        console.log(
+            `%c ${title} %c ${text} %c`,
+            `background:${color};border:1px solid ${color}; padding: 1px; border-radius: 2px 0 0 2px; color: #fff;`,
+            `border:1px solid ${color}; padding: 1px; border-radius: 0 2px 2px 0; color: ${color};`,
+            'background:transparent'
+        );
+    }
+    closeConsole() {
+        Log.console = false;
+    }
+}
+export class EventDispatcher extends Log {
+    listeners = {};
+
+    addEventListener(type, listener) {
+        if (!this.listeners[type]) {
+            this.listeners[type] = [];
+        }
+        if (this.listeners[type].indexOf(listener) === -1) {
+            this.listeners[type].push(listener);
+        }
+    }
+
+    removeEventListener(type) {
+        this.listeners[type] = [];
+    }
+
+    dispatchEvent(type, data) {
+        const listenerArray = this.listeners[type] || [];
+        if (listenerArray.length === 0) return;
+        listenerArray.forEach(listener => {
+            listener.call(this, data);
+        });
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1