From cfb75c26838c2e8dacf663e4083484f3b1047ca1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 06 四月 2023 16:57:47 +0800
Subject: [PATCH] 四向穿梭车地图楼层切换后,显示楼层效果

---
 src/main/webapp/views/console.html |  562 +++++++++++++++++++++++++------------------------------
 1 files changed, 256 insertions(+), 306 deletions(-)

diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index cf0e3b8..e603912 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -16,227 +16,20 @@
         <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
     </header>
     <main class="main">
-        <!--绗�1鍒� -->
-        <div class="site-row site-row-1" id="fool1">
-            <div id="site-100" class="site" style="height: 38px;line-height: 38px;width:156px;">100</div>
-
-            <div id="site-101" class="site" style="height: 38px;line-height: 38px;width:156px;">101</div>
-
-            <div id="site-102" class="site" style="height: 38px;line-height: 38px;width:156px;">102</div>
-        </div>
-        <!--绗�2鍒�-->
-        <div class="site-row site-row-2" id="fool2" style="display: none">
-            <div id="site-200" class="site" style="height: 38px;line-height: 38px;width:156px;">200</div>
-
-            <div id="site-201" class="site" style="height: 38px;line-height: 38px;width:156px;">201</div>
-
-            <div id="site-202" class="site" style="height: 38px;line-height: 38px;width:156px;">202</div>
-        </div>
-
-        <!--绗�3鍒�-->
-        <div class="site-row site-row-3" id="fool3" style="display: none">
-            <div id="site-300" class="site" style="height: 38px;line-height: 38px;width:156px;">300</div>
-
-            <div id="site-301" class="site" style="height: 38px;line-height: 38px;width:156px;">301</div>
-
-            <div id="site-302" class="site" style="height: 38px;line-height: 38px;width:156px;">302</div>
-        </div>
-
         <!--妤煎眰鎸夐挳-->
-
-            <button class="floorBtn  btn-16" onclick="changFloor(1)" style="margin-top: 150px">1F</button>
-            <button class="floorBtn  btn-16" onclick="changFloor(2)" style="margin-top: 200px">2F</button>
-            <button class="floorBtn  btn-16" onclick="changFloor(3)" style="margin-top: 250px">3F</button>
+            <div id="floorBtnBox">
+                <button class="floorBtn  btn-16" onclick="changFloor(this,1)" style="margin-top: 150px">1F</button>
+                <button class="floorBtn  btn-16" onclick="changFloor(this,2)" style="margin-top: 200px">2F</button>
+                <button class="floorBtn  btn-16" onclick="changFloor(this,3)" style="margin-top: 250px">3F</button>
+                <button class="floorBtn  btn-16" onclick="changFloor(this,4)" style="margin-top: 300px">4F</button>
+            </div>
+            <button class="floorBtn  btn-16" onclick="testMove()" style="margin-top: 350px">娴嬭瘯绉诲姩杞�</button>
 
         <!-- 璐ф灦 + 鍫嗗灈鏈� + 鍏ュ簱绔欑偣 -->
         <div class="main-part">
             <!-- 绗竴缁� -->
-            <div class="lane" style="margin-bottom: 280px">
-                <!-- 璐ф灦 -->
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">1#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">2#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">3#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item" style="border: none;background-color: #6ca7a8"></button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">4#</span>
-                </div>
+            <div class="lane" id="mapDataId" style="margin-bottom: 280px">
 
-                <!-- 鍫嗗灈鏈� -->
-                <div class="crn">
-                    <hr class="pathway">
-                    <div id="crn-1" class="machine"></div>
-                </div>
-
-                <!-- 璐ф灦 -->
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">5#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">6#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">7#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">8#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">9#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">10#</span>
-                </div>
-                <div class="stock-group">
-                    <button class="item">1</button>
-                    <button class="item">2</button>
-                    <button class="item">3</button>
-                    <button class="item">4</button>
-                    <button class="item">5</button>
-                    <button class="item">6</button>
-                    <button class="item">7</button>
-                    <button class="item">8</button>
-                    <button class="item">9</button>
-                    <button class="item">10</button>
-                    <button class="item">11</button>
-                    <button class="item">12</button>
-                    <button class="item">13</button>
-                    <span class="row-no">11#</span>
-                </div>
             </div>
         </div>
     </main>
@@ -549,6 +342,8 @@
     var tData1 = []
     var tData2 = []
     var tData3 = []
+    var mapData = [] //鍦板浘鏁版嵁
+    var currentLev = 1;//褰撳墠鍦板浘妤煎眰
     function getCodeData(){
         $.ajax({
             url:baseUrl +'/console/barcode/output/site',
@@ -600,6 +395,244 @@
             var str3 = '<li><span>' + tData3[k].barcode + '</span><span class="right">' + tData3[k].time + '</span></li>'
             $('#barcode3').append(str3)
         }
+    }
+
+
+    $(function (){
+        initMap(1)
+    })
+
+    setInterval(() => {
+        getShuttleStateInfo()
+    },1000)
+
+    // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
+    function getShuttleStateInfo() {
+        $.ajax({
+            url: baseUrl+ "/shuttle/table/shuttle/state",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                res.data.forEach((item,index) => {
+                    if(item.locNoLev != currentLev){
+                        //鍥涘悜绌挎杞︽ゼ灞傚拰褰撳墠鍦板浘妤煎眰涓嶄竴鑷达紝鍒犻櫎璇ヨ溅杈�
+                        $("#sxcar-" + item.shuttleNo).remove()
+                    }else {
+                        //绉诲姩鍥涘悜绌挎杞�
+                        moveCar(item.shuttleNo,item.locNoX,item.locNoY)
+                    }
+                })
+            }
+        });
+    }
+
+    //璁$畻鍥涘悜绌挎杞﹀浘鏍囦綅缃�
+    function getCarPosition(x,y) {
+        let top = (x * 35 - 35) + "px" //闇�瑕佸噺鍘诲皬杞﹁嚜宸辨墍鍗犻珮搴�
+        let left = (y * 70 - 70) + "px" //闇�瑕佸噺鍘诲皬杞﹁嚜宸辨墍鍗犲搴�
+        return [top,left];
+    }
+
+    //绉诲姩鍥涘悜绌挎杞﹀浘鏍�
+    function moveCar(id,x,y) {
+        //鑾峰彇鍏蜂綋浣嶇疆top鍜宭eft鍊�
+        let position = getCarPosition(x,y)
+        let top = position[0]
+        let left = position[1]
+        $("#sxcar-" + id).animate({top: top,left: left}, 1000);
+    }
+
+    //鍒濆鍖栧湴鍥�
+    function initMap(lev) {
+        //姣嶈建閬撶涓�娆$储寮曪紝鐢ㄤ簬瀹氫綅灏忚溅
+        let firstMotherIndex = [0,0];
+        $("#mapDataId").empty()
+        $.ajax({
+            type:"get",
+            url: baseUrl + "/static/js/map.json",
+            success: (data) => {
+                mapData = data
+                let content = ""
+                data.forEach((rowData,index) => {
+                    //鍘绘帀涓婁笅杈圭紭绂佸尯
+                    if(!(index == 0 || data.length - 1 == index)){
+                        let row = '<div class="stock-group">';
+                        rowData.forEach((colData,idx) => {
+                            //鍘绘帀宸﹀彸杈圭紭绂佸尯
+                            if(!(idx == 0 || rowData.length - 1 == idx)){
+                                let col;
+                                switch (colData.value){
+                                    case -1:
+                                        col = '<button class="item" style="visibility: hidden">' + idx + '</button>';
+                                        break;
+                                    case 3:
+                                        //姣嶈建閬�
+                                        col = '<button class="item" style="background: #5af;">&#x21c5;&#x21c4;</button>';
+                                        if (firstMotherIndex[0] === 0 && firstMotherIndex[1] === 0) {
+                                            //绗竴娆¢亣鍒版瘝杞ㄩ亾锛屽垯淇濆瓨璇ヨ建閬撳湴鍧�(鐢ㄤ簬灏忚溅鍒濆鍖栧畾浣�)
+                                            firstMotherIndex = [index,idx]
+                                        }
+                                        break;
+                                    case 4:
+                                        //绔欑偣
+                                        if (lev == 1) {
+                                            let data = colData.data;
+                                            col = '<div id="site-' + data + '" class="site">' + data + '(9991)</div>';
+                                        }else {
+                                            //鍏朵粬妤煎眰鍙湁鎻愬崌鏈鸿兘鏄剧ず
+                                            let data = colData.data;
+                                            if (data == 109) {//鍏朵粬妤煎眰鍙湁鎻愬崌鏈鸿兘鏄剧ず
+                                                col = '<div id="site-' + data + '" class="site">' + data + '(9991)</div>';
+                                            }else {
+                                                col = '<div style="visibility: hidden" id="site-' + data + '" class="site">' + data + '(9991)</div>';
+                                            }
+                                        }
+                                        break;
+                                    default:
+                                        col = '<button class="item">' + idx + '</button>';
+                                }
+
+                                if(rowData.length - 2 == idx){
+                                    //鎵撲笂琛屾暟鏍囪
+                                    col += '<span class="row-no">' + index + '#</span>';
+                                }
+                                row += col
+                            }
+                        })
+                        row += '</div>';
+                        content += row
+                    }
+                })
+
+                $("#mapDataId").append(content)
+            }
+        })
+
+        $.ajax({
+            url: baseUrl+ "/shuttle/table/shuttle/state",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                res.data.forEach((item,index) => {
+                    if(lev == item.locNoLev){
+                        let carBox = '<div class="sxcar" id="sxcar-' + item.shuttleNo + '"></div>'
+                        $("#mapDataId").append(carBox)
+                    }
+                })
+            }
+        });
+    }
+
+    //灏嗗湴鍥炬暟鎹浆鎹㈡垚int浜岀淮鏁扮粍(鍚庣画鐢ㄤ簬璇锋眰璁$畻璺緞鏃舵惡甯﹀湴鍥炬暟鎹弬鏁颁娇鐢�)
+    function getMap2TwoArr() {
+        let data = []
+        mapData.forEach((item,index) => {
+            let data2 = []
+            item.forEach((val,idx) => {
+                data2.push(val.value)
+            })
+            data.push(data2)
+        })
+
+        return data;
+    }
+
+    function testMove() {
+        getMap2TwoArr()//娴嬭瘯鍦板浘鏁版嵁杞崲鏄惁姝e父
+        let json = "[{\n" +
+            "\t\t\"x\": 5,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 6,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 7,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 8,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 9,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 10,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 11,\n" +
+            "\t\t\"y\": 5\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 11,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 12,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 13,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 14,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 15,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 16,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 17,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 18,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 19,\n" +
+            "\t\t\"y\": 6\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 19,\n" +
+            "\t\t\"y\": 7\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 19,\n" +
+            "\t\t\"y\": 8\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 20,\n" +
+            "\t\t\"y\": 8\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 21,\n" +
+            "\t\t\"y\": 8\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 22,\n" +
+            "\t\t\"y\": 8\n" +
+            "\t},\n" +
+            "\t{\n" +
+            "\t\t\"x\": 23,\n" +
+            "\t\t\"y\": 8\n" +
+            "\t}\n" +
+            "]";
+        json = JSON.parse(json)
+        json.forEach((item,index) => {
+            moveCar(1, item.x, item.y);
+        })
+
     }
 
     // 灏忚溅鍋忕Щ鍔ㄧ敾
@@ -659,7 +692,7 @@
 </script>
 <script type="text/javascript">
     // 寮圭獥绔欑偣淇℃伅
-    $('.site').on('click',function(){
+    $('#mapDataId').on('click','.site',function(){
         var id = this.id.split("-")[1];
         $("#siteWindow").attr("style","display:block;");//鏄剧ずdiv
         $("#crnWindow").attr("style","display:none;");
@@ -951,74 +984,6 @@
         }
     }
 
-    // 椤甸潰鐐瑰嚮浜嬩欢鐩戝惉 ---------------------------------------------------------
-
-    // 杈撻�佽澶囩偣鍑讳簨浠�
-    // $('.site').on('click', function () {
-    // 	var id = this.id.split("-")[1];
-    // 	if (id === undefined) {
-    // 		return;
-    // 	}
-    // 	layer.open({
-    // 		title: id + " 绔欑偣淇℃伅璇︽儏",
-    // 		closeBtn: 0,
-    // 		skin: 'layui-layer-lan',
-    // 		offset: '180px',
-    // 		type: 1,
-    // 		shadeClose: true,
-    // 		content: $('#siteWindow'),
-    // 		area: ['35rem', '18rem'],
-    // 		btn: ['纭畾', '鍏抽棴'],
-    // 		success: function(layero, index){
-    // 			http.post(baseUrl+"/console/site/detail", {siteId: id}, function (res) {
-    // 				for (var val in res.data) {
-    // 					var find = $("#siteWindow").find(":input[name='" + val + "']");
-    // 					if (find[0].type==='text') {
-    // 						find.val(res.data[val]);
-    // 					} else if (find[0].type === 'checkbox') {
-    // 						find.attr("checked", res.data[val] === 'Y');
-    // 					}
-    // 				}
-    // 			})
-    // 		},
-    // 		end: function () {
-    // 			$(':input', $("#siteWindow")).val('').removeAttr('checked').removeAttr('selected');
-    // 		}
-    // 	});
-    // });
-
-    // 鍫嗗灈鏈虹偣鍑讳簨浠�
-    // $('.machine').on('click', function () {
-    // 	var id = this.id.split("-")[1];
-    // 	layer.open({
-    // 		title: id+"鍙峰爢鍨涙満",
-    // 		skin: 'layui-layer-lan',
-    // 		closeBtn: 0,
-    // 		type: 1,
-    // 		offset: '150px',
-    // 		shadeClose: true,
-    // 		content: $("#crnWindow"),
-    // 		area: ['40rem', '20rem'],
-    // 		btn: ['纭畾', '鍏抽棴'],
-    // 		success: function(layero, index){
-    // 			http.post(baseUrl+"/console/crn/detail", {crnNo: id}, function (res) {
-    // 				for (var val in res.data) {
-    // 					var find = $("#crnWindow").find(":input[name='" + val + "']");
-    // 					if (find[0].type==='text') {
-    // 						find.val(res.data[val]);
-    // 					} else if (find[0].type === 'checkbox') {
-    // 						find.attr("checked", res.data[val] === 'Y');
-    // 					}
-    // 				}
-    // 			})
-    // 		},
-    // 		end: function () {
-    // 			$(':input', $("#crnWindow")).val('').removeAttr('checked').removeAttr('selected');
-    // 		}
-    // 	});
-    // });
-
-
     // 灏忚溅鍋忕Щ鍔ㄧ敾
     function carAnimate(id, target) {
         var targetTop = 122;
@@ -1048,29 +1013,14 @@
         $("#site-" + id).animate({top: targetTop+'px'}, 1000);
     }
 
-
      //妤煎眰鍒囨崲鎸夐挳
-    function changFloor(x) {
-        switch (x) {
-            case 1:
-                $('#fool1').css("display","block")
-                $('#fool2').css("display","none")
-                $('#fool3').css("display","none")
-                return
-            case 2:
-                $('#fool1').css("display","none")
-                $('#fool2').css("display","block")
-                $('#fool3').css("display","none")
-                return
-            case 3:
-                $('#fool1').css("display","none")
-                $('#fool2').css("display","none")
-                $('#fool3').css("display","block")
-                return
-            default:
-                return;
-
-        }
+    function changFloor(e,x) {
+        $("#floorBtnBox button").each((index,item) => {
+            $(item).removeClass("btn-16-active")
+        })
+        $(e).addClass("btn-16-active")
+        currentLev = x
+        initMap(currentLev)
     }
 
 </script>

--
Gitblit v1.9.1