From 6e42ae6d4cd07c4740b89221cd2e83e18d925242 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 24 十一月 2023 13:19:44 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/shuttle2.html |   10 
 src/main/webapp/views/console.html  |   15 +
 src/main/webapp/views/shuttle.html  |  536 +++++++++++++++++++++++++++++------------------------
 3 files changed, 315 insertions(+), 246 deletions(-)

diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 0199eea..8fc40bb 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -414,7 +414,10 @@
 					},
 					getSiteInfo() {
 						//鑾峰彇杈撻�佺珯鐐规暟鎹�
-						this.sendWs("{\"url\":\"/console/latest/data/site\",\"data\":{}}")
+						this.sendWs(JSON.stringify({
+							"url": "/console/latest/data/site",
+							"data": {}
+						}))
 					},
 					setSiteInfo(res) {
 						//鑾峰彇杈撻�佺珯鐐规暟鎹�
@@ -441,7 +444,10 @@
 						this.getMap(lev)
 					},
 					getShuttleStateInfo() {
-						this.sendWs("{\"url\":\"/shuttle/table/shuttle/state\",\"data\":{}}")
+						this.sendWs(JSON.stringify({
+							"url": "/shuttle/table/shuttle/state",
+							"data": {}
+						}))
 					},
 					setShuttleStateInfo(res) {
 						// 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
@@ -469,7 +475,10 @@
 					},
 					getLiftStateInfo() {
 						// 鎻愬崌鏈轰俊鎭〃鑾峰彇
-						this.sendWs("{\"url\":\"/lift/table/lift/state\",\"data\":{}}")
+						this.sendWs(JSON.stringify({
+							"url": "/lift/table/lift/state",
+							"data": {}
+						}))
 					},
 					setLiftStateInfo(res) {
 						// 鎻愬崌鏈轰俊鎭〃鑾峰彇
diff --git a/src/main/webapp/views/shuttle.html b/src/main/webapp/views/shuttle.html
index e038a00..6aef835 100644
--- a/src/main/webapp/views/shuttle.html
+++ b/src/main/webapp/views/shuttle.html
@@ -13,180 +13,180 @@
     <script type="text/javascript" src="../static/js/common.js"></script>
 </head>
 <body>
-    <div style="padding: 10px;height: 100%;float: left;width: 6%">
-        <div class="button-window"></div>
-    </div>
-    <div style="height: 100%;padding-left: 6%">
-        <div style="padding: 10px;height: 100%">
-            <!-- 鏃ュ織鐩戞帶鏉� -->
-            <div class="log-board">
-<!--                <div class="command-log" id="commandLogId" style="width: 5%;">-->
-<!--&lt;!&ndash;                    <div data-shuttleNo="1" class="shuttle-command-item">&ndash;&gt;-->
-<!--&lt;!&ndash;                        <label>1#</label>&ndash;&gt;-->
-<!--&lt;!&ndash;                        <button class="demoBtn pos-btn">鏁版嵁缁存姢</button>&ndash;&gt;-->
-<!--&lt;!&ndash;                        <button id="mode-1" class="demoBtn mode-btn" >璁惧淇℃伅</button>&ndash;&gt;-->
-<!--&lt;!&ndash;                    </div>&ndash;&gt;-->
-<!--                </div>-->
-                <!-- 鍫嗗灈鏈虹姸鎬佷綅淇℃伅 -->
-                <div class="shuttle-state" style="width: 100%;">
-                    <table id="shuttle-state-table">
-                        <thead>
-                            <tr>
-                                <th>鍥涘悜绌挎杞�</th>
-                                <th>浠诲姟鐘舵��</th>
-                                <th>灏忚溅鐘舵��</th>
-                                <th>宸ヤ綔妯″紡</th>
-                                <th>瀹為檯搴撲綅</th>
-                                <th>瀹為檯鍧愭爣</th>
-                                <th>鐢甸噺</th>
-                                <th>褰撳墠閫熷害</th>
-                                <th>璐熻浇鐘舵��</th>
-                                <th>椤跺崌浣嶇疆</th>
-                                <th>杩愯鏂瑰悜</th>
-                                <th>杩愯鏂瑰悜2</th>
-                                <th>鍏呯數鐘舵��</th>
-                                <th>鏁呴殰鐘舵��</th>
-                                <th>鏁呴殰鐮�</th>
-                                <th>绠″埗鐘舵��</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-            <!-- 绌挎杞︾姸鎬� -->
-            <div class="shuttle-msg">
-                <table id="shuttle-msg-table">
+<div style="padding: 10px;height: 100%;float: left;width: 6%">
+    <div class="button-window"></div>
+</div>
+<div style="height: 100%;padding-left: 6%">
+    <div style="padding: 10px;height: 100%">
+        <!-- 鏃ュ織鐩戞帶鏉� -->
+        <div class="log-board">
+            <!--                <div class="command-log" id="commandLogId" style="width: 5%;">-->
+            <!--&lt;!&ndash;                    <div data-shuttleNo="1" class="shuttle-command-item">&ndash;&gt;-->
+            <!--&lt;!&ndash;                        <label>1#</label>&ndash;&gt;-->
+            <!--&lt;!&ndash;                        <button class="demoBtn pos-btn">鏁版嵁缁存姢</button>&ndash;&gt;-->
+            <!--&lt;!&ndash;                        <button id="mode-1" class="demoBtn mode-btn" >璁惧淇℃伅</button>&ndash;&gt;-->
+            <!--&lt;!&ndash;                    </div>&ndash;&gt;-->
+            <!--                </div>-->
+            <!-- 鍫嗗灈鏈虹姸鎬佷綅淇℃伅 -->
+            <div class="shuttle-state" style="width: 100%;">
+                <table id="shuttle-state-table">
                     <thead>
-                        <tr>
-                            <th>鍥涘悜绌挎杞�</th>
-                            <th>宸ヤ綔鍙�</th>
-                            <th>婧愬簱浣�</th>
-                            <th>鐩爣搴撲綅</th>
-                            <th>鏈�楂樼數鑺數鍘�</th>
-                            <th>鏈�浣庣數鑺數鍘�</th>
-                            <th>鐢垫睜鐢靛帇</th>
-                            <th>鍏呮斁鐢靛惊鐜鏁�</th>
-                            <th>鍓╀綑鐢甸噺</th>
-                            <th>鎬荤數閲�</th>
-                            <th>鎬婚噷绋嬫暟</th>
-                            <th>浣滀笟鏍囪</th>
-                            <th>褰撳墠搴撲綅</th>
-                            <th>浠ょ墝</th>
-                        </tr>
+                    <tr>
+                        <th>鍥涘悜绌挎杞�</th>
+                        <th>浠诲姟鐘舵��</th>
+                        <th>灏忚溅鐘舵��</th>
+                        <th>宸ヤ綔妯″紡</th>
+                        <th>瀹為檯搴撲綅</th>
+                        <th>瀹為檯鍧愭爣</th>
+                        <th>鐢甸噺</th>
+                        <th>褰撳墠閫熷害</th>
+                        <th>璐熻浇鐘舵��</th>
+                        <th>椤跺崌浣嶇疆</th>
+                        <th>杩愯鏂瑰悜</th>
+                        <th>杩愯鏂瑰悜2</th>
+                        <th>鍏呯數鐘舵��</th>
+                        <th>鏁呴殰鐘舵��</th>
+                        <th>鏁呴殰鐮�</th>
+                        <th>绠″埗鐘舵��</th>
+                        <th>浣庣數閲�</th>
+                    </tr>
                     </thead>
                     <tbody>
                     </tbody>
                 </table>
             </div>
-            <!-- 鎵嬪姩鎿嶄綔 -->
-            <div class="shuttle-operation">
-                <!-- 閬僵灞� -->
-                <div class="shuttle-operation-shade">
+        </div>
+        <!-- 绌挎杞︾姸鎬� -->
+        <div class="shuttle-msg">
+            <table id="shuttle-msg-table">
+                <thead>
+                <tr>
+                    <th>鍥涘悜绌挎杞�</th>
+                    <th>宸ヤ綔鍙�</th>
+                    <th>婧愬簱浣�</th>
+                    <th>鐩爣搴撲綅</th>
+                    <th>鏈�楂樼數鑺數鍘�</th>
+                    <th>鏈�浣庣數鑺數鍘�</th>
+                    <th>鐢垫睜鐢靛帇</th>
+                    <th>鍏呮斁鐢靛惊鐜鏁�</th>
+                    <th>鍓╀綑鐢甸噺</th>
+                    <th>鎬荤數閲�</th>
+                    <th>鎬婚噷绋嬫暟</th>
+                    <th>浣滀笟鏍囪</th>
+                    <th>褰撳墠搴撲綅</th>
+                    <th>浠ょ墝</th>
+                </tr>
+                </thead>
+                <tbody>
+                </tbody>
+            </table>
+        </div>
+        <!-- 鎵嬪姩鎿嶄綔 -->
+        <div class="shuttle-operation">
+            <!-- 閬僵灞� -->
+            <div class="shuttle-operation-shade">
                     <span class="shuttle-operation-shade-span">
                         WCS 绯荤粺杩愯涓紝璇峰仠姝㈠悗鎿嶄綔
                     </span>
-                </div>
-                <!-- 璁惧浠诲姟閫夋嫨 -->
-                <div class="task-select">
-                    <!-- 閫夋嫨 -->
-                    <div id="shuttle-select" class="operator-item" style="width: 100%;">
-                        <span class="select-title">鍥涘悜绌挎杞﹀彿</span>
-                        <div class="select-container" id="shuttleRadioBoxId" style="display: flex;flex-wrap: wrap;justify-content: center;align-items: center;">
-<!--                            <label><input type="radio" name="shuttleSelect" value="1" checked>&nbsp;1鍙风┛姊溅</label>-->
-                        </div>
+            </div>
+            <!-- 璁惧浠诲姟閫夋嫨 -->
+            <div class="task-select">
+                <!-- 閫夋嫨 -->
+                <div id="shuttle-select" class="operator-item" style="width: 100%;">
+                    <span class="select-title">鍥涘悜绌挎杞﹀彿</span>
+                    <div class="select-container" id="shuttleRadioBoxId" style="display: flex;flex-wrap: wrap;justify-content: center;align-items: center;">
+                        <!--                            <label><input type="radio" name="shuttleSelect" value="1" checked>&nbsp;1鍙风┛姊溅</label>-->
                     </div>
                 </div>
+            </div>
 
-                <!-- 璁惧浠诲姟鎿嶄綔 -->
-                <div class="task-operator">
-                    <fieldset style="height: auto;padding-bottom: 20px;">
-                        <legend>鎵嬪姩鎿嶄綔</legend>
-                        <div style="display: flex;">
-                            <div style="width: 30%;">
-                                <div class="operator-item" style="height: auto;width: 100%;">
-                                    <span class="select-title">婧愬簱浣�/鐩爣搴撲綅</span>
-                                    <div class="select-container" style="height: auto;padding: 30px 10px 20px 10px;">
-                                        <div class="select-container-item">
-                                            <span>婧愬簱浣�</span>
-                                            <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
-                                        </div>
-                                        <div class="select-container-item">
-                                            <span>鐩爣搴撲綅</span>
-                                            <label><input id="distLocNo" type="text" name="distLocNo" /></label>
-                                        </div>
+            <!-- 璁惧浠诲姟鎿嶄綔 -->
+            <div class="task-operator">
+                <fieldset style="height: auto;padding-bottom: 20px;">
+                    <legend>鎵嬪姩鎿嶄綔</legend>
+                    <div style="display: flex;">
+                        <div style="width: 30%;">
+                            <div class="operator-item" style="height: auto;width: 100%;">
+                                <span class="select-title">婧愬簱浣�/鐩爣搴撲綅</span>
+                                <div class="select-container" style="height: auto;padding: 30px 10px 20px 10px;">
+                                    <div class="select-container-item">
+                                        <span>婧愬簱浣�</span>
+                                        <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
+                                    </div>
+                                    <div class="select-container-item">
+                                        <span>鐩爣搴撲綅</span>
+                                        <label><input id="distLocNo" type="text" name="distLocNo" /></label>
+                                    </div>
 
-                                        <div style="margin-top: 10px;">
-                                            <button class="item" onclick="shuttleOperator(18)">鎼繍璐х墿</button>
-                                            <button class="item" onclick="shuttleOperator(14)">绉诲姩鍒扮洰鏍囧簱浣�</button>
-                                            <button class="item" onclick="shuttleOperator(23)">绉诲姩鍒扮洰鏍囧簱浣�(浠诲姟)</button>
-<!--                                            <button class="item" onclick="shuttleOperator(16)">绉诲姩鍒版彁鍗囨満</button>-->
-                                        </div>
+                                    <div style="margin-top: 10px;">
+                                        <button class="item" onclick="shuttleOperator(18)">鎼繍璐х墿</button>
+                                        <button class="item" onclick="shuttleOperator(14)">绉诲姩鍒扮洰鏍囧簱浣�</button>
+                                        <button class="item" onclick="shuttleOperator(23)">绉诲姩鍒扮洰鏍囧簱浣�(浠诲姟)</button>
+                                        <!--                                            <button class="item" onclick="shuttleOperator(16)">绉诲姩鍒版彁鍗囨満</button>-->
                                     </div>
                                 </div>
                             </div>
-
-                            <div style="width: 40%;">
-                                <div class="operator-item" style="height: auto;width: 100%;">
-                                    <span class="select-title">鐩稿叧鎸囦护</span>
-                                    <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;">
-                                        <div class="button-group">
-                                            <button class="item" onclick="shuttleOperator(3)">鎵樼洏椤跺崌</button>
-                                            <button class="item" onclick="shuttleOperator(4)">鎵樼洏涓嬮檷</button>
-                                            <button class="item" onclick="shuttleOperator(15)">鍏呯數寮�鍏�</button>
-                                            <button class="item" onclick="shuttleOperator(9)">澶嶄綅</button>
-                                            <button class="item" onclick="shuttleOperator(21)">绠″埗</button>
-                                            <button class="item" onclick="shuttleOperator(22)">鍙栨秷绠″埗</button>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-
                         </div>
-                    </fieldset>
-                </div>
 
+                        <div style="width: 40%;">
+                            <div class="operator-item" style="height: auto;width: 100%;">
+                                <span class="select-title">鐩稿叧鎸囦护</span>
+                                <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;">
+                                    <div class="button-group">
+                                        <button class="item" onclick="shuttleOperator(3)">鎵樼洏椤跺崌</button>
+                                        <button class="item" onclick="shuttleOperator(4)">鎵樼洏涓嬮檷</button>
+                                        <button class="item" onclick="shuttleOperator(15)">鍏呯數寮�鍏�</button>
+                                        <button class="item" onclick="shuttleOperator(9)">澶嶄綅</button>
+                                        <button class="item" onclick="shuttleOperator(21)">绠″埗</button>
+                                        <button class="item" onclick="shuttleOperator(22)">鍙栨秷绠″埗</button>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </fieldset>
             </div>
-            <!-- 绌挎杞︽棩蹇楄緭鍑� -->
-            <div class="shuttle-output-board">
-                <textarea id="shuttle-output"></textarea>
-            </div>
+
+        </div>
+        <!-- 绌挎杞︽棩蹇楄緭鍑� -->
+        <div class="shuttle-output-board">
+            <textarea id="shuttle-output"></textarea>
         </div>
     </div>
+</div>
 
-    <div id="shuttle-detl" style="display: none">
-        <div>
-            <div class="form-item">
-                <label class="form-label">绌挎杞﹀彿:</label>
-                <div class="form-input">
-                    <input id="shuttleNo" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled">
-                </div>
-            </div>
-            <div class="form-item">
-                <label class="form-label">宸ヤ綔鍙�:</label>
-                <div class="form-input">
-                    <input id="workNo" name="workNo" type="number" class="layui-input" lay-verify="number" autocomplete="off">
-                </div>
-            </div>
-            <div class="form-item">
-                <label class="form-label">浣滀笟鏍囪:</label>
-                <div class="form-input">
-                    <input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off">
-                </div>
-            </div>
-            <div class="form-item">
-                <label class="form-label">浠ょ墝:</label>
-                <div class="form-input">
-                    <input id="token" name="token" type="text" class="layui-input" autocomplete="off">
-                </div>
-            </div>
-            <div class="form-item form-button-container">
-                <button class="form-button" id="save">淇濆瓨</button>
-                <button class="form-button" id="cancel" style="background-color: #D0D0D0">鍙栨秷</button>
+<div id="shuttle-detl" style="display: none">
+    <div>
+        <div class="form-item">
+            <label class="form-label">绌挎杞﹀彿:</label>
+            <div class="form-input">
+                <input id="shuttleNo" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled">
             </div>
         </div>
+        <div class="form-item">
+            <label class="form-label">宸ヤ綔鍙�:</label>
+            <div class="form-input">
+                <input id="workNo" name="workNo" type="number" class="layui-input" lay-verify="number" autocomplete="off">
+            </div>
+        </div>
+        <div class="form-item">
+            <label class="form-label">浣滀笟鏍囪:</label>
+            <div class="form-input">
+                <input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off">
+            </div>
+        </div>
+        <div class="form-item">
+            <label class="form-label">浠ょ墝:</label>
+            <div class="form-input">
+                <input id="token" name="token" type="text" class="layui-input" autocomplete="off">
+            </div>
+        </div>
+        <div class="form-item form-button-container">
+            <button class="form-button" id="save">淇濆瓨</button>
+            <button class="form-button" id="cancel" style="background-color: #D0D0D0">鍙栨秷</button>
+        </div>
     </div>
+</div>
 </body>
 </html>
 <script>
@@ -198,18 +198,46 @@
     var shuttleMsgTableFullRows = 0;
     // 鍒濆鍖�
     var shuttleOutputDom = document.getElementById("shuttle-output");
+
+    var ws = new WebSocket("ws://" + window.location.host + baseUrl + "/shuttle/websocket");
+
+    //褰揥ebSocket鍒涘缓鎴愬姛鏃讹紝瑙﹀彂onopen浜嬩欢
+    ws.onopen = function(){
+        console.log("open");
+    }
+
+    //褰撳鎴风鏀跺埌鏈嶅姟绔彂鏉ョ殑娑堟伅鏃讹紝瑙﹀彂onmessage浜嬩欢
+    ws.onmessage = function(e){
+        const result = JSON.parse(e.data);
+        if (result.url == "/shuttle/table/shuttle/state") {
+            setShuttleStateInfo(JSON.parse(result.data))
+            setShuttleMsgInfo(JSON.parse(result.data))
+        }else if (result.url == "/shuttle/output/shuttle") {
+            setShuttleOutput(JSON.parse(result.data))
+        }
+        // console.log(e.data,result);
+    }
+
+    //褰撳鎴风鏀跺埌鏈嶅姟绔彂閫佺殑鍏抽棴杩炴帴璇锋眰鏃讹紝瑙﹀彂onclose浜嬩欢
+    ws.onclose = function(e){
+        console.log("close");
+    }
+
+    //濡傛灉鍑虹幇杩炴帴銆佸鐞嗐�佹帴鏀躲�佸彂閫佹暟鎹け璐ョ殑鏃跺�欒Е鍙憃nerror浜嬩欢
+    ws.onerror = function(e) {
+        console.log(error);
+    }
+
     $(document).ready(function() {
         initShuttleStateTable();
         getShuttleStateInfo();
         initShuttleMsgTable();
-        getShuttleMsgInfo();
         operatorBlockShow();
         setShuttleRadio();
     });
 
     setInterval(function () {
-        getShuttleStateInfo()
-        getShuttleMsgInfo();
+        getShuttleStateInfo();
     },1000)
     setInterval(function () {
         getShuttleOutput();
@@ -287,107 +315,102 @@
 
     // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇 ---- 琛ㄤ竴
     function getShuttleStateInfo() {
+        sendWs(JSON.stringify({
+            "url": "/shuttle/table/shuttle/state",
+            "data": {}
+        }))
+    }
+
+    // 鍥涘悜绌挎杞︿俊鎭〃璁剧疆 ---- 琛ㄤ竴
+    function setShuttleStateInfo(res) {
         let tableEl = $('#shuttle-state-table');
-        $.ajax({
-            url: baseUrl+ "/shuttle/table/shuttle/state",
-            headers: {'token': localStorage.getItem('token')},
-            method: 'POST',
-            success: function (res) {
-                if (res.code === 200){
-                    let table = res.data;
-                    if (table.length > shuttleStateTableBlankRows && table.length !== shuttleStateTableFullRows) {
-                        initShuttleStateTable(table.length-shuttleStateTableBlankRows);
-                        shuttleStateTableFullRows = table.length;
-                    }
-                    for (let i=1;i<=table.length;i++){
-                        // $("#mode-"+table[i-1].shuttleNo).html(table[i-1].statusVal===0?'鑱旀満':'鑴辨満');
-                        let tr = tableEl.find("tr").eq(i);
-                        setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
-                        setVal(tr.children("td").eq(1), table[i-1].protocolStatus$);
-                        setVal(tr.children("td").eq(2), table[i-1].free$);
-                        setVal(tr.children("td").eq(3), table[i-1].workingMode$);
-                        setVal(tr.children("td").eq(4), table[i-1].point$);
-                        setVal(tr.children("td").eq(5), table[i-1].point$$);
-                        setVal(tr.children("td").eq(6), table[i-1].powerPercent$);
-                        setVal(tr.children("td").eq(7), table[i-1].speed);
-                        setVal(tr.children("td").eq(8), table[i-1].loadState$);
-                        setVal(tr.children("td").eq(9), table[i-1].liftPosition$);
-                        setVal(tr.children("td").eq(10), table[i-1].runDir$);
-                        setVal(tr.children("td").eq(11), table[i-1].runDir2$);
-                        setVal(tr.children("td").eq(12), table[i-1].chargState$);
-                        setVal(tr.children("td").eq(13), table[i-1].errState$);
-                        setVal(tr.children("td").eq(14), table[i-1].errCode$);
-                        setVal(tr.children("td").eq(15), table[i-1].suspendState$);
-                    }
-                } else if (res.code === 403){
-                    window.location.href = baseUrl+"/login";
-                }  else {
-                    console.log(res.msg);
-                }
+        if (res.code === 200){
+            let table = res.data;
+            if (table.length > shuttleStateTableBlankRows && table.length !== shuttleStateTableFullRows) {
+                initShuttleStateTable(table.length-shuttleStateTableBlankRows);
+                shuttleStateTableFullRows = table.length;
             }
-        });
+            for (let i=1;i<=table.length;i++){
+                // $("#mode-"+table[i-1].shuttleNo).html(table[i-1].statusVal===0?'鑱旀満':'鑴辨満');
+                let tr = tableEl.find("tr").eq(i);
+                setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
+                setVal(tr.children("td").eq(1), table[i-1].protocolStatus$);
+                setVal(tr.children("td").eq(2), table[i-1].free$);
+                setVal(tr.children("td").eq(3), table[i-1].workingMode$);
+                setVal(tr.children("td").eq(4), table[i-1].point$);
+                setVal(tr.children("td").eq(5), table[i-1].point$$);
+                setVal(tr.children("td").eq(6), table[i-1].powerPercent$);
+                setVal(tr.children("td").eq(7), table[i-1].speed);
+                setVal(tr.children("td").eq(8), table[i-1].loadState$);
+                setVal(tr.children("td").eq(9), table[i-1].liftPosition$);
+                setVal(tr.children("td").eq(10), table[i-1].runDir$);
+                setVal(tr.children("td").eq(11), table[i-1].runDir2$);
+                setVal(tr.children("td").eq(12), table[i-1].chargState$);
+                setVal(tr.children("td").eq(13), table[i-1].errState$);
+                setVal(tr.children("td").eq(14), table[i-1].errCode$);
+                setVal(tr.children("td").eq(15), table[i-1].suspendState$);
+                setVal(tr.children("td").eq(16), table[i-1].lowerPower);
+            }
+        } else if (res.code === 403){
+            window.location.href = baseUrl+"/login";
+        }  else {
+            console.log(res.msg);
+        }
     }
 
     // 鍥涘悜绌挎杞︽暟鎹〃鑾峰彇 ---- 琛ㄤ簩
-    function getShuttleMsgInfo() {
+    function setShuttleMsgInfo(res) {
         let tableEl = $('#shuttle-msg-table');
-        $.ajax({
-            url: baseUrl+ "/shuttle/table/shuttle/state",
-            headers: {'token': localStorage.getItem('token')},
-            method: 'POST',
-            success: function (res) {
-                if (res.code === 200){
-                    var table = res.data;
-                    if (table.length > shuttleMsgTableBlankRows && table.length !== shuttleMsgTableFullRows) {
-                        initShuttleMsgTable(table.length-shuttleMsgTableBlankRows);
-                        shuttleMsgTableFullRows = table.length;
-                    }
-                    for (var i=1;i<=table.length;i++){
-                        var tr = tableEl.find("tr").eq(i);
-                        setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
-                        setVal(tr.children("td").eq(1), table[i-1].taskNo);
-                        setVal(tr.children("td").eq(2), table[i-1].sourceLocNo);
-                        setVal(tr.children("td").eq(3), table[i-1].locNo);
-                        setVal(tr.children("td").eq(4), table[i-1].maxCellVoltage$);
-                        setVal(tr.children("td").eq(5), table[i-1].minCellVoltage$);
-                        setVal(tr.children("td").eq(6), table[i-1].voltage$);
-                        setVal(tr.children("td").eq(7), table[i-1].chargeCycleTimes);
-                        setVal(tr.children("td").eq(8), table[i-1].surplusQuantity);
-                        setVal(tr.children("td").eq(9), table[i-1].countQuantity);
-                        setVal(tr.children("td").eq(10), table[i-1].statusSum ? table[i - 1].statusSum.mileage : '');
-                        setVal(tr.children("td").eq(11), table[i-1].pakMk$);
-                        setVal(tr.children("td").eq(12), table[i-1].currentLocNo);
-                        setVal(tr.children("td").eq(13), table[i-1].token);
-                        if (table[i-1].shuttleNo == parseInt($('input[name="shuttleSelect"]:checked').val())) {
-                            $("#runSpeedText").text(table[i-1].runSpeed)
-                            $("#chargeLineText").text(table[i-1].chargeLine + "%")
-                        }
-                    }
-                } else if (res.code === 403){
-                    window.location.href = baseUrl+"/login";
-                }  else {
-                    console.log(res.msg);
+        if (res.code === 200){
+            var table = res.data;
+            if (table.length > shuttleMsgTableBlankRows && table.length !== shuttleMsgTableFullRows) {
+                initShuttleMsgTable(table.length-shuttleMsgTableBlankRows);
+                shuttleMsgTableFullRows = table.length;
+            }
+            for (var i=1;i<=table.length;i++){
+                var tr = tableEl.find("tr").eq(i);
+                setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
+                setVal(tr.children("td").eq(1), table[i-1].taskNo);
+                setVal(tr.children("td").eq(2), table[i-1].sourceLocNo);
+                setVal(tr.children("td").eq(3), table[i-1].locNo);
+                setVal(tr.children("td").eq(4), table[i-1].maxCellVoltage$);
+                setVal(tr.children("td").eq(5), table[i-1].minCellVoltage$);
+                setVal(tr.children("td").eq(6), table[i-1].voltage$);
+                setVal(tr.children("td").eq(7), table[i-1].chargeCycleTimes);
+                setVal(tr.children("td").eq(8), table[i-1].surplusQuantity);
+                setVal(tr.children("td").eq(9), table[i-1].countQuantity);
+                setVal(tr.children("td").eq(10), table[i-1].statusSum ? table[i - 1].statusSum.mileage : '');
+                setVal(tr.children("td").eq(11), table[i-1].pakMk$);
+                setVal(tr.children("td").eq(12), table[i-1].currentLocNo);
+                setVal(tr.children("td").eq(13), table[i-1].token);
+                if (table[i-1].shuttleNo == parseInt($('input[name="shuttleSelect"]:checked').val())) {
+                    $("#runSpeedText").text(table[i-1].runSpeed)
+                    $("#chargeLineText").text(table[i-1].chargeLine + "%")
                 }
             }
-        });
+        } else if (res.code === 403){
+            window.location.href = baseUrl+"/login";
+        }  else {
+            console.log(res.msg);
+        }
     }
 
     // 绌挎杞︽棩蹇楄緭鍑� -----------------------------------------------------------------------
     function getShuttleOutput() {
-        $.ajax({
-            url: baseUrl + "/shuttle/output/shuttle",
-            headers: {'token': localStorage.getItem('token')},
-            method: 'POST',
-            success: function (res) {
-                if (res.code === 200) {
-                    shuttleOutput(res.data);
-                } else if (res.code === 403) {
-                    window.location.href = baseUrl + "/login";
-                } else {
-                    console.log(res.msg);
-                }
-            }
-        })
+        sendWs(JSON.stringify({
+            "url": "/shuttle/output/shuttle",
+            "data": {}
+        }))
+    }
+
+    function setShuttleOutput(res) {
+        if (res.code === 200) {
+            shuttleOutput(res.data);
+        } else if (res.code === 403) {
+            window.location.href = baseUrl + "/login";
+        } else {
+            console.log(res.msg);
+        }
     }
 
     // 浠诲姟鎸囦护涓嬪彂
@@ -400,6 +423,32 @@
         }, function (res) {
             layer.msg(res.msg, {icon: 1});
         });
+    }
+
+    // 璺戝簱
+    function moveLoc() {
+        $.ajax({
+            url: baseUrl + "/shuttle/moveLoc",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            data: {
+                shuttleNo: $('input[name="shuttleSelect"]:checked').val(),
+                xStart: $("#xStart").val(),
+                xTarget: $("#xTarget").val(),
+                yStart: $("#yStart").val(),
+                yTarget: $("#yTarget").val(),
+                moveType: $('input[name="moveType"]:checked').val()
+            },
+            success: function (res) {
+                if (res.code === 200) {
+                    layer.msg(res.msg, {icon: 1});
+                } else if (res.code === 403) {
+                    window.location.href = baseUrl + "/login";
+                } else {
+                    console.log(res.msg);
+                }
+            }
+        })
     }
 
 
@@ -565,5 +614,10 @@
         layer.close(layerDetl);
     })
 
+    function sendWs(message) {
+        if (ws.readyState == WebSocket.OPEN) {
+            ws.send(message)
+        }
+    }
 
 </script>
diff --git a/src/main/webapp/views/shuttle2.html b/src/main/webapp/views/shuttle2.html
index c1cdc91..9035042 100644
--- a/src/main/webapp/views/shuttle2.html
+++ b/src/main/webapp/views/shuttle2.html
@@ -347,7 +347,10 @@
 
     // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇 ---- 琛ㄤ竴
     function getShuttleStateInfo() {
-        sendWs("{\"url\":\"/shuttle/table/shuttle/state\",\"data\":{}}")
+        sendWs(JSON.stringify({
+            "url": "/shuttle/table/shuttle/state",
+            "data": {}
+        }))
     }
 
     // 鍥涘悜绌挎杞︿俊鎭〃璁剧疆 ---- 琛ㄤ竴
@@ -426,7 +429,10 @@
 
     // 绌挎杞︽棩蹇楄緭鍑� -----------------------------------------------------------------------
     function getShuttleOutput() {
-        sendWs("{\"url\":\"/shuttle/output/shuttle\",\"data\":{}}")
+        sendWs(JSON.stringify({
+            "url": "/shuttle/output/shuttle",
+            "data": {}
+        }))
     }
 
     function setShuttleOutput(res) {

--
Gitblit v1.9.1