From 5c12ee87de4f483ce6a205b53996944c8e4506a7 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 07 一月 2025 16:58:23 +0800 Subject: [PATCH] # --- src/main/webapp/views/shuttle.html | 887 ++++++++++++++++++++++++---------------------------------- 1 files changed, 367 insertions(+), 520 deletions(-) diff --git a/src/main/webapp/views/shuttle.html b/src/main/webapp/views/shuttle.html index ce3a332..d11d3c5 100644 --- a/src/main/webapp/views/shuttle.html +++ b/src/main/webapp/views/shuttle.html @@ -13,97 +13,102 @@ <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%;"> -<!-- <div data-shuttleNo="1" class="shuttle-command-item">--> -<!-- <label>1#</label>--> -<!-- <button class="demoBtn pos-btn">鏁版嵁缁存姢</button>--> -<!-- <button id="mode-1" class="demoBtn mode-btn" >璁惧淇℃伅</button>--> -<!-- </div>--> - </div> - <!-- 鍫嗗灈鏈虹姸鎬佷綅淇℃伅 --> - <div class="shuttle-state" style="width: 95%;"> - <table id="shuttle-state-table"> - <thead> - <tr> - <th>鍥涘悜绌挎杞�</th> - <th>浠诲姟鐘舵��</th> - <th>灏忚溅鐘舵��</th> - <th>褰撳墠浜岀淮鐮�</th> - <th>鐢甸噺</th> - <th>鐢垫睜娓╁害</th> - <th>閿欒缂栧彿</th> - <th>plc杈撳嚭鐘舵�両O-椤跺崌浣�</th> - <th>plc杈撳嚭鐘舵�両O-鎹㈠悜浣�</th> - <th>plc杈撳嚭鐘舵�両O-鎶遍椄浣�</th> - <th>plc杈撳嚭鐘舵�両O-鍏呯數浣�</th> - <th>閿欒淇℃伅鐮�</th> - <th>plc杈撳叆鐘舵��</th> - <th>褰撳墠鎴栦箣鍓嶄簩缁寸爜</th> - <th>x鍋忕Щ閲�</th> - <th>y鍋忕Щ閲�</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%;">--> + <!--<!– <div data-shuttleNo="1" class="shuttle-command-item">–>--> + <!--<!– <label>1#</label>–>--> + <!--<!– <button class="demoBtn pos-btn">鏁版嵁缁存姢</button>–>--> + <!--<!– <button id="mode-1" class="demoBtn mode-btn" >璁惧淇℃伅</button>–>--> + <!--<!– </div>–>--> + <!-- </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> - </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"> - <span class="select-title">鍥涘悜绌挎杞﹀彿</span> - <div class="select-container" id="shuttleRadioBoxId"> -<!-- <label><input type="radio" name="shuttleSelect" value="1" checked> 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> 1鍙风┛姊溅</label>--> </div> </div> + </div> - <!-- 璁惧浠诲姟鎿嶄綔 --> - <div class="task-operator"> + <!-- 璁惧浠诲姟鎿嶄綔 --> + <div class="task-operator"> + <fieldset style="height: auto;padding-bottom: 20px;"> + <legend>鎵嬪姩鎿嶄綔</legend> <div style="display: flex;"> - <div class="task-operator" style="height: auto;width: 100%;"> - <div class="operator-item" style="height: auto"> + <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"> + <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> @@ -112,227 +117,76 @@ <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> + </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 style="height: auto;padding-bottom: 20px;"> - <legend>鎵嬪姩鎿嶄綔</legend> - <div class="button-group"> - <button class="item" onclick="shuttleOperator(1)">鍏ュ簱</button> - <button class="item" onclick="shuttleOperator(2)">鍑哄簱</button> - <button class="item" onclick="shuttleOperator(3)">鎵樼洏椤跺崌</button> - <button class="item" onclick="shuttleOperator(4)">鎵樼洏涓嬮檷</button> - <button class="item" onclick="shuttleOperator(5)">宸︾Щ</button> - <button class="item" onclick="shuttleOperator(6)">鍙崇Щ</button> - <button class="item" onclick="shuttleOperator(7)">鍚庣Щ</button> - <button class="item" onclick="shuttleOperator(8)">鍓嶇Щ</button> - <button class="item" onclick="shuttleOperator(9)">澶嶄綅</button> - <button class="item" onclick="shuttleOperator(10)">姝f柟鍚�(宸�)瀵诲簱浣�</button> - <button class="item" onclick="shuttleOperator(11)">璐熸柟鍚�(鍙�)瀵诲簱浣�</button> - <button class="item" onclick="shuttleOperator(12)">姝f柟鍚�(鍓�)瀵诲簱浣�</button> - <button class="item" onclick="shuttleOperator(13)">璐熸柟鍚�(鍚�)瀵诲簱浣�</button> - <button class="item" onclick="shuttleOperator(14)">绉诲姩鍒扮洰鏍囧簱浣�</button> - <button class="item" onclick="shuttleOperator(15)">鍏呯數寮�鍏�</button> - </div> - </fieldset> - </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="row" name="row" 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="bay" name="bay" type="number" class="layui-input" autocomplete="off"> - </div> - </div> - <div class="form-item"> - <label class="form-label">灞�:</label> - <div class="form-input"> - <input id="lev" name="lev" type="number" class="layui-input" 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 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> - <div id="shuttle-detl2" style="display: none"> - <div style="width: 1400px"> - <div class="form-item" style="text-align: left"> - <spen style="margin: 20px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted;"> - 寮傚父锛�<spen style="color: #FD482C;">鉁�</spen> - </spen> - <spen style="margin: 20px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style: double;"> - 姝e父锛�<spen style="color: #00FF00;">鈥�</spen> - </spen> - </div> - <div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted;"> - <div class="form-item" style="text-align: center"> - <label>鍥涘悜绌挎杞﹀紓甯�</label> - </div> - <div class="form-item"> - <label class="form-label">鍥涘悜绌挎杞﹀彿:</label> - <div class="form-input"> - <input id="shuttleNo1" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled" readonly> - </div> - </div> - - </div> - <div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted"> - <div class="form-item" style="text-align: center"> - <label>鍥涘悜绌挎杞︽彁绀轰俊鎭�</label> - </div> - - </div> - <div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted"> - <div class="form-item" style="text-align: center"> - <label>浠诲姟淇℃伅</label> - </div> - <div class="form-item"> - <label class="form-label">鍏ュ簱浠诲姟涓�:</label> - <div class="form-input"> - <input id="pakInTask" name="pakInTask" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍑哄簱浠诲姟涓�:</label> - <div class="form-input"> - <input id="pakOutTask" name="pakOutTask" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">绉诲簱浠诲姟涓�:</label> - <div class="form-input"> - <input id="pakMoveTask" name="pakMoveTask" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍥炲師鐐逛换鍔′腑:</label> - <div class="form-input"> - <input id="goHpTask" name="goHpTask" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲弽鍘熺偣浠诲姟涓�:</label> - <div class="form-input"> - <input id="goOHpTask" name="goOHpTask" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲師鐐归伩璁╀綅:</label> - <div class="form-input"> - <input id="goHpAvoid" name="goHpAvoid" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲弽鍘熺偣閬胯浣�:</label> - <div class="form-input"> - <input id="goOHpAvoid" name="goOHpAvoid" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍏ュ簱鍙栫┖缁撴潫:</label> - <div class="form-input"> - <input id="pakInEmpty" name="pakInEmpty" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍏ュ簱姝e父缁撴潫:</label> - <div class="form-input"> - <input id="pakInFinish" name="pakInFinish" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍑哄簱鍙栫┖缁撴潫:</label> - <div class="form-input"> - <input id="pakOutEmpty" name="pakOutEmpty" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍑哄簱姝e父缁撴潫:</label> - <div class="form-input"> - <input id="pakOutFinish" name="pakOutFinish" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲師鐐归伩璁╁畬鎴�:</label> - <div class="form-input"> - <input id="goHpAvoidFinish" name="goHpAvoidFinish" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲弽鍘熺偣閬胯瀹屾垚:</label> - <div class="form-input"> - <input id="goOHpAvoidFinish" name="goOHpAvoidFinish" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲師鐐归伩璁╁畬鎴�:</label> - <div class="form-input"> - <input id="goHpAvoidErr" name="goHpAvoidErr" class="layui-input" autocomplete="off" readonly> - </div> - </div> - <div class="form-item"> - <label class="form-label">鍘诲弽鍘熺偣閬胯瀹屾垚:</label> - <div class="form-input"> - <input id="goOHpAvoidErr" name="goOHpAvoidErr" class="layui-input" autocomplete="off" readonly> - </div> - </div> - </div> - <div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted"> - <div class="form-item" style="text-align: center"> - <label>鐘舵�佷俊鎭�</label> - </div> -<!-- <div class="form-item">--> -<!-- <label class="form-label">鑱旀満妯″紡:</label>--> -<!-- <div class="form-input">--> -<!-- <input id="autoMode" name="autoMode" class="layui-input" autocomplete="off" readonly>--> -<!-- </div>--> -<!-- </div>--> -<!-- <div class="form-item">--> -<!-- <label class="form-label">鐢靛帇杩囦綆:</label>--> -<!-- <div class="form-input">--> -<!-- <input id="voltageLow" name="voltageLow" class="layui-input" autocomplete="off" readonly>--> -<!-- </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> @@ -344,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(e); + } + $(document).ready(function() { initShuttleStateTable(); getShuttleStateInfo(); initShuttleMsgTable(); - getShuttleMsgInfo(); operatorBlockShow(); setShuttleRadio(); }); setInterval(function () { - getShuttleStateInfo() - getShuttleMsgInfo(); + getShuttleStateInfo(); },1000) setInterval(function () { getShuttleOutput(); @@ -375,116 +257,6 @@ } } - var layerIdx; - $(document).on('click ','.pos-btn', function () { - let shuttleNo = Number($(this).parent().attr("data-shuttleNo")); - layerIdx = layer.open({ - type: 1, - title: false, - shadeClose: true, - offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'], - anim: 5, - shade: [0], - area: ['310px', '370px'], - closeBtn: 0, - content: $("#shuttle-detl"), - success: function(layero, index){ - http.get(baseUrl+ "/shuttle/detl/"+shuttleNo, null, function (res) { - $('#shuttleNo').val(shuttleNo); - $('#workNo').val(res.data.workNo); - $('#row').val(res.data.row); - $('#bay').val(res.data.bay); - $('#lev').val(res.data.lev); - $('#crnNo').val(res.data.crnNo); - $('#pakMk').val(res.data.pakMk); - }) - }, - end: function () { - $('#shuttleNo').val(""); - $('#workNo').val(""); - $('#row').val(""); - $('#bay').val(""); - $('#lev').val(""); - $('#crnNo').val(""); - $('#pakMk').val(""); - } - }) - }) - - var layerIdx0; - $(document).on('click ','.mode-btn', function () { - let shuttleNo = Number($(this).parent().attr("data-shuttleNo")); - layerIdx0 = layer.open({ - type: 1, - title: false, - shadeClose: true, - offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'], - anim: 5, - shade: [0], - area: ['70%', '85%'], - closeBtn: 0, - content: $("#shuttle-detl2"), - success: function(layero, index){ - console.log(shuttleNo) - http.get(baseUrl+ "/shuttle/sensor/detl/"+shuttleNo, null, function (res) { - $('#shuttleNo1').val(res.data.shuttleNo); - // getColor(res.data.liftErr,'#liftErr'); - // getColor(res.data.inFetchErr,'#inFetchErr'); - // getColor(res.data.outFetchErr,'#outFetchErr'); - // getColor(res.data.antiErr,'#antiErr'); - // getColor(res.data.liftSwitchErr,'#liftSwitchErr'); - // getColor(res.data.trackErr,'#trackErr'); - // getColor(res.data.timeoutErr,'#timeoutErr'); - // getColor(res.data.connectErr,'#connectErr'); - // getColor(res.data.emergencyErr,'#emergencyErr'); - // getColor(res.data.taskTypeErr,'#taskTypeErr'); - // getColor(res.data.taskNoErr,'#taskNoErr'); - // getColor(res.data.newTaskErr,'#newTaskErr'); - // getColor(res.data.errTaskErr,'#errTaskErr'); - // getColor(res.data.stopErr,'#stopErr'); - // getColor(res.data.offlineTaskErr,'#offlineTaskErr'); - // getColor(res.data.startTaskErr,'#startTaskErr'); - // getColor(res.data.voltageTaskErr,'#voltageTaskErr'); - // getColor(res.data.devpErr,'#devpErr'); - // getColor(res.data.online,'#online'); - // getColor(res.data.notOnTrack,'#notOnTrack'); - // getColor(res.data.lowVoltage,'#lowVoltage'); - // getColor(res.data.electricityLoss,'#electricityLoss'); - // getColor(res.data.forcedTravel,'#forcedTravel'); - // getColor(res.data.demoMode,'#demoMode'); - // getColor(res.data.brushConnect,'#brushConnect'); - // getColor(res.data.taskManualForbid,'#taskManualForbid'); - // getColor(res.data.onlineManualForbid,'#onlineManualForbid'); - // getColor(res.data.devpEmergency,'#devpEmergency'); - // getColor(res.data.taskInterrupt,'#taskInterrupt'); - // getColor(res.data.taskClear,'#taskClear'); - // getColor(res.data.taskConfirmTimeout,'#taskConfirmTimeout'); - // getColor(res.data.taskWithCharge,'#taskWithCharge'); - getColor(res.data.pakInTask,'#pakInTask'); - getColor(res.data.pakOutTask,'#pakOutTask'); - getColor(res.data.pakMoveTask,'#pakMoveTask'); - getColor(res.data.goHpTask,'#goHpTask'); - getColor(res.data.goOHpTask,'#goOHpTask'); - getColor(res.data.goHpAvoid,'#goHpAvoid'); - getColor(res.data.goOHpAvoid,'#goOHpAvoid'); - getColor(res.data.pakInEmpty,'#pakInEmpty'); - getColor(res.data.pakInFinish,'#pakInFinish'); - getColor(res.data.pakOutEmpty,'#pakOutEmpty'); - getColor(res.data.pakOutFinish,'#pakOutFinish'); - getColor(res.data.goHpAvoidFinish,'#goHpAvoidFinish'); - getColor(res.data.goOHpAvoidFinish,'#goOHpAvoidFinish'); - getColor(res.data.goHpAvoidErr,'#goHpAvoidErr'); - getColor(res.data.goOHpAvoidErr,'#goOHpAvoidErr'); - // getColor(res.data.autoMode,'#autoMode'); - // getColor(res.data.voltageLow,'#voltageLow'); - }) - }, - end: function () { - $('#shuttleNo').val(""); - } - }) - }) - function getColor(res,e){ $(e).val(res?"鉁�":"鈥�"); if (res){ @@ -494,53 +266,16 @@ } } - // $(document).on('click ','.mode-btn', function () { - // let shuttleNo = Number($(this).parent().attr("data-shuttleNo")); - // layer.confirm("鏀瑰彉" + shuttleNo + ' 鍙风┛姊溅鍦ㄧ嚎鐘舵�佸悧锛�', function(){ - // var index = layer.load(1, { - // shade: [0.1,'#fff'] - // }); - // $.ajax({ - // url: baseUrl+ "/shuttle/mode/switch", - // headers: {'token': localStorage.getItem('token')}, - // data: { - // shuttleNo: Number(shuttleNo), - // password: 'root' - // }, - // method: 'POST', - // success: function (res) { - // layer.close(index); - // if (res.code === 200){ - // layer.msg(res.msg, {icon: 1}); - // } else if (res.code === 403){ - // window.location.href = baseUrl+"/login"; - // } else { - // layer.msg(res.msg, {icon: 2}); - // } - // } - // }); - // }); - // }) - - - $(document).on('click ','#save', function () { http.post(baseUrl+ "/shuttle/detl/update", { shuttleNo: $('#shuttleNo').val(), workNo: $('#workNo').val(), - row: $('#row').val(), - bay: $('#bay').val(), - lev: $('#lev').val(), - crnNo: $('#crnNo').val(), pakMk: $('#pakMk').val(), + token: $('#token').val(), }, function (res) { layer.msg("淇敼鎴愬姛", {icon: 1,}); - layer.close(layerIdx); + layer.close(layerDetl); }) - }) - - $(document).on('click ','#cancel', function () { - layer.close(layerIdx); }) function setShuttleRadio() { @@ -580,101 +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].status); - setVal(tr.children("td").eq(2), table[i-1].busyStatus); - setVal(tr.children("td").eq(3), table[i-1].currentCode); - setVal(tr.children("td").eq(4), table[i-1].batteryPower); - setVal(tr.children("td").eq(5), table[i-1].batteryTemp); - setVal(tr.children("td").eq(6), table[i-1].errorCode); - setVal(tr.children("td").eq(7), table[i-1].plcOutputLift$);//椤跺崌浣� - setVal(tr.children("td").eq(8), table[i-1].plcOutputTransfer$);//鎹㈠悜浣� - setVal(tr.children("td").eq(9), table[i-1].plcOutputBrake$);//鎶遍椄浣� - setVal(tr.children("td").eq(10), table[i-1].plcOutputCharge$);//鍏呯數浣� - setVal(tr.children("td").eq(11), table[i-1].statusErrorCode); - setVal(tr.children("td").eq(12), table[i-1].plcInputStatus); - setVal(tr.children("td").eq(13), table[i-1].currentOrBeforeCode); - setVal(tr.children("td").eq(14), table[i-1].codeOffsetX); - setVal(tr.children("td").eq(15), table[i-1].codeOffsetY); - setVal(tr.children("td").eq(16), table[i-1].currentVoltage); - setVal(tr.children("td").eq(17), table[i-1].currentAnalogValue); - } - } 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/msg", - 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].workNo); - setVal(tr.children("td").eq(2), table[i-1].status); - setVal(tr.children("td").eq(3), table[i-1].sourceLocNo); - setVal(tr.children("td").eq(4), table[i-1].distLocNo); - setVal(tr.children("td").eq(5), table[i-1].currentLiftServoSpeed); - setVal(tr.children("td").eq(6), table[i-1].currentMoveServoSpeed); - setVal(tr.children("td").eq(7), table[i-1].currentLiftServoLoad); - setVal(tr.children("td").eq(8), table[i-1].currentMoveServoLoad); - setVal(tr.children("td").eq(9), table[i-1].pakMk); - } - } 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); + } } // 浠诲姟鎸囦护涓嬪彂 @@ -687,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); + } + } + }) } @@ -773,4 +535,89 @@ shuttleOutputDom.scrollTop = shuttleOutputDom.scrollHeight; } + //鍥涘悜绌挎杞﹂厤缃弬鏁颁繚瀛� + function shuttleParamSave() { + $.ajax({ + url: baseUrl+ "/shuttle/runSpeed/" + $('input[name="shuttleSelect"]:checked').val(), + headers: {'token': localStorage.getItem('token')}, + method: 'POST', + data: { + runSpeed: $("#runSpeed").val(), + chargeLine: $("#chargeLine").val(), + }, + success: function (res) { + if (res.code === 200){ + layer.msg("閰嶇疆宸蹭繚瀛�", {icon: 1,}); + } else if (res.code === 403){ + window.location.href = baseUrl+"/login"; + } else { + console.log(res.msg); + } + } + }); + } + + // 璇︽儏鎿嶄綔 ------------------------------------------------------------------------- + var layerDetl; + $(document).on('dblclick ','#shuttle-msg-table tr', function () { + var shuttleNo = $(this).children("td").eq(0).html(); + if (shuttleNo !== null && shuttleNo !== "") { + layerDetl = layer.open({ + type: 1, + title: false, + shadeClose: true, + offset: 'rt', + anim: 5, + shade: [0], + area: ['340px', '255px'], + closeBtn: 0, + content: $("#shuttle-detl"), + success: function(layero, index){ + $.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; + for (var i=1;i<=table.length;i++){ + if (shuttleNo == table[i-1].shuttleNo) { + $('#shuttleNo').val(shuttleNo); + $('#workNo').val(table[i-1].taskNo); + $('#pakMk').val(table[i-1].pakMk$); + $('#token').val(table[i-1].token); + } + } + } else if (res.code === 403){ + window.location.href = baseUrl+"/login"; + } else { + console.log(res.msg); + } + } + }); + }, + end: function () { + $('#shuttleNo').val(""); + $('#workNo').val(""); + $('#pakMk').val(""); + $('#token').val(""); + } + }) + } + }); + + $(document).on('click ','#cancel', function () { + $('#shuttleNo').val(""); + $('#workNo').val(""); + $('#pakMk').val(""); + $('#token').val(""); + layer.close(layerDetl); + }) + + function sendWs(message) { + if (ws.readyState == WebSocket.OPEN) { + ws.send(message) + } + } + </script> -- Gitblit v1.9.1