From 5bf2b51ec743cd422a0eb3277b9c93a08c700315 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 10 二月 2025 08:46:30 +0800
Subject: [PATCH] #
---
src/main/webapp/views/shuttle.html | 902 ++++++++++++++++++++++---------------------------------
1 files changed, 366 insertions(+), 536 deletions(-)
diff --git a/src/main/webapp/views/shuttle.html b/src/main/webapp/views/shuttle.html
index f1eafbb..09f102e 100644
--- a/src/main/webapp/views/shuttle.html
+++ b/src/main/webapp/views/shuttle.html
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>鍥涘悜绌挎杞︾洃鎺х鐞�</title>
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
<link rel="stylesheet" href="../static/css/shuttle.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
@@ -13,346 +13,166 @@
<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">
-<!-- <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">
- <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>绛夊緟WCS纭</th>
- <th>瀹氫綅</th>
- <th>鍏呯數鐘舵��</th>
- <th>鎶ヨ淇℃伅1</th>
- <th>鎶ヨ淇℃伅2</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>
- </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>鏁呴殰鐮�</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>
+ </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: auto;">
- <div class="operator-item" style="height: auto">
- <span class="select-title">婧愮珯/婧愬簱浣�</span>
- <div class="select-container" 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;padding: 30px 10px 20px 10px;">
<div class="select-container-item">
- <span>绔�</span>
- <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>
+ <span>婧愬簱浣�</span>
+ <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
</div>
<div class="select-container-item">
- <span>鎺�</span>
- <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+ <span>鐩爣搴撲綅</span>
+ <label><input id="distLocNo" type="text" name="distLocNo" /></label>
</div>
- <div class="select-container-item">
- <span>鍒�</span>
- <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
- </div>
- <div class="select-container-item">
- <span>灞�</span>
- <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+
+ <div style="margin-top: 10px;">
+ <button class="item" onclick="shuttleOperator(9)">鎼繍璐х墿</button>
+ <button class="item" onclick="shuttleOperator(4)">绉诲姩鍒扮洰鏍囧簱浣�</button>
+ <button class="item" onclick="shuttleOperator(5)">绉诲姩鍒扮洰鏍囧簱浣�(浠诲姟)</button>
+ <!-- <button class="item" onclick="shuttleOperator(16)">绉诲姩鍒版彁鍗囨満</button>-->
</div>
</div>
</div>
</div>
- <div class="task-operator" style="height: auto;width: auto;">
- <div class="operator-item" style="height: auto">
- <span class="select-title">婧愮珯/婧愬簱浣�</span>
- <div class="select-container" style="height: auto">
- <div class="select-container-item">
- <span>绔�</span>
- <label><input id="distStaNo" type="number" name="points" min="0" /></label>
- </div>
- <div class="select-container-item">
- <span>鎺�</span>
- <label><input id="distRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
- </div>
- <div class="select-container-item">
- <span>鍒�</span>
- <label><input id="distBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
- </div>
- <div class="select-container-item">
- <span>灞�</span>
- <label><input id="distLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+ <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(1)">鎵樼洏椤跺崌</button>
+ <button class="item" onclick="shuttleOperator(2)">鎵樼洏涓嬮檷</button>
+ <button class="item" onclick="shuttleOperator(6)">鍏呯數寮�鍏�</button>
+ <button class="item" onclick="shuttleOperator(3)">澶嶄綅</button>
+ <button class="item" onclick="shuttleOperator(12)">婕旂ず妯″紡-寮�</button>
+ <button class="item" onclick="shuttleOperator(13)">婕旂ず妯″紡-鍏�</button>
</div>
</div>
</div>
</div>
</div>
-
- <fieldset style="height: auto;padding-bottom: 20px;">
- <legend>鎵嬪姩鎿嶄綔</legend>
- <div class="button-group">
- <button class="item" onclick="shuttleOperator(4)">鎵樼洏椤跺崌</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(16)">浠诲姟瀹屾垚</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 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>
@@ -364,18 +184,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();
@@ -395,116 +243,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){
@@ -514,53 +252,15 @@
}
}
- // $(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(),
}, function (res) {
layer.msg("淇敼鎴愬姛", {icon: 1,});
- layer.close(layerIdx);
+ layer.close(layerDetl);
})
- })
-
- $(document).on('click ','#cancel', function () {
- layer.close(layerIdx);
})
function setShuttleRadio() {
@@ -584,8 +284,8 @@
//娓叉煋鍥涘悜绌挎杞︽暟鎹淮鎶ゅ拰璁惧淇℃伅html
let shuttleCommandLogBox = '<div class="shuttle-command-item" data-shuttleNo="' + table[i - 1].shuttleNo + '">\n' +
'<label>' + table[i - 1].shuttleNo + '#</label>\n' +
- '<button class="demoBtn pos-btn">鏁版嵁缁存姢</button>\n' +
- '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">璁惧淇℃伅</button>\n' +
+ // '<button class="demoBtn pos-btn">鏁版嵁缁存姢</button>\n' +
+ // '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">璁惧淇℃伅</button>\n' +
'</div>'
$("#commandLogId").append(shuttleCommandLogBox);
}
@@ -600,89 +300,141 @@
// 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇 ---- 琛ㄤ竴
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].status);
- setVal(tr.children("td").eq(3), table[i-1].loading);
- setVal(tr.children("td").eq(4), table[i-1].track);
- setVal(tr.children("td").eq(5), table[i-1].batteryPower);
- setVal(tr.children("td").eq(6), table[i-1].row);
- setVal(tr.children("td").eq(7), table[i-1].bay);
- setVal(tr.children("td").eq(8), table[i-1].lev);
- setVal(tr.children("td").eq(9), table[i-1].waiting);
- setVal(tr.children("td").eq(10), table[i-1].loca);
- setVal(tr.children("td").eq(11), table[i-1].chargeStatus);
- setVal(tr.children("td").eq(12), table[i-1].alarm1);
- setVal(tr.children("td").eq(13), table[i-1].alarm2);
- }
- } 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);
+ let suspendState;
+ if (table[i - 1]['extend'] != undefined) {
+ suspendState = table[i-1]['extend'].suspendState
+ }
+
+ 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].deviceStatus$);
+ setVal(tr.children("td").eq(3), table[i-1].mode$);
+ setVal(tr.children("td").eq(4), table[i-1].currentLocNo);
+ setVal(tr.children("td").eq(5), table[i-1].currentCode);
+ setVal(tr.children("td").eq(6), table[i-1].batteryPower);
+ setVal(tr.children("td").eq(7), table[i-1].speed);
+ setVal(tr.children("td").eq(8), table[i-1].hasPallet$);
+ setVal(tr.children("td").eq(9), table[i-1].hasLift$);
+ setVal(tr.children("td").eq(10), table[i-1].hasCharge$);
+ setVal(tr.children("td").eq(11), table[i-1].statusErrorCode$);
+ setVal(tr.children("td").eq(12), suspendState);
+ setVal(tr.children("td").eq(13), table[i-1].lowerPower);
+ setVal(tr.children("td").eq(14), table[i-1].demo$);
+ }
+ } 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].sourceStaNo);
- setVal(tr.children("td").eq(4), table[i-1].staNo);
- setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
- setVal(tr.children("td").eq(6), table[i-1].locNo);
- setVal(tr.children("td").eq(7), table[i-1].speed);
- setVal(tr.children("td").eq(8), 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);
+ let maxCellVoltage;
+ let minCellVoltage;
+ let voltage;
+ let chargeCycleTimes;
+ let surplusQuantity;
+ let countQuantity;
+ if (table[i - 1]['extend'] != undefined) {
+ maxCellVoltage = table[i-1]['extend'].maxCellVoltage
+ minCellVoltage = table[i-1]['extend'].minCellVoltage
+ voltage = table[i-1]['extend'].voltage
+ chargeCycleTimes = table[i-1]['extend'].chargeCycleTimes
+ surplusQuantity = table[i-1]['extend'].surplusQuantity
+ countQuantity = table[i-1]['extend'].countQuantity
+ }
+
+ 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), voltage);
+ setVal(tr.children("td").eq(5), surplusQuantity);
+ setVal(tr.children("td").eq(6), countQuantity);
+ setVal(tr.children("td").eq(7), table[i-1].pakMk$);
+ }
+ } else if (res.code === 403){
+ window.location.href = baseUrl+"/login";
+ } else {
+ console.log(res.msg);
+ }
}
// 绌挎杞︽棩蹇楄緭鍑� -----------------------------------------------------------------------
function getShuttleOutput() {
+ 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);
+ }
+ }
+
+ // 浠诲姟鎸囦护涓嬪彂
+ function shuttleOperator(shuttleTaskMode) {
+ http.post(baseUrl+"/shuttle/operator/shuttle", {
+ shuttleNo: $('input[name="shuttleSelect"]:checked').val(),
+ shuttleTaskMode: shuttleTaskMode,
+ sourceLocNo: $("#sourceLocNo").val(),
+ distLocNo: $("#distLocNo").val()
+ }, function (res) {
+ layer.msg(res.msg, {icon: 1});
+ });
+ }
+
+ // 璺戝簱
+ function moveLoc() {
$.ajax({
- url: baseUrl + "/shuttle/output/shuttle",
+ 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) {
- shuttleOutput(res.data);
+ layer.msg(res.msg, {icon: 1});
} else if (res.code === 403) {
window.location.href = baseUrl + "/login";
} else {
@@ -690,16 +442,6 @@
}
}
})
- }
-
- // 浠诲姟鎸囦护涓嬪彂
- function shuttleOperator(shuttleTaskMode) {
- http.post(baseUrl+"/shuttle/operator/shuttle", {
- shuttleNo: $('input[name="shuttleSelect"]:checked').val(),
- shuttleTaskMode: shuttleTaskMode
- }, function (res) {
- layer.msg(res.msg, {icon: 1});
- });
}
@@ -721,6 +463,9 @@
let html = "";
for (let i = 0; i < line; i ++){
html += " <tr>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
+ " <td></td>\n" +
" <td></td>\n" +
" <td></td>\n" +
" <td></td>\n" +
@@ -783,4 +528,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