| | |
| | | <link rel="stylesheet" type="text/css" href="../static/css/common.css"> |
| | | <link rel="stylesheet" type="text/css" href="../static/css/crn.css"> |
| | | <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script type="text/javascript" src="../static/js/common.js"></script> |
| | | <style> |
| | | |
| | | /* 任务作业选择框 */ |
| | | .task-operator { |
| | | height: 50%; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | </style> |
| | | </head> |
| | |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>排</span> |
| | | <label><input type="number" name="points" min="0" /></label> |
| | | <label><input type="number" name="points" min="0" style="background-color: #a9eeff" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>列</span> |
| | | <label><input type="number" name="points" min="0" /></label> |
| | | <label><input type="number" name="points" min="0" style="background-color: #a9eeff" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>层</span> |
| | | <label><input type="number" name="points" min="0" /></label> |
| | | <label><input type="number" name="points" min="0" style="background-color: #a9eeff" /></label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>排</span> |
| | | <label><input type="number" name="points" min="0" /></label> |
| | | <label><input type="number" name="points" min="0" style="background-color: #a9eeff" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>列</span> |
| | | <label><input type="number" name="points" min="0" /></label> |
| | | <label><input type="number" name="points" min="0" style="background-color: #a9eeff" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>层</span> |
| | | <label><input type="number" name="points" min="0" /></label> |
| | | <label><input type="number" name="points" min="0" style="background-color: #a9eeff" /></label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <!-- 设备任务操作 --> |
| | | <div class="task-operator"> |
| | | |
| | | <fieldset> |
| | | <legend>手动操作</legend> |
| | | <div class="button-group"> |
| | | <button class="item">入库</button> |
| | | <button class="item">出库</button> |
| | | <button class="item">库位转移</button> |
| | | <button class="item">站到站</button> |
| | | <button class="item">坐标移动</button> |
| | | <button class="item">回原点</button> |
| | | <button class="item">任务完成</button> |
| | | <button class="item">暂停</button> |
| | | <button class="item">启动</button> |
| | | <button class="item">清除命令</button> |
| | | </div> |
| | | </fieldset> |
| | | </div> |
| | | |
| | | </div> |
| | |
| | | </div> |
| | | </body> |
| | | <script> |
| | | |
| | | // 空白行数 |
| | | var crnStateTableBlankRows = 0; |
| | | var crnMsgTableBlankRows = 0; |
| | | // 实际行数 |
| | | var crnStateTableFullRows = 0; |
| | | var crnMsgTableFullRows = 0; |
| | | // 初始化 |
| | | var crnOutputDom = document.getElementById("crn-output"); |
| | | |
| | | // 空白表格渲染 |
| | | $(document).ready(function() { |
| | | // 表一 |
| | | var one1 = $('#crn-state-table thead').height(); |
| | | var total1 = $('.crn-state').height(); |
| | | var count1 = total1 / one1; |
| | | count1 = parseInt(count1); |
| | | var html1 = ""; |
| | | for (var i = 0; i < count1; i ++){ |
| | | html1 += " <tr>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " </tr>\n"; |
| | | } |
| | | $('#crn-state-table tbody').after(html1); |
| | | |
| | | // 表二 |
| | | var one2 = $('#crn-msg-table thead').height(); |
| | | var total2 = $('.crn-msg').height(); |
| | | var count2 = total2 / one2; |
| | | count2 = parseInt(count2); |
| | | var html2 = ""; |
| | | for (var i = 0; i < count2; i ++){ |
| | | html2 += " <tr>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " </tr>\n"; |
| | | } |
| | | $('#crn-msg-table tbody').after(html2); |
| | | initCrnStateTable(); |
| | | getCrnStateInfo(); |
| | | initCrnMsgTable(); |
| | | }); |
| | | // 数据更新 |
| | | setInterval(function () { |
| | | getCrnStateInfo(); |
| | | },500); |
| | | setInterval(function () { |
| | | getSiteOutput(); |
| | | },500); |
| | | |
| | | |
| | | // 堆垛机信息表获取 ---- 表一 |
| | | function getCrnStateInfo() { |
| | | var tableEl = $('#crn-state-table'); |
| | | $.ajax({ |
| | | url: baseUrl+ "/crn/table/crn/state", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | var table = res.data; |
| | | if (table.length > crnStateTableBlankRows && table.length !== crnStateTableFullRows) { |
| | | initCrnStateTable(table.length-crnStateTableBlankRows); |
| | | crnStateTableFullRows = 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].crnNo); |
| | | setVal(tr.children("td").eq(1), table[i-1].type); |
| | | setVal(tr.children("td").eq(2), table[i-1].warn); |
| | | setVal(tr.children("td").eq(3), table[i-1].loading); |
| | | setVal(tr.children("td").eq(4), table[i-1].bay); |
| | | setVal(tr.children("td").eq(5), table[i-1].lev); |
| | | setVal(tr.children("td").eq(6), table[i-1].forkOffset); |
| | | setVal(tr.children("td").eq(7), table[i-1].bayCoor); |
| | | setVal(tr.children("td").eq(8), table[i-1].levCoor); |
| | | setVal(tr.children("td").eq(9), table[i-1].complete); |
| | | setVal(tr.children("td").eq(10), table[i-1].workNo); |
| | | setVal(tr.children("td").eq(11), table[i-1].status); |
| | | setVal(tr.children("td").eq(12), table[i-1].warnCode); |
| | | } |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/login"; |
| | | } else { |
| | | alert(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 输送设备日志输出 |
| | | function getSiteOutput() { |
| | | $.ajax({ |
| | | url: baseUrl + "/crn/output/site", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200) { |
| | | crnOutput(res.data); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl + "/login"; |
| | | } else { |
| | | alert(res.msg); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // ------------------------------------------------------------------------------------------------ |
| | | |
| | | // 堆垛机信息表获取 ----- 表一 |
| | | function initCrnStateTable(row) { |
| | | var line; |
| | | if (row === undefined){ |
| | | var one = $('#crn-state-table thead').height(); |
| | | var total = $('.crn-state').height(); |
| | | var count = total / one; |
| | | count = parseInt(count) - 1; |
| | | crnStateTableBlankRows = count; |
| | | line = count; |
| | | } else { |
| | | line = row; |
| | | } |
| | | var html = ""; |
| | | for (var 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" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " </tr>\n"; |
| | | } |
| | | $('#crn-state-table tbody').after(html); |
| | | } |
| | | |
| | | // 堆垛机数据表获取 ----- 表二 |
| | | function initCrnMsgTable(row) { |
| | | var line; |
| | | if (row === undefined){ |
| | | var one = $('#crn-msg-table thead').height(); |
| | | var total = $('.crn-msg').height(); |
| | | var count = total / one; |
| | | count = parseInt(count) - 1; |
| | | crnMsgTableBlankRows = count; |
| | | line = count; |
| | | } else { |
| | | line = row; |
| | | } |
| | | var html = ""; |
| | | for (var 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" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " </tr>\n"; |
| | | } |
| | | $('#crn-msg-table tbody').after(html); |
| | | } |
| | | |
| | | // 日志输出框 |
| | | function crnOutput(content){ |
| | | crnOutputDom.value += content; |
| | | crnOutputDom.scrollTop = crnOutputDom.scrollHeight; |
| | | } |
| | | setInterval(function () { |
| | | crnOutput("\n" +new Date().toLocaleString() + "【2020-5-29 13:14:22】扫描plcA 目标站--273283723728327636432343234323422732837237283276364323432343234227328372372832763643234323432342"); |
| | | },500); |
| | | |
| | | |
| | | |
| | | </script> |