|  |  | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 源站/源库位 选择 --> | 
 |  |  |                 <div id="source-select" class="operator-item"> | 
 |  |  |                     <span class="select-title">源站/源库位</span> | 
 |  |  |                     <span class="select-title">源站</span> | 
 |  |  |                     <div class="select-container"> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>站</span> | 
 |  |  |                             <span>工位1源站</span> | 
 |  |  |                             <label><input id="sourceStaNo" type="number" name="points" min="0" /></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>--> | 
 |  |  | <!--                        </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> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>列</span> | 
 |  |  |                             <span>工位2源站</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> | 
 |  |  | <!--                        <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>--> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 目标站/目标库位 选择 --> | 
 |  |  |                 <div id="target-select" class="operator-item"> | 
 |  |  |                     <span class="select-title">目标站/目标库位</span> | 
 |  |  |                     <span class="select-title">目标站</span> | 
 |  |  |                     <div class="select-container"> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>站</span> | 
 |  |  |                             <span>工位1目标站</span> | 
 |  |  |                             <label><input id="staNo" type="number" name="points" min="0" /></label> | 
 |  |  |                         </div> | 
 |  |  | <!--                        <div class="select-container-item">--> | 
 |  |  | <!--                            <span>排</span>--> | 
 |  |  | <!--                            <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>--> | 
 |  |  | <!--                        </div>--> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>排</span> | 
 |  |  |                             <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>列</span> | 
 |  |  |                             <span>工位2目标站</span> | 
 |  |  |                             <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="select-container-item"> | 
 |  |  |                             <span>层</span> | 
 |  |  |                             <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label> | 
 |  |  |                         </div> | 
 |  |  | <!--                        <div class="select-container-item">--> | 
 |  |  | <!--                            <span>层</span>--> | 
 |  |  | <!--                            <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>--> | 
 |  |  | <!--                        </div>--> | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  | 
 |  |  |                 <fieldset> | 
 |  |  |                     <legend>手动操作</legend> | 
 |  |  |                     <div class="button-group"> | 
 |  |  |                         <button class="item" onclick="put()">入库</button> | 
 |  |  |                         <button class="item" onclick="take()">出库</button> | 
 |  |  |                         <button class="item" onclick="stockMove()">库位转移</button> | 
 |  |  |                         <button class="item" onclick="put()">取放货</button> | 
 |  |  |                         <button class="item" onclick="take()">取货</button> | 
 |  |  |                         <button class="item" onclick="stockMove()">放货</button> | 
 |  |  | <!--                        <button class="item" onclick="siteMove()">站到站</button>--> | 
 |  |  |                         <!--                <button class="item" onclick="bacOrigin()">回原点</button>--> | 
 |  |  |                         <!--                <button class="item" onclick="reverseOrigin()">反原点</button>--> | 
 |  |  | 
 |  |  |     // 初始化 | 
 |  |  |     var rgvOutputDom = document.getElementById("rgv-output"); | 
 |  |  |     $(document).ready(function() { | 
 |  |  |         getCommandLog(); | 
 |  |  |         // getCommandLog(); | 
 |  |  |         initRgvStateTable(); | 
 |  |  |         getRgvStateInfo(); | 
 |  |  |         initRgvMsgTable(); | 
 |  |  | 
 |  |  |     setInterval(function () { | 
 |  |  |         getRgvStateInfo(); | 
 |  |  |         getRgvMsgInfo(); | 
 |  |  |         getCommandLog(); | 
 |  |  |         // getCommandLog(); | 
 |  |  |     },1000); | 
 |  |  |     setInterval(function () { | 
 |  |  |         getRgvOutput(); | 
 |  |  |         operatorBlockShow(); | 
 |  |  |         initDemo(); | 
 |  |  |         // initDemo(); | 
 |  |  |     },500); | 
 |  |  |  | 
 |  |  |     // 判断手动操作模块是否可用 | 
 |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取堆垛机执行中的命令 | 
 |  |  |     // 获取RGV执行中的命令 | 
 |  |  |     function getCommandLog() { | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl + "/rgv/command/ongoing", | 
 |  |  | 
 |  |  |     function rgvOutput(content){ | 
 |  |  |         rgvOutputDom.value += content; | 
 |  |  |         rgvOutputDom.scrollTop = rgvOutputDom.scrollHeight; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     var rgvDemoData; | 
 |  |  |     function initDemo() { | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+"/rgv/demo/status", | 
 |  |  |             async: false, | 
 |  |  |             method: 'GET', | 
 |  |  |             success: function (res) { | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                     rgvDemoData = res.data; | 
 |  |  |                     rgvDemoData.forEach(function (e) { | 
 |  |  |                         $("#demoBtn-"+e.rgvNo).html(e.demo?'停止':'演示'); | 
 |  |  |                     }) | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     layer.msg(res.msg, {icon: 2}); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     function demoSwitch(el) { | 
 |  |  |         var rgvId = el.split("-")[1]; | 
 |  |  |         var opt; | 
 |  |  |         if (rgvDemoData == null) { | 
 |  |  |             initDemo(); | 
 |  |  |         } | 
 |  |  |         for (var i = 0; i<rgvDemoData.length; i++) { | 
 |  |  |             if (Number(rgvDemoData[i].rgvNo) === Number(rgvId)) { | 
 |  |  |                 opt = !rgvDemoData[i].demo; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         layer.confirm(rgvId + ' 号堆垛机确定'+ (opt?'开始':'停止') + '演示吗?', function(){ | 
 |  |  |             doDemo(rgvId, 'root', opt); // 停止wcs系统 | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     function doDemo(rgvId, password, opt) { | 
 |  |  |         // 加载tips | 
 |  |  |         var index = layer.load(1, { | 
 |  |  |             shade: [0.1,'#fff'] | 
 |  |  |         }); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/rgv/demo/switch", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             // async: false, | 
 |  |  |             data: { | 
 |  |  |                 rgvId: Number(rgvId), | 
 |  |  |                 password: password, | 
 |  |  |                 opt: opt | 
 |  |  |             }, | 
 |  |  |             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}); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | </script> |