From d13a01d1769f29b336e5b9f8612c6d41aaabbbb1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 22 十一月 2024 20:42:20 +0800
Subject: [PATCH] #读取地图文件优化

---
 src/main/webapp/views/console.html |  221 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 158 insertions(+), 63 deletions(-)

diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 6fbc391..1f9a9dd 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -31,19 +31,19 @@
 							</div>
 							<div v-else-if="col.value == 4">
 								<!-- 绔欑偣 -->
-								<div class="site" @click="openSite(col.data)">{{col.data}}</div>
+								<div class="site" :id="'site-' + col.data" @click="openSite(col.data)">{{col.data}}</div>
 							</div>
 							<div v-else-if="col.value == 5">
 								<!-- 鍏呯數妗� -->
 								<div class="item" style="font-size: 24px">&#9889;</div>
 							</div>
-							<div v-else-if="col.value < 0">
-								<!-- 绂佹鏄剧ず鍖哄煙 -->
-								<div class="item" style="visibility: hidden">{{idx}}</div>
-							</div>
 							<div v-else-if="col.value == -999">
 								<!-- 璺緞鍗犵敤鍖哄煙 -->
 								<div class="item" style="background:#f83333;color: #fff;">{{idx}}</div>
+							</div>
+							<div v-else-if="col.value < 0">
+								<!-- 绂佹鏄剧ず鍖哄煙 -->
+								<div class="item" style="visibility: hidden">{{idx}}</div>
 							</div>
 							<div v-else>
 								<div class="item" v-if="col.data.length > 0">{{col.data}}</div>
@@ -73,10 +73,11 @@
 				<!--杈撳嚭妤煎眰-->
 				<div style="height: 100%;">
 					<div class="floorBtnBox" v-for="(lev,idx) in floorList">
-						<el-button @click="changFloor(lev)">{{lev}}F</el-button>
+						<el-button :style="{background:currentLev === lev ? '#7DCDFF':''}" @click="changFloor(lev)">{{lev}}F</el-button>
 					</div>
 					<div>
-						<el-button @click="testMove()">娴嬭瘯绉诲姩杞�</el-button>
+<!--						<el-button @click="testMove()">娴嬭瘯绉诲姩杞�</el-button>-->
+<!--						<el-button @click="resetMap()">閲嶇疆鍦板浘</el-button>-->
 					</div>
 				</div>
 			</div>
@@ -186,7 +187,7 @@
 							<li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
 						</div>
 						<div id="barcode1" class="table-body">
-
+							<li v-for="(item,index) in codeList1" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li>
 						</div>
 					</div>
 					<div class="tablebox">
@@ -194,7 +195,7 @@
 							<li><span>鏉$爜鍚嶇О</span><span class="right">鎵爜鏃堕棿</span></li>
 						</div>
 						<div id="barcode2" class="table-body">
-
+							<li v-for="(item,index) in codeList2" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li>
 						</div>
 					</div>
 				</div>
@@ -339,6 +340,9 @@
 					liftList: [], //鎻愬崌鏈洪泦鍚�
 					systemStatus: true,//绯荤粺杩愯鐘舵��
 					consoleInterval: null,//瀹氭椂鍣ㄥ瓨鍌ㄥ彉閲�
+					codeList1: [],//鏉$爜List
+					codeList2: [],//鏉$爜List
+					ws: null,
 				},
 				created() {
 					this.init()
@@ -348,31 +352,39 @@
 				},
 				methods: {
 					init() {
+						this.ws = new WebSocket("ws://" + window.location.host + baseUrl + "/console/websocket");
+						this.ws.onopen = this.webSocketOnOpen
+						this.ws.onerror = this.webSocketOnError
+						this.ws.onmessage = this.webSocketOnMessage
+						this.ws.onclose = this.webSocketClose
+
 						this.getMap(this.currentLev)
 						this.getSystemRunningStatus() //鑾峰彇绯荤粺杩愯鐘舵��
 
 						this.consoleInterval = setInterval(() => {
 							this.getShuttleStateInfo() //鑾峰彇鍥涘悜绌挎杞︿俊鎭�
 							this.getLiftStateInfo() //鑾峰彇鎻愬崌鏈轰俊鎭�
+							this.getSiteInfo() //鑾峰彇杈撻�佺珯鐐规暟鎹�
+							this.getMap(this.currentLev) //鑾峰彇瀹炴椂鍦板浘鏁版嵁
+							this.getCodeData()//鑾峰彇鏉$爜
 						}, 1000)
 					},
 					//鑾峰彇鍦板浘鏁版嵁
 					getMap(lev) {
-						$.ajax({
-							type: "get",
-							url: baseUrl + "/console/map/" + lev + "/auth",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							success: (res) => {
-								let data = res.data
-								let tmp = []
-								for (let i = 1; i < data.length - 1; i++) {
-									tmp.push(data[i])
-								}
-								this.map = tmp
-							}
-						})
+						this.sendWs(JSON.stringify({
+							"url": "/console/map/auth",
+							"data": lev
+						}))
+					},
+					setMap(res) {
+						//鑾峰彇鍦板浘鏁版嵁
+						let data = res.data
+						let tmp = []
+						for (let i = 1; i < data.length - 1; i++) {
+							tmp.push(data[i])
+						}
+						// console.log(tmp)
+						this.map = tmp
 					},
 					openSite(id) {
 						this.siteWindow = true; //鎵撳紑绔欑偣淇℃伅寮圭獥
@@ -400,59 +412,79 @@
 
 						})
 					},
+					getSiteInfo() {
+						//鑾峰彇杈撻�佺珯鐐规暟鎹�
+						this.sendWs(JSON.stringify({
+							"url": "/console/latest/data/site",
+							"data": {}
+						}))
+					},
+					setSiteInfo(res) {
+						//鑾峰彇杈撻�佺珯鐐规暟鎹�
+						if (res.code === 200){
+							var sites = res.data;
+							for (var i = 0; i < sites.length; i++){
+								var siteEl = $("#site-"+sites[i].siteId);
+								siteEl.attr("class", "site " + sites[i].siteStatus);
+								if (sites[i].workNo != null && sites[i].workNo>0) {
+									siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
+								} else {
+									siteEl.html(sites[i].siteId);
+								}
+							}
+						} else if (res.code === 403){
+							parent.location.href = baseUrl+"/login";
+						}  else {
+							console.log(res.msg);
+						}
+					},
 					changFloor(lev) {
 						this.currentLev = lev
 						this.currentLevShuttleList = []
 						this.getMap(lev)
 					},
 					getShuttleStateInfo() {
+						this.sendWs(JSON.stringify({
+							"url": "/shuttle/table/shuttle/state",
+							"data": {}
+						}))
+					},
+					setShuttleStateInfo(res) {
 						// 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
 						let that = this
-						$.ajax({
-							url: baseUrl + "/shuttle/table/shuttle/state",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							method: 'POST',
-							success: function(res) {
-								if (res.code == 200) {
-									let currentLevShuttle = []//褰撳墠妤煎眰灏忚溅闆嗗悎
-									res.data.forEach((item,idx) => {
-										if (item.point != undefined && item.point != null) {
-											if (item.point.z == that.currentLev) {
-												currentLevShuttle.push(item);
-											}
-										}
-									})
-									that.currentLevShuttleList = currentLevShuttle
-									that.shuttleList = res.data
-
-									if (that.shuttleColorList.length == 0) {
-										let colorList = []//闅忔満灏忚溅棰滆壊
-										res.data.forEach((item,idx) => {
-											colorList[item.shuttleNo] = that.colorRGB()
-										})
-										that.shuttleColorList = colorList
+						if (res.code == 200) {
+							let currentLevShuttle = []//褰撳墠妤煎眰灏忚溅闆嗗悎
+							res.data.forEach((item,idx) => {
+								if (item != null && item.point != undefined && item.point != null) {
+									if (item.point.z == that.currentLev) {
+										currentLevShuttle.push(item);
 									}
 								}
+							})
+							that.currentLevShuttleList = currentLevShuttle
+							that.shuttleList = res.data
+
+							if (that.shuttleColorList.length == 0) {
+								let colorList = []//闅忔満灏忚溅棰滆壊
+								res.data.forEach((item,idx) => {
+									colorList[item.shuttleNo] = that.colorRGB()
+								})
+								that.shuttleColorList = colorList
 							}
-						});
+						}
 					},
 					getLiftStateInfo() {
 						// 鎻愬崌鏈轰俊鎭〃鑾峰彇
-						let that = this
-						$.ajax({
-							url: baseUrl + "/lift/table/lift/state",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							method: 'POST',
-							success: function(res) {
-								if (res.code == 200) {
-									that.liftList = res.data
-								}
-							}
-						});
+						this.sendWs(JSON.stringify({
+							"url": "/lift/table/lift/state",
+							"data": {}
+						}))
+					},
+					setLiftStateInfo(res) {
+						// 鎻愬崌鏈轰俊鎭〃鑾峰彇
+						if (res.code == 200) {
+							this.liftList = res.data
+						}
 					},
 					systemSwitch() {
 						// 绯荤粺寮�鍏�
@@ -611,6 +643,69 @@
 							}
 						}
 						return data;//杩斿洖灏忚溅鍙烽泦鍚�
+					},
+					resetMap() {
+						//閲嶇疆鍦板浘
+						let that = this
+						$.ajax({
+							url:baseUrl+"/console/map/resetMap/" + this.currentLev,
+							headers:{
+								'token': localStorage.getItem('token')
+							},
+							data:{},
+							method:'get',
+							success:function (res) {
+								that.$message({
+									message: that.currentLev + '灞傚湴鍥鹃噸缃畬鎴�',
+									type: 'success'
+								});
+							}
+						})
+					},
+					getCodeData(){
+						this.sendWs(JSON.stringify({
+							"url": "/console/barcode/output/site",
+							"data": {}
+						}))
+					},
+					setCodeData(res) {
+						if(res.code === 200){
+							let data = JSON.parse(res.data)
+							if (data.length <= 5) {
+								this.codeList1 = data;
+							} else {
+								this.codeList1 = data.slice(0, 5);
+								this.codeList2 = data.splice(5, 10);
+							}
+						}
+					},
+					webSocketOnOpen(e) {
+						console.log("open");
+					},
+					webSocketOnError(e) {
+						console.log(e);
+					},
+					webSocketOnMessage(e) {
+						const result = JSON.parse(e.data);
+						if (result.url == "/shuttle/table/shuttle/state") {
+							this.setShuttleStateInfo(JSON.parse(result.data))
+						}else if (result.url == "/lift/table/lift/state") {
+							this.setLiftStateInfo(JSON.parse(result.data))
+						}else if (result.url == "/console/latest/data/site") {
+							this.setSiteInfo(JSON.parse(result.data))
+						}else if (result.url == "/console/map/auth") {
+							this.setMap(JSON.parse(result.data))
+						}else if (result.url == "/console/barcode/output/site") {
+							this.setCodeData(JSON.parse(result.data))
+						}
+					},
+					webSocketClose(e) {
+						console.log("close");
+					},
+					sendWs(message) {
+						if (this.ws.readyState == WebSocket.OPEN) {
+							this.ws.send(message)
+						}
 					}
 				}
 			})

--
Gitblit v1.9.1