|  |  | 
 |  |  | <!DOCTYPE html> | 
 |  |  | <html lang="en"> | 
 |  |  | <head> | 
 |  |  |     <meta charset="utf-8"> | 
 |  |  |     <title>WCS控制中心</title> | 
 |  |  |     <link rel="stylesheet" href="../static/css/console.css"> | 
 |  |  |     <link rel="stylesheet" href="../static/css/animate.min.css"> | 
 |  |  |     <script src="../static/js/jquery/jquery-3.3.1.min.js"></script> | 
 |  |  |     <script src="../static/js/layer/layer.js"></script> | 
 |  |  |     <script type="text/javascript" src="../static/js/common.js"></script> | 
 |  |  | </head> | 
 |  |  | <body> | 
 |  |  | <div class="root"> | 
 |  |  |     <header class="header"> | 
 |  |  |         <h1>自动仓库WCS监控图</h1> | 
 |  |  |         <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6> | 
 |  |  |     </header> | 
 |  |  |     <main class="main"> | 
 |  |  |         <!--第1列 --> | 
 |  |  |         <div class="site-row site-row-1"> | 
 |  |  |             <div id="site-102" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 340px">102</div> | 
 |  |  |    <head> | 
 |  |  |       <meta charset="UTF-8"> | 
 |  |  |       <title>WCS控制中心</title> | 
 |  |  |       <link rel="stylesheet" href="../static/css/animate.min.css"> | 
 |  |  |       <link rel="stylesheet" href="../static/vue/element/element.css"> | 
 |  |  |       <link rel="stylesheet" href="../static/css/console_vue.css"> | 
 |  |  |       <link rel="stylesheet" href="../static/css/toggle-switch.css"> | 
 |  |  |       <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script> | 
 |  |  |       <script type="text/javascript" src="../static/layui/layui.js"></script> | 
 |  |  |       <script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script> | 
 |  |  |       <script type="text/javascript" src="../static/js/common.js"></script> | 
 |  |  |       <script type="text/javascript" src="../static/vue/js/vue.min.js"></script> | 
 |  |  |       <script type="text/javascript" src="../static/vue/element/element.js"></script> | 
 |  |  |    </head> | 
 |  |  |    <body> | 
 |  |  |       <div id="app"> | 
 |  |  |          <div style="display: flex;justify-content: center;align-items: center;width: 100%;margin-top: 150px;"> | 
 |  |  |             <div id="mapDataId" style="zoom: 0.7;position: relative;"> | 
 |  |  |                <div class="pointContainer" v-for="(row,index) in map" :key="index"> | 
 |  |  |                   <div v-for="(col,idx) in row" :key="idx"> | 
 |  |  |                      <div v-if="col.value == 0"> | 
 |  |  |                         <!-- 子轨道 路径为穿梭车预计路径则显示穿梭车颜色和穿梭车号 --> | 
 |  |  |                         <div :style="{background: checkAdvancePath(index,idx).length == 0 ? '':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item" v-if="col.data.length > 0">{{col.data}}</div> | 
 |  |  |                         <div :style="{background: checkAdvancePath(index,idx).length == 0 ? '':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item" v-else>{{checkAdvancePath(index,idx).length == 0 ? idx:checkAdvancePath(index,idx)}}</div> | 
 |  |  |                      </div> | 
 |  |  |                      <div v-else-if="col.value == 3"> | 
 |  |  |                         <!-- 母轨道 路径为穿梭车预计路径则显示穿梭车颜色和穿梭车号 --> | 
 |  |  |                         <div :style="{background: checkAdvancePath(index,idx).length == 0 ? '#5af':shuttleColorList[checkAdvancePath(index,idx)[0]]}" class="item">{{checkAdvancePath(index,idx).length == 0 ? '⇅⇄':checkAdvancePath(index,idx)}}</div> | 
 |  |  |                      </div> | 
 |  |  |                      <div v-else-if="col.value == 4"> | 
 |  |  |                         <!-- 站点 --> | 
 |  |  |                         <div class="site" :id="'site-' + col.data" @click="openSite(col.data)">{{col.data}}</div> | 
 |  |  |                      </div> | 
 |  |  |                      <div v-else-if="col.value == 5"> | 
 |  |  |                         <!-- 充电桩 --> | 
 |  |  |                         <div class="item" style="font-size: 24px">⚡</div> | 
 |  |  |                      </div> | 
 |  |  |                      <div v-else-if="col.value == -999"> | 
 |  |  |                         <!-- 路径占用区域 --> | 
 |  |  |                         <div class="item" style="background:#f83333;color: #fff;">{{idx}}</div> | 
 |  |  |                      </div> | 
 |  |  |                      <div v-else-if="col.value < 0"> | 
 |  |  |                         <!-- 禁止显示区域 --> | 
 |  |  |                         <div class="item" style="visibility: hidden">{{idx}}</div> | 
 |  |  |                      </div> | 
 |  |  |                      <div v-else> | 
 |  |  |                         <div class="item" v-if="col.data.length > 0">{{col.data}}</div> | 
 |  |  |                         <div class="item" v-else>{{idx}}-{{col.value}}</div> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |  | 
 |  |  |             <div id="site-101" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 20px">101</div> | 
 |  |  |                   <div> | 
 |  |  |                      <!-- 显示行号 --> | 
 |  |  |                      <div class="item" style="background: none;color: #000;">#{{index+1}}</div> | 
 |  |  |                   </div> | 
 |  |  |                </div> | 
 |  |  |  | 
 |  |  |             <div id="site-100" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 184px">100</div> | 
 |  |  |         </div> | 
 |  |  |         <!--第2列--> | 
 |  |  |         <div class="site-row site-row-2"> | 
 |  |  |             <!-- 台车轨道 --> | 
 |  |  |             <div id="car-track-1" class="car-track"> | 
 |  |  |                 <div></div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 台车实例 --> | 
 |  |  |             <div id="site-1000" class="site car">1000</div> | 
 |  |  |             <div id="site-2000" class="site car">2000</div> | 
 |  |  |         </div> | 
 |  |  |         <!-- 第3列 --> | 
 |  |  |         <div class="site-row site-row-3"> | 
 |  |  |             <div id="site-118" class="site" style="height: 18px;line-height: 18px;width:80px;">118</div> | 
 |  |  |                <!--输出小车--> | 
 |  |  |                <div v-for="(car,idx) in currentLevShuttleList" | 
 |  |  |                    :style="{ | 
 |  |  |                    left: getCarPosition(car.wcsPoint.x,car.wcsPoint.y)[1] | 
 |  |  |                    ,top: getCarPosition(car.wcsPoint.x,car.wcsPoint.y)[0] | 
 |  |  |                    ,color: shuttleColorList[car.shuttleNo] | 
 |  |  |                    }" | 
 |  |  |                    class="sxcar" :id="'sxcar-' + car.shuttleNo"> | 
 |  |  |                   {{car.shuttleNo}} | 
 |  |  |                </div> | 
 |  |  |  | 
 |  |  |             <div id="site-115" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 47px">115</div> | 
 |  |  |             </div> | 
 |  |  |  | 
 |  |  |             <div id="site-112" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 168px">112</div> | 
 |  |  |             <!--输出楼层--> | 
 |  |  |             <div style="height: 100%;"> | 
 |  |  |                <div class="floorBtnBox" v-for="(lev,idx) in floorList"> | 
 |  |  |                   <el-button :style="{background:currentLev === lev ? '#7DCDFF':''}" @click="changFloor(lev)">{{lev}}F</el-button> | 
 |  |  |                </div> | 
 |  |  |                <div> | 
 |  |  | <!--                  <el-button @click="testMove()">测试移动车</el-button>--> | 
 |  |  | <!--                  <el-button @click="resetMap()">重置地图</el-button>--> | 
 |  |  |                </div> | 
 |  |  |             </div> | 
 |  |  |          </div> | 
 |  |  |  | 
 |  |  |             <div id="site-107" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 105px">107</div> | 
 |  |  |          <div class="footer"> | 
 |  |  |             <!-- 总开关 --> | 
 |  |  |             <div class="line-status"> | 
 |  |  |                <div class="body-head">总开关</div> | 
 |  |  |                <div class="switch" @click="systemSwitch"> | 
 |  |  |                   <label id="system-toggle" class="toggle-switch" style="margin-left: 20px;"> | 
 |  |  |                      <input id="system-toggle-checked" disabled type="checkbox"> | 
 |  |  |                      <div class="button"> | 
 |  |  |                         <div class="light"></div> | 
 |  |  |                         <div class="dots"></div> | 
 |  |  |                         <div class="characters"></div> | 
 |  |  |                         <div class="shine"></div> | 
 |  |  |                         <div class="shadow"></div> | 
 |  |  |                      </div> | 
 |  |  |                   </label> | 
 |  |  |  | 
 |  |  |             <div id="site-103" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 184px">103</div> | 
 |  |  |         </div> | 
 |  |  |         <!-- 第4列 --> | 
 |  |  |         <div class="site-row site-row-4"> | 
 |  |  |             <div id="site-119" class="site" style="height: 18px;line-height: 18px;width:80px;">119</div> | 
 |  |  |                   <div class="switch_r"> | 
 |  |  |                      <p>系统状态</p> | 
 |  |  |                      <p id="system-run-desc">系统运行中</p> | 
 |  |  |                   </div> | 
 |  |  |                </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 四向穿梭车状态 --> | 
 |  |  |             <div class="line-status"> | 
 |  |  |                <div class="body-head">穿梭车状态</div> | 
 |  |  |                <div class="shuttle-status-box"> | 
 |  |  |                   <div v-for="(item,idx) in shuttleList" class="state"> | 
 |  |  |                      <span :style="{color: shuttleColorList[item.shuttleNo]}">四向穿梭车 {{item.shuttleNo}}</span> | 
 |  |  |                      <span v-if="item.protocolStatus == 1" | 
 |  |  |                         class="state-ss shuttle-idle">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 2" | 
 |  |  |                         class="state-ss shuttle-working">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 3" | 
 |  |  |                         class="state-ss shuttle-waiting">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 4" | 
 |  |  |                         class="state-ss shuttle-charging">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 5" | 
 |  |  |                         class="state-ss shuttle-charging-waiting">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 6" | 
 |  |  |                         class="state-ss shuttle-fixing">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 7" | 
 |  |  |                         class="state-ss shuttle-offline">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else class="state-ss shuttle-offline">{{item.protocolStatus$}}</span> | 
 |  |  |                   </div> | 
 |  |  |                </div> | 
 |  |  |                <div class="allStatus"><span>所有状态</span></div> | 
 |  |  |                <div class="allStatus item-group"> | 
 |  |  |                   <span class="shuttle-idle">空闲</span> | 
 |  |  |                   <span class="shuttle-working">作业中</span> | 
 |  |  |                   <span class="shuttle-waiting">等待确认</span> | 
 |  |  |                   <span class="shuttle-charging">充电中</span> | 
 |  |  |                   <span class="shuttle-charging-waiting">充电任务等待确认</span> | 
 |  |  |                   <span class="shuttle-fixing">故障修复中</span> | 
 |  |  |                   <span class="shuttle-offline">离线</span> | 
 |  |  |                </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 提升机状态 --> | 
 |  |  |             <div class="line-status"> | 
 |  |  |                <div class="body-head">提升机状态</div> | 
 |  |  |                <div class="lift-status-box"> | 
 |  |  |                   <div v-for="(item,idx) in liftList" class="state states"> | 
 |  |  |                      <span>提升机 {{item.liftNo}}</span> | 
 |  |  |                      <span v-if="item.protocolStatus == 1" | 
 |  |  |                         class="state-ss lift-idle">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 2" | 
 |  |  |                         class="state-ss lift-working">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 3" | 
 |  |  |                         class="state-ss lift-waiting">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else-if="item.protocolStatus == 4" | 
 |  |  |                         class="state-ss lift-offline">{{item.protocolStatus$}}</span> | 
 |  |  |                      <span v-else class="state-ss lift-offline">{{item.protocolStatus$}}</span> | 
 |  |  |                   </div> | 
 |  |  |                </div> | 
 |  |  |                <div class="allStatus"><span>所有状态</span></div> | 
 |  |  |                <div class="allStatus item-group"> | 
 |  |  |                   <span class="lift-idle">空闲</span> | 
 |  |  |                   <span class="lift-working">作业中</span> | 
 |  |  |                   <span class="lift-waiting">等待确认</span> | 
 |  |  |                   <span class="lift-offline">离线</span> | 
 |  |  |                </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 输送线状态 --> | 
 |  |  |             <div class="line-status"> | 
 |  |  |                <div class="body-head">输送线状态</div> | 
 |  |  |                <div class="state states"> | 
 |  |  |                   <span>运输线总数</span> | 
 |  |  |                   <span class="line-ss">9</span> | 
 |  |  |                </div> | 
 |  |  |                <div class="allStatus"><span>所有状态</span></div> | 
 |  |  |                <div class="allStatus 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"> | 
 |  |  |                      <li v-for="(item,index) in codeList1" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li> | 
 |  |  |                   </div> | 
 |  |  |                </div> | 
 |  |  |                <div class="tablebox"> | 
 |  |  |                   <div class="table-head"> | 
 |  |  |                      <li><span>条码名称</span><span class="right">扫码时间</span></li> | 
 |  |  |                   </div> | 
 |  |  |                   <div id="barcode2" class="table-body"> | 
 |  |  |                      <li v-for="(item,index) in codeList2" :key="index"><span>{{item.barcode}}</span><span class="right">{{item.time}}</span></li> | 
 |  |  |                   </div> | 
 |  |  |                </div> | 
 |  |  |             </div> | 
 |  |  |          </div> | 
 |  |  |  | 
 |  |  |             <div id="site-117" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 27px">117</div> | 
 |  |  |             <div id="site-116" class="site" style="height: 18px;line-height: 18px;width:80px;">116</div> | 
 |  |  |          <!-- 输送设备弹窗 --> | 
 |  |  |          <div id="siteWindow" :style="{display:siteWindow?'block':'none'}" class="animate__animated animate__fadeIn"> | 
 |  |  |             <!-- 表头 --> | 
 |  |  |             <div id="siteWindow-head"> | 
 |  |  |                <div class="detailed"></div> | 
 |  |  |                <button @click="siteWindow = false"></button> | 
 |  |  |             </div> | 
 |  |  |             <!-- 表内容 --> | 
 |  |  |             <div class="siteWindow-body"> | 
 |  |  |                <form> | 
 |  |  |                   <!-- 设备号 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>设备号:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="siteId" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 工作号 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>工作号:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="workNo" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 工作状态 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>工作状态:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="wrkSts" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <!-- 自动 --> | 
 |  |  |                      <div class="form-item-checkbox"> | 
 |  |  |                         <div class="form-item-label-checkbox"> | 
 |  |  |                            <span>自动</span> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="form-item-input-checkbox"> | 
 |  |  |                            <input type="checkbox" name="autoing"> | 
 |  |  |                         </div> | 
 |  |  |                      </div> | 
 |  |  |                      <!-- 有物 --> | 
 |  |  |                      <div class="form-item-checkbox"> | 
 |  |  |                         <div class="form-item-label-checkbox"> | 
 |  |  |                            <span>有物</span> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="form-item-input-checkbox"> | 
 |  |  |                            <input type="checkbox" name="loading"> | 
 |  |  |                         </div> | 
 |  |  |                      </div> | 
 |  |  |                      <!-- 能入 --> | 
 |  |  |                      <div class="form-item-checkbox"> | 
 |  |  |                         <div class="form-item-label-checkbox"> | 
 |  |  |                            <span>能入</span> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="form-item-input-checkbox"> | 
 |  |  |                            <input type="checkbox" name="canining"> | 
 |  |  |                         </div> | 
 |  |  |                      </div> | 
 |  |  |                      <!-- 能出 --> | 
 |  |  |                      <div class="form-item-checkbox"> | 
 |  |  |                         <div class="form-item-label-checkbox"> | 
 |  |  |                            <span>能出</span> | 
 |  |  |                         </div> | 
 |  |  |                         <div class="form-item-input-checkbox"> | 
 |  |  |                            <input type="checkbox" name="canouting"> | 
 |  |  |                         </div> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 出入类型 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>出入类型:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="ioType" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 源站 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>源站:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="sourceStaNo" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 目标站 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>目标站:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="staNo" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 源库位 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>源库位:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="sourceLocNo" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                   <!-- 目标库位 --> | 
 |  |  |                   <div class="form-item"> | 
 |  |  |                      <div class="form-item-label"> | 
 |  |  |                         <span>目标库位:</span> | 
 |  |  |                      </div> | 
 |  |  |                      <div class="form-item-input"> | 
 |  |  |                         <input type="text" name="locNo" value=""> | 
 |  |  |                      </div> | 
 |  |  |                   </div> | 
 |  |  |                </form> | 
 |  |  |             </div> | 
 |  |  |          </div> | 
 |  |  |  | 
 |  |  |             <div id="site-113" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 168px">113</div> | 
 |  |  |             <div id="site-114" class="site" style="height: 18px;line-height: 18px;width:80px;">114</div> | 
 |  |  |       </div> | 
 |  |  |       <script> | 
 |  |  |          var app = new Vue({ | 
 |  |  |             el: '#app', | 
 |  |  |             data: { | 
 |  |  |                map: [],//地图数据 | 
 |  |  |                currentLev: 1,//地图当前楼层 | 
 |  |  |                siteWindow: false, //站点弹窗显示默认不显示 | 
 |  |  |                floorList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], //当前项目楼层 | 
 |  |  |                shuttleList: [], //四向穿梭车集合 | 
 |  |  |                currentLevShuttleList: [],//当前楼层四向穿梭车集合 | 
 |  |  |                shuttleColorList: [],//四向穿梭车颜色集合 | 
 |  |  |                liftList: [], //提升机集合 | 
 |  |  |                systemStatus: true,//系统运行状态 | 
 |  |  |                consoleInterval: null,//定时器存储变量 | 
 |  |  |                codeList1: [],//条码List | 
 |  |  |                codeList2: [],//条码List | 
 |  |  |                ws: null, | 
 |  |  |             }, | 
 |  |  |             created() { | 
 |  |  |                this.init() | 
 |  |  |             }, | 
 |  |  |             watch: { | 
 |  |  |  | 
 |  |  |             <div id="site-111" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 25px">111</div> | 
 |  |  |             <div id="site-110" class="site" style="height: 18px;line-height: 18px;width:80px;">110</div> | 
 |  |  |             <div id="site-109" class="site" style="height: 18px;line-height: 18px;width:80px;">109</div> | 
 |  |  |             <div id="site-108" class="site" style="height: 18px;line-height: 18px;width:80px;">108</div> | 
 |  |  |             }, | 
 |  |  |             methods: { | 
 |  |  |                init() { | 
 |  |  |                   this.ws = new WebSocket("ws://" + window.location.host + baseUrl + "/console/websocket"); | 
 |  |  |                   this.ws.onopen = this.webSocketOnOpen | 
 |  |  |                   this.ws.onerror = this.webSocketOnError | 
 |  |  |                   this.ws.onmessage = this.webSocketOnMessage | 
 |  |  |                   this.ws.onclose = this.webSocketClose | 
 |  |  |  | 
 |  |  |             <div id="site-104" class="site" style="height: 18px;line-height: 18px;width:80px;margin-top: 184px">104</div> | 
 |  |  |             <div id="site-105" class="site" style="height: 18px;line-height: 18px;width:80px;">105</div> | 
 |  |  |         </div> | 
 |  |  |                   this.getMap(this.currentLev) | 
 |  |  |                   this.getSystemRunningStatus() //获取系统运行状态 | 
 |  |  |  | 
 |  |  |         <!-- 货架 + 堆垛机 + 入库站点 --> | 
 |  |  |         <div class="main-part"> | 
 |  |  |             <!-- 第一组 --> | 
 |  |  |             <div class="lane" style="margin-bottom: 280px"> | 
 |  |  |                 <!-- 货架 --> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">32#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">31#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 3号堆垛机 --> | 
 |  |  |                 <div class="crn"> | 
 |  |  |                     <hr class="pathway"> | 
 |  |  |                     <div id="crn-3" class="machine"></div> | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 货架 --> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">30#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">29#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">28#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">27#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <span class="row-no"></span> | 
 |  |  |                 <!-- 货架 --> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">26#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">25#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">24#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">23#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">22#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">21#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">20#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">19#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 货架 --> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">18#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 堆垛机 --> | 
 |  |  |                 <div class="crn"> | 
 |  |  |                     <hr class="pathway"> | 
 |  |  |                     <div id="crn-2" class="machine"></div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">17#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">16#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">15#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">14#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">13#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">12#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">11#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">10#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">9#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">8#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <span class="row-no"></span> | 
 |  |  |                 <!-- 货架 --> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">7#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">6#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">5#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">4#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">3#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">2#</span> | 
 |  |  |                 </div> | 
 |  |  |                 <!-- 堆垛机 --> | 
 |  |  |                 <div class="crn"> | 
 |  |  |                     <hr class="pathway"> | 
 |  |  |                     <div id="crn-1" class="machine"></div> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="stock-group"> | 
 |  |  |                     <button class="item">1</button> | 
 |  |  |                     <button class="item">2</button> | 
 |  |  |                     <button class="item">3</button> | 
 |  |  |                     <button class="item">4</button> | 
 |  |  |                     <button class="item">5</button> | 
 |  |  |                     <button class="item">6</button> | 
 |  |  |                     <button class="item">7</button> | 
 |  |  |                     <button class="item">8</button> | 
 |  |  |                     <button class="item">9</button> | 
 |  |  |                     <button class="item">10</button> | 
 |  |  |                     <button class="item">11</button> | 
 |  |  |                     <button class="item">12</button> | 
 |  |  |                     <button class="item">13</button> | 
 |  |  |                     <button class="item">14</button> | 
 |  |  |                     <button class="item">15</button> | 
 |  |  |                     <button class="item">16</button> | 
 |  |  |                     <button class="item">17</button> | 
 |  |  |                     <button class="item">18</button> | 
 |  |  |                     <button class="item">19</button> | 
 |  |  |                     <button class="item">20</button> | 
 |  |  |                     <button class="item">21</button> | 
 |  |  |                     <button class="item">22</button> | 
 |  |  |                     <button class="item">23</button> | 
 |  |  |                     <button class="item">24</button> | 
 |  |  |                     <button class="item">25</button> | 
 |  |  |                     <button class="item">26</button> | 
 |  |  |                     <span class="row-no">1#</span> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  |     </main> | 
 |  |  |     <footer class="footer"> | 
 |  |  |         <!-- 总开关 --> | 
 |  |  |         <div class="system-state"> | 
 |  |  |             <div class="body-head">总开关</div> | 
 |  |  |             <div class="switch"> | 
 |  |  |                 <div id="system-icon" class="system-icon-open" onclick="systemSwitch()"></div> | 
 |  |  |                 <div class="switch_r"> | 
 |  |  |                     <p>系统状态</p> | 
 |  |  |                     <p id="system-run-desc">系统运行中</p> | 
 |  |  |                 </div> | 
 |  |  |             </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> | 
 |  |  |                   this.consoleInterval = setInterval(() => { | 
 |  |  |                      this.getShuttleStateInfo() //获取四向穿梭车信息 | 
 |  |  |                      this.getLiftStateInfo() //获取提升机信息 | 
 |  |  |                      this.getSiteInfo() //获取输送站点数据 | 
 |  |  |                      this.getMap(this.currentLev) //获取实时地图数据 | 
 |  |  |                      this.getCodeData()//获取条码 | 
 |  |  |                   }, 1000) | 
 |  |  |                }, | 
 |  |  |                //获取地图数据 | 
 |  |  |                getMap(lev) { | 
 |  |  |                   this.sendWs(JSON.stringify({ | 
 |  |  |                      "url": "/console/map/auth", | 
 |  |  |                      "data": lev | 
 |  |  |                   })) | 
 |  |  |                }, | 
 |  |  |                setMap(res) { | 
 |  |  |                   //获取地图数据 | 
 |  |  |                   let data = res.data | 
 |  |  |                   let tmp = [] | 
 |  |  |                   for (let i = 1; i < data.length - 1; i++) { | 
 |  |  |                      tmp.push(data[i]) | 
 |  |  |                   } | 
 |  |  |                   // console.log(tmp) | 
 |  |  |                   this.map = tmp | 
 |  |  |                }, | 
 |  |  |                openSite(id) { | 
 |  |  |                   this.siteWindow = true; //打开站点信息弹窗 | 
 |  |  |                   $(".detailed").empty(); | 
 |  |  |                   $('.detailed').append(id + '站点详细信息'); | 
 |  |  |                   $.ajax({ | 
 |  |  |                      url: baseUrl + "/console/site/detail", | 
 |  |  |                      headers: { | 
 |  |  |                         'token': localStorage.getItem('token') | 
 |  |  |                      }, | 
 |  |  |                      data: { | 
 |  |  |                         siteId: id | 
 |  |  |                      }, | 
 |  |  |                      method: 'post', | 
 |  |  |                      success: function(res) { | 
 |  |  |                         for (var val in res.data) { | 
 |  |  |                            var find = $("#siteWindow").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'); | 
 |  |  |                            } | 
 |  |  |                         } | 
 |  |  |                      } | 
 |  |  |  | 
 |  |  |             </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 class="line-ss">48</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"> | 
 |  |  |                   }) | 
 |  |  |                }, | 
 |  |  |                getSiteInfo() { | 
 |  |  |                   //获取输送站点数据 | 
 |  |  |                   this.sendWs(JSON.stringify({ | 
 |  |  |                      "url": "/console/latest/data/site", | 
 |  |  |                      "data": {} | 
 |  |  |                   })) | 
 |  |  |                }, | 
 |  |  |                setSiteInfo(res) { | 
 |  |  |                   //获取输送站点数据 | 
 |  |  |                   if (res.code === 200){ | 
 |  |  |                      var sites = res.data; | 
 |  |  |                      for (var i = 0; i < sites.length; i++){ | 
 |  |  |                         var siteEl = $("#site-"+sites[i].siteId); | 
 |  |  |                         siteEl.attr("class", "site " + sites[i].siteStatus); | 
 |  |  |                         if (sites[i].workNo != null && sites[i].workNo>0) { | 
 |  |  |                            siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]"); | 
 |  |  |                         } else { | 
 |  |  |                            siteEl.html(sites[i].siteId); | 
 |  |  |                         } | 
 |  |  |                      } | 
 |  |  |                   } else if (res.code === 403){ | 
 |  |  |                      parent.location.href = baseUrl+"/login"; | 
 |  |  |                   }  else { | 
 |  |  |                      console.log(res.msg); | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |                changFloor(lev) { | 
 |  |  |                   this.currentLev = lev | 
 |  |  |                   this.currentLevShuttleList = [] | 
 |  |  |                   this.getMap(lev) | 
 |  |  |                }, | 
 |  |  |                getShuttleStateInfo() { | 
 |  |  |                   this.sendWs(JSON.stringify({ | 
 |  |  |                      "url": "/shuttle/table/shuttle/state", | 
 |  |  |                      "data": {} | 
 |  |  |                   })) | 
 |  |  |                }, | 
 |  |  |                setShuttleStateInfo(res) { | 
 |  |  |                   // 四向穿梭车信息表获取 | 
 |  |  |                   let that = this | 
 |  |  |                   if (res.code == 200) { | 
 |  |  |                      let currentLevShuttle = []//当前楼层小车集合 | 
 |  |  |                      res.data.forEach((item,idx) => { | 
 |  |  |                         if (item != null && item.point != undefined && item.point != null) { | 
 |  |  |                            if (item.point.z == that.currentLev) { | 
 |  |  |                               currentLevShuttle.push(item); | 
 |  |  |                            } | 
 |  |  |                         } | 
 |  |  |                      }) | 
 |  |  |                      that.currentLevShuttleList = currentLevShuttle | 
 |  |  |                      that.shuttleList = res.data | 
 |  |  |  | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="tablebox"> | 
 |  |  |                 <div class="table-head"> | 
 |  |  |                     <li><span>条码名称</span><span class="right">扫码时间</span></li> | 
 |  |  |                 </div> | 
 |  |  |                 <div id="barcode2" class="table-body"> | 
 |  |  |                      if (that.shuttleColorList.length == 0) { | 
 |  |  |                         let colorList = []//随机小车颜色 | 
 |  |  |                         res.data.forEach((item,idx) => { | 
 |  |  |                            colorList[item.shuttleNo] = that.colorRGB() | 
 |  |  |                         }) | 
 |  |  |                         that.shuttleColorList = colorList | 
 |  |  |                      } | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |                getLiftStateInfo() { | 
 |  |  |                   // 提升机信息表获取 | 
 |  |  |                   this.sendWs(JSON.stringify({ | 
 |  |  |                      "url": "/lift/table/lift/state", | 
 |  |  |                      "data": {} | 
 |  |  |                   })) | 
 |  |  |                }, | 
 |  |  |                setLiftStateInfo(res) { | 
 |  |  |                   // 提升机信息表获取 | 
 |  |  |                   if (res.code == 200) { | 
 |  |  |                      this.liftList = res.data | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |                systemSwitch() { | 
 |  |  |                   // 系统开关 | 
 |  |  |                   let that = this | 
 |  |  |                   if (this.systemStatus) { | 
 |  |  |                      this.$prompt('请输入口令,并停止WCS系统', '提示', { | 
 |  |  |                         confirmButtonText: '确定', | 
 |  |  |                         cancelButtonText: '取消', | 
 |  |  |                      }).then(({ | 
 |  |  |                         value | 
 |  |  |                      }) => { | 
 |  |  |                         that.doSwitch(0, value) | 
 |  |  |                      }).catch(() => { | 
 |  |  |  | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="tablebox"> | 
 |  |  |                 <div class="table-head"> | 
 |  |  |                     <li><span>条码名称</span><span class="right">扫码时间</span></li> | 
 |  |  |                 </div> | 
 |  |  |                 <div id="barcode3" class="table-body"> | 
 |  |  |                      }); | 
 |  |  |                   } else { | 
 |  |  |                      this.doSwitch(1) | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |                doSwitch(operatorType, password) { | 
 |  |  |                   let that = this | 
 |  |  |                   $.ajax({ | 
 |  |  |                      url: baseUrl + "/console/system/switch", | 
 |  |  |                      headers: { | 
 |  |  |                         'token': localStorage.getItem('token') | 
 |  |  |                      }, | 
 |  |  |                      data: { | 
 |  |  |                         operatorType: operatorType, | 
 |  |  |                         password: password | 
 |  |  |                      }, | 
 |  |  |                      method: 'POST', | 
 |  |  |                      success: function(res) { | 
 |  |  |                         if (res.code === 200) { | 
 |  |  |                            if (res.data.status) { | 
 |  |  |                               $('#system-toggle-checked').attr("checked", true); | 
 |  |  |                               $('#system-run-desc').html("系统运行中..."); | 
 |  |  |                               that.systemStatus = true; | 
 |  |  |                               parent.systemRunning = true; | 
 |  |  |                            } else { | 
 |  |  |                               $('#system-toggle-checked').attr("checked", false); | 
 |  |  |                               $('#system-run-desc').html("系统已停止!"); | 
 |  |  |                               that.systemStatus = false; | 
 |  |  |                               parent.systemRunning = false; | 
 |  |  |                            } | 
 |  |  |                         } else if (res.code === 403) { | 
 |  |  |                            parent.location.href = baseUrl + "/login"; | 
 |  |  |                         } else { | 
 |  |  |                            that.$message({ | 
 |  |  |                               message: res.msg, | 
 |  |  |                               type: 'error' | 
 |  |  |                            }); | 
 |  |  |                         } | 
 |  |  |                      } | 
 |  |  |                   }); | 
 |  |  |                }, | 
 |  |  |                getSystemRunningStatus() { | 
 |  |  |                   // 获取wcs系统运行状态 | 
 |  |  |                   let that = this | 
 |  |  |                   $.ajax({ | 
 |  |  |                      url: baseUrl + "/console/system/running/status", | 
 |  |  |                      headers: { | 
 |  |  |                         'token': localStorage.getItem('token') | 
 |  |  |                      }, | 
 |  |  |                      method: 'POST', | 
 |  |  |                      success: function(res) { | 
 |  |  |                         if (res.code === 200) { | 
 |  |  |                            if (res.data.status) { | 
 |  |  |                               $('#system-toggle-checked').attr("checked", true); | 
 |  |  |                               $('#system-run-desc').html("系统运行中..."); | 
 |  |  |                               that.systemStatus = true; | 
 |  |  |                               parent.systemRunning = true; | 
 |  |  |                            } else { | 
 |  |  |                               $('#system-toggle-checked').attr("checked", false); | 
 |  |  |                               $('#system-run-desc').html("系统已停止!"); | 
 |  |  |                               that.systemStatus = false; | 
 |  |  |                               parent.systemRunning = false; | 
 |  |  |                            } | 
 |  |  |                         } else if (res.code === 403) { | 
 |  |  |                            parent.location.href = baseUrl + "/login"; | 
 |  |  |                         } else { | 
 |  |  |                            that.$message({ | 
 |  |  |                               message: res.msg, | 
 |  |  |                               type: 'error' | 
 |  |  |                            }); | 
 |  |  |                         } | 
 |  |  |                      } | 
 |  |  |                   }); | 
 |  |  |                }, | 
 |  |  |                getCarPosition(x,y) { | 
 |  |  |                   //计算四向穿梭车图标位置 | 
 |  |  |                   let top = (x * 35 - 35) + "px" //需要减去小车自己所占高度 | 
 |  |  |                   let left = (y * 35) + "px" //需要减去小车自己所占宽度 | 
 |  |  |                   return [top,left]; | 
 |  |  |                }, | 
 |  |  |                testMove() { | 
 |  |  |                   let that = this | 
 |  |  |                   clearInterval(this.consoleInterval)//清理定时器 | 
 |  |  |  | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  |     </footer> | 
 |  |  |                   let shuttleList = this.currentLevShuttleList | 
 |  |  |                   $.ajax({ | 
 |  |  |                      url: baseUrl + "/static/testMoveData.json", | 
 |  |  |                      headers: { | 
 |  |  |                         'token': localStorage.getItem('token') | 
 |  |  |                      }, | 
 |  |  |                      method: 'GET', | 
 |  |  |                      success: function(res) { | 
 |  |  |                         shuttleList[0].moveAdvancePath = res | 
 |  |  |                         that.currentLevShuttleList = shuttleList | 
 |  |  |  | 
 |  |  |     <!-- 堆垛机弹窗 --> | 
 |  |  |     <div id="crnWindow" style="display: none;" class="animate__animated animate__fadeIn"> | 
 |  |  |         <div id="crnWindow-head"> | 
 |  |  |             <div class='detailed'></div> | 
 |  |  |             <button></button> | 
 |  |  |         </div> | 
 |  |  |         <form> | 
 |  |  |             <!-- 堆垛机号 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label" style> | 
 |  |  |                     <span>堆垛机号:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="crnNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 工作号 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>工作号:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="workNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 站源 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>站源:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="sourceStaNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 目标站 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>目标站:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="staNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 工作状态 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>工作状态:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="wrkSts" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 出入类型 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>出入类型:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="ioType" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 源库位 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>源库位:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="sourceLocNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 目标库位 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>目标库位:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="locNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 堆垛机状态 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>堆垛机状态:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="crnStatus" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 异常 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>异常:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="error" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |         </form> | 
 |  |  |     </div> | 
 |  |  |  | 
 |  |  |     <!-- 输送设备弹窗 --> | 
 |  |  |     <div id="siteWindow" style="display: none;" class="animate__animated animate__fadeIn"> | 
 |  |  |         <!-- 表头 --> | 
 |  |  |         <div id="siteWindow-head"> | 
 |  |  |             <div class='detailed'></div> | 
 |  |  |             <button></button> | 
 |  |  |         </div> | 
 |  |  |         <form> | 
 |  |  |             <!-- 设备号 --> | 
 |  |  |             <div class="form-item"  > | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>设备号:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="siteId" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 工作号 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>工作号:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="workNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 工作状态 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>工作状态:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="wrkSts" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 自动 --> | 
 |  |  |             <div class="form-item-checkbox"> | 
 |  |  |                 <div class="form-item-label-checkbox"> | 
 |  |  |                     <span>自动</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input-checkbox"> | 
 |  |  |                     <input type="checkbox" name="autoing"> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 有物 --> | 
 |  |  |             <div class="form-item-checkbox"> | 
 |  |  |                 <div class="form-item-label-checkbox"> | 
 |  |  |                     <span>有物</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input-checkbox"> | 
 |  |  |                     <input type="checkbox" name="loading"> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 能入 --> | 
 |  |  |             <div class="form-item-checkbox"> | 
 |  |  |                 <div class="form-item-label-checkbox"> | 
 |  |  |                     <span>能入</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input-checkbox"> | 
 |  |  |                     <input type="checkbox" name="canining"> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 能出 --> | 
 |  |  |             <div class="form-item-checkbox"> | 
 |  |  |                 <div class="form-item-label-checkbox"> | 
 |  |  |                     <span>能出</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input-checkbox"> | 
 |  |  |                     <input type="checkbox" name="canouting"> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 出入类型 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>出入类型:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="ioType" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 源站 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>源站:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="sourceStaNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 目标站 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>目标站:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="staNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 源库位 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>源库位:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="sourceLocNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- 目标库位 --> | 
 |  |  |             <div class="form-item"> | 
 |  |  |                 <div class="form-item-label"> | 
 |  |  |                     <span>目标库位:</span> | 
 |  |  |                 </div> | 
 |  |  |                 <div class="form-item-input"> | 
 |  |  |                     <input type="text" name="locNo" value=""> | 
 |  |  |                 </div> | 
 |  |  |             </div> | 
 |  |  |  | 
 |  |  |         </form> | 
 |  |  |     </div> | 
 |  |  | </div> | 
 |  |  | </body> | 
 |  |  |                         let index = 0 | 
 |  |  |                         let tmp = null | 
 |  |  |                         tmp = setInterval(() => { | 
 |  |  |                            if (index < res.length) { | 
 |  |  |                               that.currentLevShuttleList[0].wcsPoint.y = res[index].y | 
 |  |  |                               that.currentLevShuttleList[0].wcsPoint.x = res[index].x | 
 |  |  |                               index++ | 
 |  |  |                            }else { | 
 |  |  |                               clearInterval(tmp) | 
 |  |  |                               that.init() | 
 |  |  |                            } | 
 |  |  |                         },1000) | 
 |  |  |                      } | 
 |  |  |                   }); | 
 |  |  |                }, | 
 |  |  |                colorRGB(){ | 
 |  |  |                   //随机颜色 | 
 |  |  |                   const r = Math.floor(Math.random()*256); | 
 |  |  |                   const g = Math.floor(Math.random()*256); | 
 |  |  |                   const b = Math.floor(Math.random()*256); | 
 |  |  |                   return `rgb(${r},${g},${b})`; | 
 |  |  |                }, | 
 |  |  |                checkAdvancePath(x,y) { | 
 |  |  |                   //检测路径是否为穿梭车预计路径,如x和y路径是穿梭车预计路径,则返回小车号 | 
 |  |  |                   this.currentLevShuttleList.forEach((item,idx) => { | 
 |  |  |                      if (item.moveAdvancePath != null) { | 
 |  |  |                         item.moveAdvancePath.forEach((path,index) => { | 
 |  |  |                            if (path.x === x && path.y === y) { | 
 |  |  |                               return item.shuttleNo; | 
 |  |  |                            } | 
 |  |  |                         }) | 
 |  |  |                      } | 
 |  |  |                   }) | 
 |  |  |                   let data = [] | 
 |  |  |                   let shuttleList = this.currentLevShuttleList; | 
 |  |  |                   for (var i = 0; i < shuttleList.length; i++) { | 
 |  |  |                      let shuttle = shuttleList[i] | 
 |  |  |                      let moveAdvancePath = shuttle.moveAdvancePath | 
 |  |  |                      if (moveAdvancePath != null) { | 
 |  |  |                         for (var j = 0; j < moveAdvancePath.length; j++) { | 
 |  |  |                            let path = moveAdvancePath[j] | 
 |  |  |                            if (path.x-1 === x && path.y === y) {//路径符合 | 
 |  |  |                               data.push(shuttle.shuttleNo) | 
 |  |  |                               continue; | 
 |  |  |                            } | 
 |  |  |                         } | 
 |  |  |                      } | 
 |  |  |                   } | 
 |  |  |                   return data;//返回小车号集合 | 
 |  |  |                }, | 
 |  |  |                resetMap() { | 
 |  |  |                   //重置地图 | 
 |  |  |                   let that = this | 
 |  |  |                   $.ajax({ | 
 |  |  |                      url:baseUrl+"/console/map/resetMap/" + this.currentLev, | 
 |  |  |                      headers:{ | 
 |  |  |                         'token': localStorage.getItem('token') | 
 |  |  |                      }, | 
 |  |  |                      data:{}, | 
 |  |  |                      method:'get', | 
 |  |  |                      success:function (res) { | 
 |  |  |                         that.$message({ | 
 |  |  |                            message: that.currentLev + '层地图重置完成', | 
 |  |  |                            type: 'success' | 
 |  |  |                         }); | 
 |  |  |                      } | 
 |  |  |                   }) | 
 |  |  |                }, | 
 |  |  |                getCodeData(){ | 
 |  |  |                   this.sendWs(JSON.stringify({ | 
 |  |  |                      "url": "/console/barcode/output/site", | 
 |  |  |                      "data": {} | 
 |  |  |                   })) | 
 |  |  |                }, | 
 |  |  |                setCodeData(res) { | 
 |  |  |                   if(res.code === 200){ | 
 |  |  |                      let data = JSON.parse(res.data) | 
 |  |  |                      if (data.length <= 5) { | 
 |  |  |                         this.codeList1 = data; | 
 |  |  |                      } else { | 
 |  |  |                         this.codeList1 = data.slice(0, 5); | 
 |  |  |                         this.codeList2 = data.splice(5, 10); | 
 |  |  |                      } | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |                webSocketOnOpen(e) { | 
 |  |  |                   console.log("open"); | 
 |  |  |                }, | 
 |  |  |                webSocketOnError(e) { | 
 |  |  |                   console.log(e); | 
 |  |  |                }, | 
 |  |  |                webSocketOnMessage(e) { | 
 |  |  |                   const result = JSON.parse(e.data); | 
 |  |  |                   if (result.url == "/shuttle/table/shuttle/state") { | 
 |  |  |                      this.setShuttleStateInfo(JSON.parse(result.data)) | 
 |  |  |                   }else if (result.url == "/lift/table/lift/state") { | 
 |  |  |                      this.setLiftStateInfo(JSON.parse(result.data)) | 
 |  |  |                   }else if (result.url == "/console/latest/data/site") { | 
 |  |  |                      this.setSiteInfo(JSON.parse(result.data)) | 
 |  |  |                   }else if (result.url == "/console/map/auth") { | 
 |  |  |                      this.setMap(JSON.parse(result.data)) | 
 |  |  |                   }else if (result.url == "/console/barcode/output/site") { | 
 |  |  |                      this.setCodeData(JSON.parse(result.data)) | 
 |  |  |                   } | 
 |  |  |                }, | 
 |  |  |                webSocketClose(e) { | 
 |  |  |                   console.log("close"); | 
 |  |  |                }, | 
 |  |  |                sendWs(message) { | 
 |  |  |                   if (this.ws.readyState == WebSocket.OPEN) { | 
 |  |  |                      this.ws.send(message) | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |          }) | 
 |  |  |       </script> | 
 |  |  |    </body> | 
 |  |  | </html> | 
 |  |  | <script> | 
 |  |  |     var tData = [] | 
 |  |  |     var tData1 = [] | 
 |  |  |     var tData2 = [] | 
 |  |  |     var tData3 = [] | 
 |  |  |     function getCodeData(){ | 
 |  |  |         $.ajax({ | 
 |  |  |             url:baseUrl +'/console/barcode/output/site', | 
 |  |  |             method:'GET', | 
 |  |  |             success:function (res) { | 
 |  |  |                 if(res.code === 200){ | 
 |  |  |                     tData = eval(res.data); | 
 |  |  |                     if(tData.length<=5){ | 
 |  |  |                         tData1 = tData | 
 |  |  |                     } else if (tData.length<=10){ | 
 |  |  |                         tData1 = tData.slice(0,5) | 
 |  |  |                         tData.splice(0,5) | 
 |  |  |                         tData2 = tData | 
 |  |  |                     } else if(tData.length<=15){ | 
 |  |  |                         tData1 = tData.slice(0,5) | 
 |  |  |                         tData2 = tData.slice(6,10) | 
 |  |  |                         tData.splice(0,10) | 
 |  |  |                         tData3 = tData | 
 |  |  |                     } else { | 
 |  |  |                         tData = tData.slice(-15) | 
 |  |  |                         tData1 = tData.slice(-15) | 
 |  |  |                         tData2 = tData.slice(-10) | 
 |  |  |                         tData3 = tData.slice(-5) | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |     setInterval(function () { | 
 |  |  |         getCodeData(); | 
 |  |  |         renderBarCode(); | 
 |  |  |     }, 1000) | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     function renderBarCode() { | 
 |  |  |         for (var i = 0;i<tData1.length;i++){ | 
 |  |  |             var str1 = '<li><span>' + tData1[i].barcode + '</span><span class="right">' + tData1[i].time + '</span></li>' | 
 |  |  |             $('#barcode1').append(str1) | 
 |  |  |         } | 
 |  |  |         for(var j = 0;j<tData2.length;j++){ | 
 |  |  |             var str2 = '<li><span>' + tData2[j].barcode + '</span><span class="right">' + tData2[j].time + '</span></li>' | 
 |  |  |             $('#barcode2').append(str2) | 
 |  |  |         } | 
 |  |  |         for(var k = 0;k<tData3.length;k++){ | 
 |  |  |             var str3 = '<li><span>' + tData3[k].barcode + '</span><span class="right">' + tData3[k].time + '</span></li>' | 
 |  |  |             $('#barcode3').append(str3) | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 小车偏移动画 | 
 |  |  |     function carAnimate(id, target) { | 
 |  |  |         if (id === 1000) { | 
 |  |  |             let targetTop = 130; | 
 |  |  |             switch (target) { | 
 |  |  |                 case 110: | 
 |  |  |                     targetTop += 0; | 
 |  |  |                     break; | 
 |  |  |                 case 109: | 
 |  |  |                     targetTop += 60; | 
 |  |  |                     break; | 
 |  |  |                 case 108: | 
 |  |  |                     targetTop += 100; | 
 |  |  |                     break; | 
 |  |  |                 case 107: | 
 |  |  |                     targetTop += 180; | 
 |  |  |                     break; | 
 |  |  |                 case 106: | 
 |  |  |                     targetTop += 220; | 
 |  |  |                     break; | 
 |  |  |                 default: | 
 |  |  |                     return; | 
 |  |  |             } | 
 |  |  |             $("#site-" + id).animate({top: targetTop+'px'}, 1000); | 
 |  |  |         } else if (id === 2000) { | 
 |  |  |             let targetTop = 130; | 
 |  |  |             switch (target) { | 
 |  |  |                 case 226: | 
 |  |  |                     targetTop += 0; | 
 |  |  |                     break; | 
 |  |  |                 case 225: | 
 |  |  |                     targetTop += 60; | 
 |  |  |                     break; | 
 |  |  |                 case 224: | 
 |  |  |                     targetTop += 100; | 
 |  |  |                     break; | 
 |  |  |                 case 223: | 
 |  |  |                     targetTop += 180; | 
 |  |  |                     break; | 
 |  |  |                 case 222: | 
 |  |  |                     targetTop += 220; | 
 |  |  |                     break; | 
 |  |  |                 case 214: | 
 |  |  |                     targetTop += 280; | 
 |  |  |                     break; | 
 |  |  |                 case 220: | 
 |  |  |                     targetTop += 320; | 
 |  |  |                     break; | 
 |  |  |                 default: | 
 |  |  |                     return; | 
 |  |  |             } | 
 |  |  |             $("#site-" + id).animate({top: targetTop+'px'}, 1000); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | </script> | 
 |  |  | <script type="text/javascript"> | 
 |  |  |     // 弹窗站点信息 | 
 |  |  |     $('.site').on('click',function(){ | 
 |  |  |         var id = this.id.split("-")[1]; | 
 |  |  |         $("#siteWindow").attr("style","display:block;");//显示div | 
 |  |  |         $("#crnWindow").attr("style","display:none;"); | 
 |  |  |         $(".detailed").empty(); | 
 |  |  |         $('.detailed').append(id+'站点详细信息'); | 
 |  |  |         $.ajax({ | 
 |  |  |             url:baseUrl+"/console/site/detail", | 
 |  |  |             headers:{ | 
 |  |  |                 'token': localStorage.getItem('token') | 
 |  |  |             }, | 
 |  |  |             data:{ | 
 |  |  |                 siteId: id | 
 |  |  |             }, | 
 |  |  |             method:'post', | 
 |  |  |             success:function (res) { | 
 |  |  |                 for (var val in res.data) { | 
 |  |  |                     var find = $("#siteWindow").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'); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         }) | 
 |  |  |  | 
 |  |  |     }); | 
 |  |  |     // 堆垛机信息 | 
 |  |  |     $('.machine').on('click',function(){ | 
 |  |  |         var id = this.id.split("-")[1]; | 
 |  |  |         $("#crnWindow").attr('style','display:block;'); | 
 |  |  |         $("#siteWindow").attr("style","display:none;"); | 
 |  |  |         $('.detailed').empty(); | 
 |  |  |         $('.detailed').append(id+'号堆垛机'); | 
 |  |  |         $.ajax({ | 
 |  |  |             url:baseUrl+"/console/crn/detail", | 
 |  |  |             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') { | 
 |  |  |                         find.val(res.data[val]); | 
 |  |  |                     } else if (find[0].type === 'checkbox') { | 
 |  |  |                         find.attr("checked", res.data[val] === 'Y'); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         }) | 
 |  |  |  | 
 |  |  |     }) | 
 |  |  |     // 弹窗关闭 | 
 |  |  |     $('button').on('click',function(){ | 
 |  |  |         $('#siteWindow').attr('style','display:none') | 
 |  |  |         $('#crnWindow').attr('style','display:none') | 
 |  |  |     }) | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     var crn1Position = 0; | 
 |  |  |     var crn2Position = 0; | 
 |  |  |     var crn3Position = 0; | 
 |  |  |     var crn4Position = 0; | 
 |  |  |     var crn5Position = 0; | 
 |  |  |  | 
 |  |  |     // 初始化 | 
 |  |  |     getSitesInfo(); | 
 |  |  |     getCrnInfo(); | 
 |  |  |     getSystemRunningStatus(); | 
 |  |  |     getBarcodeInfo(); | 
 |  |  |     getScaleInfo(); | 
 |  |  |     // 实时访问 | 
 |  |  |     setInterval(function () { | 
 |  |  |         getCrnInfo(); | 
 |  |  |         getSystemRunningStatus(); | 
 |  |  |         getBarcodeInfo(); | 
 |  |  |         getScaleInfo(); | 
 |  |  |     }, 1000); | 
 |  |  |     setInterval(function () { | 
 |  |  |         getSitesInfo(); | 
 |  |  |     }, 3000); | 
 |  |  |  | 
 |  |  |     // 系统运行开关 | 
 |  |  |     function systemSwitch() { | 
 |  |  |         if (parent.systemRunning){ | 
 |  |  |             layer.prompt({title: '请输入口令,并停止 WCS 系统', formType: 1,   shadeClose: true}, function(pass, idx){ | 
 |  |  |                 layer.close(idx); | 
 |  |  |                 doSwitch(0, pass); // 停止wcs系统 | 
 |  |  |             }); | 
 |  |  |         } else { | 
 |  |  |             doSwitch(1); // 启动wcs系统 | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 请求服务器控制wcs系统运行状态 | 
 |  |  |     function doSwitch(operatorType, password) { | 
 |  |  |         // 加载tips | 
 |  |  |         var index = layer.load(1, { | 
 |  |  |             shade: [0.1,'#fff'] | 
 |  |  |         }); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/console/system/switch", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             // async: false, | 
 |  |  |             data: { | 
 |  |  |                 operatorType: operatorType, | 
 |  |  |                 password: password | 
 |  |  |             }, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 layer.close(index); | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                     if (res.data.status) { | 
 |  |  |                         $('#system-icon').attr("class", "system-icon-open"); | 
 |  |  |                         $('#system-run-desc').html("系统运行中..."); | 
 |  |  |                         parent.systemRunning = true; | 
 |  |  |                     } else { | 
 |  |  |                         $('#system-icon').attr("class", "system-icon-close"); | 
 |  |  |                         $('#system-run-desc').html("系统已停止!"); | 
 |  |  |                         parent.systemRunning = false; | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     console.log(res.msg); | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 获取wcs系统运行状态 | 
 |  |  |     function getSystemRunningStatus() { | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/console/system/running/status", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                     if (res.data.status) { | 
 |  |  |                         $('#system-icon').attr("class", "system-icon-open"); | 
 |  |  |                         $('#system-run-desc').html("系统运行中..."); | 
 |  |  |                         parent.systemRunning = true; | 
 |  |  |                     } else { | 
 |  |  |                         $('#system-icon').attr("class", "system-icon-close"); | 
 |  |  |                         $('#system-run-desc').html("系统已停止!"); | 
 |  |  |                         parent.systemRunning = false; | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     console.log(res.msg); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 输送设备实时数据获取 | 
 |  |  |     function getSitesInfo(){ | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/console/latest/data/site", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                     var sites = res.data; | 
 |  |  |                     for (var i = 0; i < sites.length; i++){ | 
 |  |  |                         var siteEl = $("#site-"+sites[i].siteId); | 
 |  |  |                         siteEl.attr("class", "site " + sites[i].siteStatus); | 
 |  |  |                         if (sites[i].workNo != null && sites[i].workNo>0) { | 
 |  |  |                             siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]"); | 
 |  |  |                         } else { | 
 |  |  |                             siteEl.html(sites[i].siteId); | 
 |  |  |                         } | 
 |  |  |                         if (i+1===8) { | 
 |  |  |                             carAnimate(i+1, Number(sites[i].nearbySta)); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     console.log(res.msg); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 堆垛机实时数据获取 | 
 |  |  |     function getCrnInfo(){ | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/console/latest/data/crn", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                     var crns = res.data; | 
 |  |  |                     for (var i = 0; i < crns.length; i++){ | 
 |  |  |                         var crnEl = $("#crn-"+crns[i].crnId); | 
 |  |  |                         crnEl.attr("class", "machine " + crns[i].crnStatus); | 
 |  |  |                         var unit = ($('.item').eq(0).width()+4)/2; | 
 |  |  |                         crnEl.animate({left: (crns[i].bay * unit + 25) +'px'}, 1000); | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     console.log(res.msg); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 扫码器实时数据获取 | 
 |  |  |     function getBarcodeInfo(){ | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/console/latest/data/barcode", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 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); | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     console.log(res.msg); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 磅秤实时数据获取 | 
 |  |  |     function getScaleInfo(){ | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+ "/console/latest/data/scale", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |  | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                     var sclaes = res.data; | 
 |  |  |                     for (var i = 0; i < sclaes.length; i++){ | 
 |  |  |                         console.log(sclaes[i].scaleId + ":" + sclaes[i].value) | 
 |  |  |                         $("#scale-data-"+sclaes[i].scaleId).text(sclaes[i].value); | 
 |  |  |                     } | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     parent.location.href = baseUrl+"/login"; | 
 |  |  |                 }  else { | 
 |  |  |                     console.log(res.msg); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 堆垛机偏移动画 | 
 |  |  |     function crnAnimate(id, leftVal) { | 
 |  |  |         switch (id) { | 
 |  |  |             case 1: | 
 |  |  |                 $("#crn-1").animate({left: leftVal+'px'}, 1000); | 
 |  |  |                 crn1Position = leftVal; | 
 |  |  |                 break; | 
 |  |  |             case 2: | 
 |  |  |                 $("#crn-2").animate({left: leftVal+'px'}, 1000); | 
 |  |  |                 crn2Position = leftVal; | 
 |  |  |                 break; | 
 |  |  |             case 3: | 
 |  |  |                 $("#crn-3").animate({left: leftVal+'px'}, 1000); | 
 |  |  |                 crn3Position = leftVal; | 
 |  |  |                 break; | 
 |  |  |             case 4: | 
 |  |  |                 $("#crn-4").animate({left: leftVal+'px'}, 1000); | 
 |  |  |                 crn4Position = leftVal; | 
 |  |  |                 break; | 
 |  |  |             case 5: | 
 |  |  |                 $("#crn-5").animate({left: leftVal+'px'}, 1000); | 
 |  |  |                 crn5Position = leftVal; | 
 |  |  |                 break; | 
 |  |  |             default: | 
 |  |  |                 break | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // 页面点击事件监听 --------------------------------------------------------- | 
 |  |  |  | 
 |  |  |     // 输送设备点击事件 | 
 |  |  |     // $('.site').on('click', function () { | 
 |  |  |     //    var id = this.id.split("-")[1]; | 
 |  |  |     //    if (id === undefined) { | 
 |  |  |     //       return; | 
 |  |  |     //    } | 
 |  |  |     //    layer.open({ | 
 |  |  |     //       title: id + " 站点信息详情", | 
 |  |  |     //       closeBtn: 0, | 
 |  |  |     //       skin: 'layui-layer-lan', | 
 |  |  |     //       offset: '180px', | 
 |  |  |     //       type: 1, | 
 |  |  |     //       shadeClose: true, | 
 |  |  |     //       content: $('#siteWindow'), | 
 |  |  |     //       area: ['35rem', '18rem'], | 
 |  |  |     //       btn: ['确定', '关闭'], | 
 |  |  |     //       success: function(layero, index){ | 
 |  |  |     //          http.post(baseUrl+"/console/site/detail", {siteId: id}, function (res) { | 
 |  |  |     //             for (var val in res.data) { | 
 |  |  |     //                var find = $("#siteWindow").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'); | 
 |  |  |     //                } | 
 |  |  |     //             } | 
 |  |  |     //          }) | 
 |  |  |     //       }, | 
 |  |  |     //       end: function () { | 
 |  |  |     //          $(':input', $("#siteWindow")).val('').removeAttr('checked').removeAttr('selected'); | 
 |  |  |     //       } | 
 |  |  |     //    }); | 
 |  |  |     // }); | 
 |  |  |  | 
 |  |  |     // 堆垛机点击事件 | 
 |  |  |     // $('.machine').on('click', function () { | 
 |  |  |     //    var id = this.id.split("-")[1]; | 
 |  |  |     //    layer.open({ | 
 |  |  |     //       title: id+"号堆垛机", | 
 |  |  |     //       skin: 'layui-layer-lan', | 
 |  |  |     //       closeBtn: 0, | 
 |  |  |     //       type: 1, | 
 |  |  |     //       offset: '150px', | 
 |  |  |     //       shadeClose: true, | 
 |  |  |     //       content: $("#crnWindow"), | 
 |  |  |     //       area: ['40rem', '20rem'], | 
 |  |  |     //       btn: ['确定', '关闭'], | 
 |  |  |     //       success: function(layero, index){ | 
 |  |  |     //          http.post(baseUrl+"/console/crn/detail", {crnNo: id}, function (res) { | 
 |  |  |     //             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'); | 
 |  |  |     //                } | 
 |  |  |     //             } | 
 |  |  |     //          }) | 
 |  |  |     //       }, | 
 |  |  |     //       end: function () { | 
 |  |  |     //          $(':input', $("#crnWindow")).val('').removeAttr('checked').removeAttr('selected'); | 
 |  |  |     //       } | 
 |  |  |     //    }); | 
 |  |  |     // }); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 小车偏移动画 | 
 |  |  |     function carAnimate(id, target) { | 
 |  |  |         var targetTop = 122; | 
 |  |  |         if (id === 8) { | 
 |  |  |             switch (target) { | 
 |  |  |                 case 1: | 
 |  |  |                     targetTop += 160; | 
 |  |  |                     break; | 
 |  |  |                 case 2: | 
 |  |  |                     targetTop += 140; | 
 |  |  |                     break; | 
 |  |  |                 case 3: | 
 |  |  |                     targetTop += 80; | 
 |  |  |                     break; | 
 |  |  |                 case 4: | 
 |  |  |                     targetTop += 40; | 
 |  |  |                     break; | 
 |  |  |                 case 7: | 
 |  |  |                     targetTop += 0; | 
 |  |  |                     break; | 
 |  |  |                 default: | 
 |  |  |                     return; | 
 |  |  |             } | 
 |  |  |         } else { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         $("#site-" + id).animate({top: targetTop+'px'}, 1000); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | </script> |