From 728ad81fa10d2879654c5f9ae4314db94eafb865 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 01 八月 2025 08:08:18 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/shuttleNew.html |   98 ++++++++++++++++++++++++++----------------------
 1 files changed, 53 insertions(+), 45 deletions(-)

diff --git a/src/main/webapp/views/shuttleNew.html b/src/main/webapp/views/shuttleNew.html
index 422bbf5..ef80807 100644
--- a/src/main/webapp/views/shuttleNew.html
+++ b/src/main/webapp/views/shuttleNew.html
@@ -106,10 +106,10 @@
                             </select>
                         </div>
                     </div>
-                    <div class="overflow-x-auto" style="height: 500px;">
+                    <div class="overflow-auto" style="height: 500px;">
                         <table class="w-full table-striped">
                             <thead>
-                            <tr class="text-left text-slate-300 border-b border-slate-600">
+                            <tr class="text-left text-slate-300 border-b border-slate-600 bg-slate-800 sticky top-0 z-10">
                                 <th class="py-3 px-4">缂栧彿</th>
                                 <th class="py-3 px-4">宸ヤ綔鍙�</th>
                                 <th class="py-3 px-4">浠诲姟鐘舵��</th>
@@ -131,39 +131,39 @@
                             </tr>
                             </thead>
                             <tbody>
-                            <tr v-for="(item,idx) in shuttleList" :key="idx" class="hover:bg-slate-700">
-                                <td class="py-3 px-4">{{ item.shuttleNo }}</td>
-                                <td class="py-3 px-4">{{ item.taskNo }}</td>
-                                <td class="py-3 px-4">{{ item.protocolStatus$ }}</td>
-                                <td class="py-3 px-4">{{ item.deviceStatus$ }}</td>
-                                <td class="py-3 px-4">{{ item.mode$ }}</td>
-                                <td class="py-3 px-4">{{ item.currentLocNo }}</td>
-                                <td class="py-3 px-4">{{ item.currentCode }}</td>
-                                <td class="py-3 px-4">
-                                    <div class="w-full bg-gray-200 rounded-full h-2.5">
-                                        <div v-if="item.batteryPower>=70&&item.batteryPower<=100">
-                                            <div class="bg-green-500 h-2.5 rounded-full" :style="{width: item.batteryPower + '%'}"></div>
+                                <tr v-for="(item,idx) in shuttleList" :key="idx" class="hover:bg-slate-700">
+                                    <td class="py-3 px-4">{{ item.shuttleNo }}</td>
+                                    <td class="py-3 px-4">{{ item.taskNo }}</td>
+                                    <td class="py-3 px-4">{{ item.protocolStatus$ }}</td>
+                                    <td class="py-3 px-4">{{ item.deviceStatus$ }}</td>
+                                    <td class="py-3 px-4">{{ item.mode$ }}</td>
+                                    <td class="py-3 px-4">{{ item.currentLocNo }}</td>
+                                    <td class="py-3 px-4">{{ item.currentCode }}</td>
+                                    <td class="py-3 px-4">
+                                        <div class="w-full bg-gray-200 rounded-full h-2.5">
+                                            <div v-if="item.batteryPower>=70&&item.batteryPower<=100">
+                                                <div class="bg-green-500 h-2.5 rounded-full" :style="{width: item.batteryPower + '%'}"></div>
+                                            </div>
+                                            <div v-else-if="item.batteryPower>=40&&item.batteryPower<70">
+                                                <div class="bg-yellow-500 h-2.5 rounded-full" :style="{width: item.batteryPower + '%'}"></div>
+                                            </div>
+                                            <div v-else>
+                                                <div class="red h-2.5 rounded-full" :style="{width: item.batteryPower + '%'}"></div>
+                                            </div>
                                         </div>
-                                        <div v-else-if="item.batteryPower>=40&&item.batteryPower<70">
-                                            <div class="bg-yellow-500 h-2.5 rounded-full" :style="{width: item.batteryPower + '%'}"></div>
-                                        </div>
-                                        <div v-else>
-                                            <div class="red h-2.5 rounded-full" :style="{width: item.batteryPower + '%'}"></div>
-                                        </div>
-                                    </div>
-                                    <span class="text-xs text-gray-500">{{ item.batteryPower }}%</span>
-                                </td>
-                                <td class="py-3 px-4">{{ item.extend.voltage }}</td>
-                                <td class="py-3 px-4">{{ item.speed }}</td>
-                                <td class="py-3 px-4">{{ item.hasPallet$ }}</td>
-                                <td class="py-3 px-4">{{ item.hasLift$ }}</td>
-                                <td class="py-3 px-4">{{ item.hasCharge$ }}</td>
-                                <td class="py-3 px-4">{{ item.statusErrorCode$ }}</td>
-<!--                                <td class="py-3 px-4">{{ item.suspendState }}</td>-->
-                                <td class="py-3 px-4">{{ item.lowerPower }}</td>
-                                <td class="py-3 px-4">{{ item.demo$ }}</td>
-                                <td class="py-3 px-4">{{ item.pakMk$ }}</td>
-                            </tr>
+                                        <span class="text-xs text-gray-500">{{ item.batteryPower }}%</span>
+                                    </td>
+                                    <td class="py-3 px-4">{{ item.extend.voltage }}</td>
+                                    <td class="py-3 px-4">{{ item.speed }}</td>
+                                    <td class="py-3 px-4">{{ item.hasPallet$ }}</td>
+                                    <td class="py-3 px-4">{{ item.hasLift$ }}</td>
+                                    <td class="py-3 px-4">{{ item.hasCharge$ }}</td>
+                                    <td class="py-3 px-4">{{ item.statusErrorCode$ }}</td>
+    <!--                                <td class="py-3 px-4">{{ item.suspendState }}</td>-->
+                                    <td class="py-3 px-4">{{ item.lowerPower }}</td>
+                                    <td class="py-3 px-4">{{ item.demo$ }}</td>
+                                    <td class="py-3 px-4">{{ item.pakMk$ }}</td>
+                                </tr>
                             </tbody>
                         </table>
                     </div>
@@ -202,7 +202,7 @@
                         </div>
                     </div>
                     <div class="bg-slate-700 p-4 rounded-lg">
-                        <h3 class="text-lg font-medium mb-2">璁惧缁存姢</h3>
+                        <h3 class="text-lg font-medium mb-2">璁惧鎸囦护</h3>
                         <div class="flex flex-wrap gap-2" style="display: flex;justify-content: center;">
                             <button class="btn bg-slate-600 hover:bg-slate-500" @click="shuttleOperator('palletLift')">
                                 <i class="fas fa-level-up mr-1"></i>鎵樼洏椤跺崌
@@ -406,9 +406,9 @@
         },
         methods: {
             init() {
-                this.websocketConnect();
-
                 this.consoleInterval = setInterval(() => {
+                    this.websocketConnect();
+
                     this.getShuttleStateInfo() //鑾峰彇鍥涘悜绌挎杞︿俊鎭�
                 }, 1000)
             },
@@ -545,6 +545,8 @@
                     requestParam.distLocNo = this.controlData.targetLocNo;
                 }else if (type == 'palletLift') {
                     requestParam.shuttleTaskMode = 1;
+                }else if (type == 'palletDown') {
+                    requestParam.shuttleTaskMode = 2;
                 }else if (type == 'chargeOn') {
                     requestParam.shuttleTaskMode = 15;
                 }else if (type == 'chargeOff') {
@@ -592,18 +594,20 @@
                 });
             },
             websocketConnect() {
-                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
+                if (this.ws == null) {
+                    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
+                }
             },
             webSocketOnOpen(e) {
                 console.log("open");
             },
             webSocketOnError(e) {
+                this.ws = null;
                 console.log(e);
-                this.websocketConnect();
             },
             webSocketOnMessage(e) {
                 const result = JSON.parse(e.data);
@@ -612,12 +616,16 @@
                 }
             },
             webSocketClose(e) {
+                this.ws = null;
                 console.log("close");
-                this.websocketConnect();
             },
             sendWs(message) {
+                if (this.ws == null) {
+                    return;
+                }
+
                 if (this.ws.readyState == WebSocket.OPEN) {
-                    this.ws.send(message)
+                    this.ws.send(message);
                 }
             }
         }

--
Gitblit v1.9.1