|  |  | 
 |  |  |     <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/lift.css"> | 
 |  |  |     <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script> | 
 |  |  | 
 |  |  |                         <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>伺服1错误</th> | 
 |  |  |                         <th>伺服2错误</th> | 
 |  |  |                         <th>伺服3错误</th> | 
 |  |  |                         <th>伺服4错误</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> | 
 |  |  | 
 |  |  |                 <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> | 
 |  |  |                     <th>令牌</th> | 
 |  |  |                 </tr> | 
 |  |  |                 </thead> | 
 |  |  |                 <tbody> | 
 |  |  | 
 |  |  |                     <div class="button-group"> | 
 |  |  |                         <select id="liftLev"> | 
 |  |  |                             <option value="1" selected>1F</option> | 
 |  |  |                             <option value="3">2F</option> | 
 |  |  |                             <option value="4">3F</option> | 
 |  |  |                             <option value="5">4F</option> | 
 |  |  |                             <option value="2">输送线位置</option> | 
 |  |  |                             <option value="2">2F</option> | 
 |  |  |                             <option value="3">3F</option> | 
 |  |  |                             <option value="4">4F</option> | 
 |  |  |                             <option value="5">5F</option> | 
 |  |  |                             <option value="6">6F</option> | 
 |  |  |                             <option value="7">7F</option> | 
 |  |  |                             <option value="8">8F</option> | 
 |  |  |                             <option value="9">9F</option> | 
 |  |  |                             <option value="10">10F</option> | 
 |  |  |                         </select> | 
 |  |  |                         <button class="item" onclick="liftOperator(1)">移动提升机</button> | 
 |  |  |                         <button class="item" onclick="liftOperator(3)">无货正转</button> | 
 |  |  |                         <button class="item" onclick="liftOperator(4)">无货反转</button> | 
 |  |  |                         <button class="item" onclick="liftOperator(5)">有货正转</button> | 
 |  |  |                         <button class="item" onclick="liftOperator(6)">有货反转</button> | 
 |  |  |                         <button class="item" onclick="liftOperator(7)">链条停止</button> | 
 |  |  |  | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>源站</span> | 
 |  |  |                             <label><input id="sourceStaNo" type="text" name="sourceStaNo" /></label> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>目标站</span> | 
 |  |  |                             <label><input id="staNo" type="text" name="staNo" /></label> | 
 |  |  |                         </div> | 
 |  |  |                         <button class="item" onclick="liftOperator(2)">移动托盘</button> | 
 |  |  |                         <button class="item" onclick="liftOperator(0)">复位</button> | 
 |  |  |                     </div> | 
 |  |  |                 </fieldset> | 
 |  |  | 
 |  |  |         <!-- 提升机日志输出 --> | 
 |  |  |         <div class="lift-output-board"> | 
 |  |  |             <textarea id="lift-output"></textarea> | 
 |  |  |         </div> | 
 |  |  |  | 
 |  |  |         <div id="lift-detl" style="display: none"> | 
 |  |  |             <div> | 
 |  |  |                 <div class="form-item"> | 
 |  |  |                     <label class="form-label">站号:</label> | 
 |  |  |                     <div class="form-input"> | 
 |  |  |                         <input id="liftNo" name="liftNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item"> | 
 |  |  |                     <label class="form-label">工作号:</label> | 
 |  |  |                     <div class="form-input"> | 
 |  |  |                         <input id="workNo" name="workNo" type="number" class="layui-input" lay-verify="number" autocomplete="off"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item"> | 
 |  |  |                     <label class="form-label">作业标记:</label> | 
 |  |  |                     <div class="form-input"> | 
 |  |  |                         <input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item"> | 
 |  |  |                     <label class="form-label">令牌:</label> | 
 |  |  |                     <div class="form-input"> | 
 |  |  |                         <input id="token" name="token" type="text" class="layui-input" autocomplete="off"> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item form-button-container"> | 
 |  |  |                     <button class="form-button" id="save">保存</button> | 
 |  |  |                     <button class="form-button" id="cancel" style="background-color: #D0D0D0">取消</button> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  |     </div> | 
 |  |  | </div> | 
 |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     var layerIdx; | 
 |  |  |     $(document).on('click ','.pos-btn', function () { | 
 |  |  |         let liftNo = Number($(this).parent().attr("data-liftNo")); | 
 |  |  |         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: $("#lift-detl"), | 
 |  |  |             success: function(layero, index){ | 
 |  |  |                 http.get(baseUrl+ "/lift/detl/"+liftNo, null, function (res) { | 
 |  |  |                     $('#liftNo').val(liftNo); | 
 |  |  |                     $('#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 () { | 
 |  |  |                 $('#liftNo').val(""); | 
 |  |  |                 $('#workNo').val(""); | 
 |  |  |                 $('#row').val(""); | 
 |  |  |                 $('#bay').val(""); | 
 |  |  |                 $('#lev').val(""); | 
 |  |  |                 $('#crnNo').val(""); | 
 |  |  |                 $('#pakMk').val(""); | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     }) | 
 |  |  |  | 
 |  |  |     var layerIdx0; | 
 |  |  |     $(document).on('click ','.mode-btn', function () { | 
 |  |  |         let liftNo = Number($(this).parent().attr("data-liftNo")); | 
 |  |  |         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: $("#lift-detl2"), | 
 |  |  |             success: function(layero, index){ | 
 |  |  |                 console.log(liftNo) | 
 |  |  |                 http.get(baseUrl+ "/lift/sensor/detl/"+liftNo, null, function (res) { | 
 |  |  |                     $('#liftNo1').val(res.data.liftNo); | 
 |  |  |                     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'); | 
 |  |  |                 }) | 
 |  |  |             }, | 
 |  |  |             end: function () { | 
 |  |  |                 $('#liftNo').val(""); | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     }) | 
 |  |  |  | 
 |  |  |     function getColor(res,e){ | 
 |  |  |         $(e).val(res?"✔":"—"); | 
 |  |  |         if (res){ | 
 |  |  | 
 |  |  |         http.post(baseUrl+ "/lift/detl/update", { | 
 |  |  |             liftNo: $('#liftNo').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 setliftRadio() { | 
 |  |  | 
 |  |  |                         setVal(tr.children("td").eq(0), table[i-1].liftNo); | 
 |  |  |                         setVal(tr.children("td").eq(1), table[i-1].taskNo); | 
 |  |  |                         setVal(tr.children("td").eq(2), table[i-1].protocolStatus$); | 
 |  |  |                         setVal(tr.children("td").eq(3), table[i-1].liftLock$); | 
 |  |  |                         setVal(tr.children("td").eq(4), table[i-1].positionArrivalFeedback); | 
 |  |  |                         setVal(tr.children("td").eq(5), table[i-1].ready$); | 
 |  |  |                         setVal(tr.children("td").eq(6), table[i-1].running$); | 
 |  |  |                         setVal(tr.children("td").eq(7), table[i-1].mode$); | 
 |  |  |                         setVal(tr.children("td").eq(8), table[i-1].platPositionDeviationAlarm$); | 
 |  |  |                         setVal(tr.children("td").eq(9), table[i-1].platTorqueDeviationAlarm$); | 
 |  |  |                         setVal(tr.children("td").eq(10), table[i-1].platShuttleCheck$); | 
 |  |  |                         setVal(tr.children("td").eq(11), table[i-1].notReady$); | 
 |  |  |                         setVal(tr.children("td").eq(12), table[i-1].servoError1); | 
 |  |  |                         setVal(tr.children("td").eq(13), table[i-1].servoError2); | 
 |  |  |                         setVal(tr.children("td").eq(14), table[i-1].servoError3); | 
 |  |  |                         setVal(tr.children("td").eq(15), table[i-1].servoError4); | 
 |  |  |                         setVal(tr.children("td").eq(16), table[i-1].liftActualSpeed); | 
 |  |  |                         setVal(tr.children("td").eq(3), table[i-1].model$); | 
 |  |  |                         setVal(tr.children("td").eq(4), table[i-1].busy$); | 
 |  |  |                         setVal(tr.children("td").eq(5), table[i-1].hasTray$); | 
 |  |  |                         setVal(tr.children("td").eq(6), table[i-1].hasCar$); | 
 |  |  |                         setVal(tr.children("td").eq(7), table[i-1].deviceError$); | 
 |  |  |                         setVal(tr.children("td").eq(8), table[i-1].frontOverrun$); | 
 |  |  |                         setVal(tr.children("td").eq(9), table[i-1].backOverrun$); | 
 |  |  |                         setVal(tr.children("td").eq(10), table[i-1].leftOverrun$); | 
 |  |  |                         setVal(tr.children("td").eq(11), table[i-1].rightOverrun$); | 
 |  |  |                         setVal(tr.children("td").eq(12), table[i-1].overHeight$); | 
 |  |  |                         setVal(tr.children("td").eq(13), table[i-1].overWeight$); | 
 |  |  |                         setVal(tr.children("td").eq(14), table[i-1].errCode$); | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     window.location.href = baseUrl+"/login"; | 
 |  |  | 
 |  |  |                         var tr = tableEl.find("tr").eq(i); | 
 |  |  |                         setVal(tr.children("td").eq(0), table[i-1].liftNo); | 
 |  |  |                         setVal(tr.children("td").eq(1), table[i-1].workNo); | 
 |  |  |                         setVal(tr.children("td").eq(2), table[i-1].lineFrontHasStock$); | 
 |  |  |                         setVal(tr.children("td").eq(3), table[i-1].forwardRotationFeedback$); | 
 |  |  |                         setVal(tr.children("td").eq(4), table[i-1].reverseFeedback$); | 
 |  |  |                         setVal(tr.children("td").eq(5), table[i-1].motorOverload$); | 
 |  |  |                         setVal(tr.children("td").eq(6), table[i-1].lineEndHasStock$); | 
 |  |  |                         setVal(tr.children("td").eq(7), table[i-1].inConveyLineCardTrayAlarm$); | 
 |  |  |                         setVal(tr.children("td").eq(8), table[i-1].outConveyLineCardTrayAlarm$); | 
 |  |  |                         setVal(tr.children("td").eq(9), table[i-1].pakMk); | 
 |  |  |                         setVal(tr.children("td").eq(2), table[i-1].taskAddress); | 
 |  |  |                         setVal(tr.children("td").eq(3), table[i-1].distAddress); | 
 |  |  |                         setVal(tr.children("td").eq(4), table[i-1].completeTaskNo); | 
 |  |  |                         setVal(tr.children("td").eq(5), table[i-1].lev); | 
 |  |  |                         setVal(tr.children("td").eq(6), table[i-1].pakMk); | 
 |  |  |                         setVal(tr.children("td").eq(7), table[i-1].shuttleNo); | 
 |  |  |                         setVal(tr.children("td").eq(8), table[i-1].token); | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     window.location.href = baseUrl+"/login"; | 
 |  |  | 
 |  |  |         http.post(baseUrl+"/lift/operator/lift", { | 
 |  |  |             liftNo: $('input[name="liftSelect"]:checked').val(), | 
 |  |  |             liftTaskMode: liftTaskMode, | 
 |  |  |             lev: $("#liftLev").val() | 
 |  |  |             lev: $("#liftLev").val(), | 
 |  |  |             sourceStaNo: $("#sourceStaNo").val(), | 
 |  |  |             staNo: $("#staNo").val() | 
 |  |  |         }, function (res) { | 
 |  |  |             layer.msg(res.msg, {icon: 1}); | 
 |  |  |         }); | 
 |  |  | 
 |  |  |         liftOutputDom.scrollTop = liftOutputDom.scrollHeight; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 详情操作 ------------------------------------------------------------------------- | 
 |  |  |     var layerDetl; | 
 |  |  |     $(document).on('dblclick ','#lift-msg-table tr', function () { | 
 |  |  |         var liftNo = $(this).children("td").eq(0).html(); | 
 |  |  |         if (liftNo !== null && liftNo !== "") { | 
 |  |  |             layerDetl = layer.open({ | 
 |  |  |                 type: 1, | 
 |  |  |                 title: false, | 
 |  |  |                 shadeClose: true, | 
 |  |  |                 offset: 'rt', | 
 |  |  |                 anim: 5, | 
 |  |  |                 shade: [0], | 
 |  |  |                 area: ['340px', '255px'], | 
 |  |  |                 closeBtn: 0, | 
 |  |  |                 content: $("#lift-detl"), | 
 |  |  |                 success: function(layero, index){ | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+ "/lift/table/lift/msg", | 
 |  |  |                         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 (liftNo == table[i-1].liftNo) { | 
 |  |  |                                         $('#liftNo').val(liftNo); | 
 |  |  |                                         $('#workNo').val(table[i-1].workNo); | 
 |  |  |                                         $('#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 () { | 
 |  |  |                     $('#liftNo').val(""); | 
 |  |  |                     $('#workNo').val(""); | 
 |  |  |                     $('#pakMk').val(""); | 
 |  |  |                     $('#token').val(""); | 
 |  |  |                 } | 
 |  |  |             }) | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     $(document).on('click ','#cancel', function () { | 
 |  |  |         $('#liftNo').val(""); | 
 |  |  |         $('#workNo').val(""); | 
 |  |  |         $('#pakMk').val(""); | 
 |  |  |         $('#token').val(""); | 
 |  |  |         layer.close(layerDetl); | 
 |  |  |     }) | 
 |  |  |  | 
 |  |  | </script> |