|  |  | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 堆垛机状态 --> | 
 |  |  |             <div class="machine-status"> | 
 |  |  |                 <div class="body-head">堆垛机状态</div> | 
 |  |  |                 <div class="state"> | 
 |  |  |                     <span>堆垛机 1</span> | 
 |  |  |                     <span class="state-ss machine-put-flag   ">入库</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="state"> | 
 |  |  |                     <span>堆垛机 2</span> | 
 |  |  |                     <span class="state-ss machine-auto-flag   ">自动</span> | 
 |  |  | <!--            <div class="machine-status">--> | 
 |  |  | <!--                <div class="body-head">堆垛机状态</div>--> | 
 |  |  | <!--                <div class="state">--> | 
 |  |  | <!--                    <span>堆垛机 1</span>--> | 
 |  |  | <!--                    <span class="state-ss machine-put-flag   ">入库</span>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--                <div class="state">--> | 
 |  |  | <!--                    <span>堆垛机 2</span>--> | 
 |  |  | <!--                    <span class="state-ss machine-auto-flag   ">自动</span>--> | 
 |  |  |  | 
 |  |  |                 </div> | 
 |  |  |                 <div class="button"><span>所有状态</span></div> | 
 |  |  |                 <div class="button item-group"> | 
 |  |  |                     <span class="machine-put-flag">入库</span> | 
 |  |  |                     <span class="machine-take-flag">出库</span> | 
 |  |  |                     <span class="machine-stock-move-flag">库到库</span> | 
 |  |  |                     <span class="machine-site-move-flag">站到站</span> | 
 |  |  |                     <span class="machine-p-move-flag">PToP</span> | 
 |  |  |                     <span class="machine-error-flag">异常</span> | 
 |  |  |                     <span class="machine-auto-flag">自动</span> | 
 |  |  |                     <span class="machine-unauto-flag">非自动/手动</span> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="line-status"> | 
 |  |  |                 <div class="body-head">输送线状态</div> | 
 |  |  |                 <div class="state states"> | 
 |  |  |                     <span>运输线总数</span> | 
 |  |  |                     <span id="line-total" class="line-ss"></span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="button"><span>所有状态</span></div> | 
 |  |  |                 <div class="button item-group"> | 
 |  |  |                     <span class="site-auto-run-id">自动+有物+ID</span> | 
 |  |  |                     <span class="site-auto-run">自动+有物</span> | 
 |  |  |                     <span class="site-auto-id">自动+ID</span> | 
 |  |  |                     <span class="site-auto">自动</span> | 
 |  |  |                     <span class="site-unauto">非自动/手动</span> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="bar-code"> | 
 |  |  |                 <div class="body-head" id="code">条码扫描器</div> | 
 |  |  |                 <div class="tablebox"> | 
 |  |  |                     <div class="table-head"> | 
 |  |  |                         <li><span>条码名称</span><span class="right">扫码时间</span></li> | 
 |  |  |                     </div> | 
 |  |  |                     <div id="barcode1" class="table-body"> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--                <div class="button"><span>所有状态</span></div>--> | 
 |  |  | <!--                <div class="button item-group">--> | 
 |  |  | <!--                    <span class="machine-put-flag">入库</span>--> | 
 |  |  | <!--                    <span class="machine-take-flag">出库</span>--> | 
 |  |  | <!--                    <span class="machine-stock-move-flag">库到库</span>--> | 
 |  |  | <!--                    <span class="machine-site-move-flag">站到站</span>--> | 
 |  |  | <!--                    <span class="machine-p-move-flag">PToP</span>--> | 
 |  |  | <!--                    <span class="machine-error-flag">异常</span>--> | 
 |  |  | <!--                    <span class="machine-auto-flag">自动</span>--> | 
 |  |  | <!--                    <span class="machine-unauto-flag">非自动/手动</span>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--            </div>--> | 
 |  |  | <!--            <div class="line-status">--> | 
 |  |  | <!--                <div class="body-head">输送线状态</div>--> | 
 |  |  | <!--                <div class="state states">--> | 
 |  |  | <!--                    <span>运输线总数</span>--> | 
 |  |  | <!--                    <span id="line-total" class="line-ss"></span>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--                <div class="button"><span>所有状态</span></div>--> | 
 |  |  | <!--                <div class="button item-group">--> | 
 |  |  | <!--                    <span class="site-auto-run-id">自动+有物+ID</span>--> | 
 |  |  | <!--                    <span class="site-auto-run">自动+有物</span>--> | 
 |  |  | <!--                    <span class="site-auto-id">自动+ID</span>--> | 
 |  |  | <!--                    <span class="site-auto">自动</span>--> | 
 |  |  | <!--                    <span class="site-unauto">非自动/手动</span>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--            </div>--> | 
 |  |  | <!--            <div class="bar-code">--> | 
 |  |  | <!--                <div class="body-head" id="code">条码扫描器</div>--> | 
 |  |  | <!--                <div class="tablebox">--> | 
 |  |  | <!--                    <div class="table-head">--> | 
 |  |  | <!--                        <li><span>条码名称</span><span class="right">扫码时间</span></li>--> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                    <div id="barcode1" class="table-body">--> | 
 |  |  |  | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="tablebox"> | 
 |  |  |                     <div class="table-head"> | 
 |  |  |                         <li><span>条码名称</span><span class="right">扫码时间</span></li> | 
 |  |  |                     </div> | 
 |  |  |                     <div id="barcode2" class="table-body"> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--                <div class="tablebox">--> | 
 |  |  | <!--                    <div class="table-head">--> | 
 |  |  | <!--                        <li><span>条码名称</span><span class="right">扫码时间</span></li>--> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                    <div id="barcode2" class="table-body">--> | 
 |  |  |  | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="tablebox"> | 
 |  |  |                     <div class="table-head"> | 
 |  |  |                         <li><span>条码名称</span><span class="right">扫码时间</span></li> | 
 |  |  |                     </div> | 
 |  |  |                     <div id="barcode3" class="table-body"> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--                <div class="tablebox">--> | 
 |  |  | <!--                    <div class="table-head">--> | 
 |  |  | <!--                        <li><span>条码名称</span><span class="right">扫码时间</span></li>--> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                    <div id="barcode3" class="table-body">--> | 
 |  |  |  | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  | <!--                    </div>--> | 
 |  |  | <!--                </div>--> | 
 |  |  | <!--            </div>--> | 
 |  |  | <!--        </div>--> | 
 |  |  |         <!-- 堆垛机弹窗 --> | 
 |  |  |         <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn"> | 
 |  |  |             <div id="crnWindow-head"> | 
 |  |  | 
 |  |  |             url: baseUrl + '/console/barcode/output/site', | 
 |  |  |             method: 'GET', | 
 |  |  |             success: function (res) { | 
 |  |  |                 console.log(res) | 
 |  |  |                 // console.log(res) | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                     tData = eval(res.data); | 
 |  |  |                     if (tData.length <= 5) { | 
 |  |  | 
 |  |  | </script> | 
 |  |  | <script type="text/javascript"> | 
 |  |  |     // 弹窗站点信息 | 
 |  |  |     $('.site').on('click', function () { | 
 |  |  |     $(document).on('click', '.site' ,function () { | 
 |  |  |         var id = this.id.split("-")[1]; | 
 |  |  |         $("#siteWindow").attr("style", "display:block;");//显示div | 
 |  |  |         $("#crnWindow").attr("style", "display:none;"); | 
 |  |  |         $(".detailed").empty(); | 
 |  |  |         $('.detailed').append(id + '站点详细信息'); | 
 |  |  |         $("#siteWindow").css("display", "block");//显示div | 
 |  |  |         $("#crnWindow").css("display", "none"); | 
 |  |  |         $(".detailed").empty().append(id + '站点详细信息'); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl + "/console/site/detail", | 
 |  |  |             headers: { | 
 |  |  | 
 |  |  |                     if (find[0].type === 'text') { | 
 |  |  |                         find.val(res.data[val]); | 
 |  |  |                     } else if (find[0].type === 'checkbox') { | 
 |  |  |                         find.attr("checked", res.data[val] === 'Y'); | 
 |  |  |                         find.prop("checked", res.data[val] === 'Y'); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |  | 
 |  |  |     }); | 
 |  |  |     // 堆垛机信息 | 
 |  |  |     $('.machine').on('click', function () { | 
 |  |  |     $(document).on('click', '.machine',function () { | 
 |  |  |         var id = this.id.split("-")[1]; | 
 |  |  |         $("#crnWindow").attr('style', 'display:block;'); | 
 |  |  |         $("#siteWindow").attr("style", "display:none;"); | 
 |  |  |         $('.detailed').empty(); | 
 |  |  |         $('.detailed').append(id + '号堆垛机'); | 
 |  |  |         $("#crnWindow").css("display","block"); | 
 |  |  |         $("#siteWindow").css("display","none"); | 
 |  |  |         $(".detailed").empty().append(id + '号堆垛机'); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl + "/console/crn/detail", | 
 |  |  |             headers: { | 
 |  |  |                 'token': localStorage.getItem('token') | 
 |  |  |             }, | 
 |  |  |             data: { | 
 |  |  |                 crnNo: id | 
 |  |  |             }, | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             data: {crnNo: id}, | 
 |  |  |             method: 'post', | 
 |  |  |             success: function (res) { | 
 |  |  |                 for (var val in res.data) { | 
 |  |  |                     var find = $("#crnWindow").find(":input[name='" + val + "']"); | 
 |  |  |                     if (find[0].type === 'text') { | 
 |  |  |                 for(var val in res.data){ | 
 |  |  |                     var find = $("#crnWindow").find(":input[name='"+ val + "']"); | 
 |  |  |                     if(find[0].type === 'text'){ | 
 |  |  |                         find.val(res.data[val]); | 
 |  |  |                     } else if (find[0].type === 'checkbox') { | 
 |  |  |                         find.attr("checked", res.data[val] === 'Y'); | 
 |  |  |                     }else if (find[0].type === 'checkbox'){ | 
 |  |  |                         find.prop("checked", res.data[val] === 'Y') | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |  | 
 |  |  |     }) | 
 |  |  | 
 |  |  |                             siteEl.html(sites[i].siteId); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         if (sites[i].siteId === '16' || sites[i].siteId === '016') { | 
 |  |  |                         if (sites[i].siteId === '1' || sites[i].siteId === '2' || sites[i].siteId === '3') { | 
 |  |  |  | 
 |  |  |                             carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta)); | 
 |  |  |                         } | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                         // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000); | 
 |  |  |                         // crns[i].bay = 15; | 
 |  |  |                         var offSet = 0; | 
 |  |  |                         switch (i) { | 
 |  |  |                             case 0: | 
 |  |  |                             case 1:; | 
 |  |  |                             case 2: | 
 |  |  |                             case 3: | 
 |  |  |                                 unit = 150; | 
 |  |  |                                 offSet = 550; | 
 |  |  |                                 break; | 
 |  |  |                             case 5: | 
 |  |  |                                 unit = 124; | 
 |  |  |                                 offSet = 550; | 
 |  |  |                                 break; | 
 |  |  |                             case 4: | 
 |  |  |                             case 6: | 
 |  |  |                                 unit = 62; | 
 |  |  |                                 offSet = 550; | 
 |  |  |                                 break; | 
 |  |  |                         } | 
 |  |  |                         var offSet = 120; | 
 |  |  |                         unit = 15; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                         if(crns[i].bay === 1){ | 
 |  |  |                             crnEl.animate({left: offSet + 'px'}, 1000); | 
 |  |  |                             crnEl.animate({left: offSet + 'px'}, 10); | 
 |  |  |                         } else { | 
 |  |  |                             crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000); | 
 |  |  |                             crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 10); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                     var barcodes = res.data; | 
 |  |  |                     for (var i = 0; i < barcodes.length; i++) { | 
 |  |  |                         $("#code-decoder-data-" + barcodes[i].barcodeId).html(barcodes[i].codeValue); | 
 |  |  |                         $("#barcode-"+barcodes[i].barcodeId).html(barcodes[i].codeValue ? barcodes[i].codeValue : "--"); | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403) { | 
 |  |  |                     parent.location.href = baseUrl + "/login"; | 
 |  |  | 
 |  |  |     function carAnimate(id, target) { | 
 |  |  |         // debugger | 
 |  |  |         var targetTop = 0; | 
 |  |  |         if (id === 16 || id === '16' || id === '016') { | 
 |  |  |         if (id === 1 || id === '1' || id === '2' || id === 2 || id === '3' || id === 3) { | 
 |  |  |             switch (target) { | 
 |  |  |                 case 1: | 
 |  |  |                     targetTop += 827; | 
 |  |  |                     targetTop += 792; | 
 |  |  |                     break; | 
 |  |  |                 case 2: | 
 |  |  |                     targetTop += 765; | 
 |  |  |                     targetTop += 771; | 
 |  |  |                     break; | 
 |  |  |                 case 3: | 
 |  |  |                     targetTop += 651; | 
 |  |  |                     targetTop += 727; | 
 |  |  |                     break; | 
 |  |  |                 case 4: | 
 |  |  |                     targetTop += 589; | 
 |  |  |                     targetTop += 706; | 
 |  |  |                     break; | 
 |  |  |                 case 5: | 
 |  |  |                     targetTop += 505; | 
 |  |  |                     targetTop += 662; | 
 |  |  |                     break; | 
 |  |  |                 case 6: | 
 |  |  |                     targetTop += 443; | 
 |  |  |                     targetTop += 620; | 
 |  |  |                     break; | 
 |  |  |                 case 7: | 
 |  |  |                     targetTop += 362; | 
 |  |  |                     targetTop += 578; | 
 |  |  |                     break; | 
 |  |  |                 case 8: | 
 |  |  |                     targetTop += 297; | 
 |  |  |                     targetTop += 530; | 
 |  |  |                     break; | 
 |  |  |                 case 9: | 
 |  |  |                     targetTop += 243; | 
 |  |  |                     targetTop += 190; | 
 |  |  |                     break; | 
 |  |  |                 case 10: | 
 |  |  |                     targetTop += 129; | 
 |  |  |                     targetTop += 147; | 
 |  |  |                     break; | 
 |  |  |                 case 11: | 
 |  |  |                     targetTop += 107; | 
 |  |  |                     break; | 
 |  |  |                 case 12: | 
 |  |  |                     targetTop += 63; | 
 |  |  |                     break; | 
 |  |  |                 default: | 
 |  |  |                     return; | 
 |  |  | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         $("#site-0" + id).animate({top: targetTop + 'px'}, 1000); | 
 |  |  |         $("#site-" + id).animate({top: targetTop + 'px'}, 1000); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  |