| <!DOCTYPE html> | 
| <html lang="en"> | 
|   | 
| <head> | 
|     <meta charset="UTF-8"> | 
|     <title>设备监控</title> | 
|     <link rel="stylesheet" href="../../static/wcs/css/element.css"> | 
|     <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script> | 
|     <script type="text/javascript" src="../../static/wcs/js/common.js"></script> | 
|     <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script> | 
|     <script type="text/javascript" src="../../static/wcs/js/element.js"></script> | 
|     <style> | 
|         .crnBox .el-carousel__item:nth-child(1n) { | 
|             background: #fff; | 
|             border: 1px solid #DCDFE6; | 
|             box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); | 
|             color: #303133; | 
|         } | 
|   | 
|         .devpBox .el-carousel__item:nth-child(1n) { | 
|             background: #fff; | 
|             border: 1px solid #DCDFE6; | 
|             box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); | 
|             color: #303133; | 
|         } | 
|   | 
|         .deviceContainer { | 
|             display: flex; | 
|             justify-content: space-around; | 
|             flex-wrap: wrap; | 
|         } | 
|   | 
|         .deviceBox { | 
|             width: 600px; | 
|             margin-top: 10px; | 
|         } | 
|   | 
|         .devpBox { | 
|             margin-top: 20px; | 
|         } | 
|   | 
|         .deviceHeader { | 
|             text-align: center; | 
|             font-size: 24px; | 
|         } | 
|   | 
|         .deviceBody { | 
|             display: flex; | 
|             justify-content: space-around; | 
|             align-items: center; | 
|             margin-top: 20px; | 
|             flex-wrap: wrap; | 
|         } | 
|   | 
|         .deviceItem { | 
|             width: 200px; | 
|             height: 40px; | 
|         } | 
|   | 
|         .devpDeviceBox { | 
|             width: 230px; | 
|             margin-top: 10px; | 
|         } | 
|   | 
|         .devpDeviceItem { | 
|             width: 110px; | 
|         } | 
|     </style> | 
| </head> | 
|   | 
| <body> | 
| <div id="app"> | 
|     <el-card class="box-card crnBox"> | 
|         <div slot="header" class="clearfix"> | 
|             <span>堆垛机</span> | 
|         </div> | 
|         <div class="deviceContainer"> | 
|             <div v-for="(item,index) in crnList" :key="index" class="deviceBox"> | 
|                 <div class="deviceHeader">{{item.crnNo}}号堆垛机</div> | 
|                 <div class="deviceBody"> | 
|                     <div class="deviceItem"> | 
|                         <span>堆垛机:</span> | 
|                         <span>{{ item.crnNo }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>工作号:</span> | 
|                         <span>{{ item.workNo }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>模式:</span> | 
|                         <span><el-tag :type="item.statusType == '自动' ? 'success':'danger'">{{ item.statusType }}</el-tag></span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>任务状态:</span> | 
|                         <span><el-tag :type="item.wrkStatus == 0 ? '':'success'">{{ item.wrkStatus$ }}</el-tag></span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>设备状态:</span> | 
|                         <span><el-tag :type="item.deviceStatus == '自动' ? 'success':'danger'">{{ item.deviceStatus }}</el-tag></span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>有物:</span> | 
|                         <span><el-tag :type="item.loading == '无物' ? '':'success'">{{ item.loading }}</el-tag></span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>列:</span> | 
|                         <span>{{ item.bay }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>层:</span> | 
|                         <span>{{ item.lev }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>故障代码:</span> | 
|                         <span>{{ item.warnCode }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>故障描述:</span> | 
|                         <span>{{ item.error }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>源站:</span> | 
|                         <span>{{ item.sourceStaNo }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>目标站:</span> | 
|                         <span>{{ item.staNo }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>源库位:</span> | 
|                         <span>{{ item.sourceLocNo }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>目标库位:</span> | 
|                         <span>{{ item.locNo }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>货叉定位:</span> | 
|                         <span>{{ item.forkOffset }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>载货台定位:</span> | 
|                         <span>{{ item.liftPos }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>走行在定位:</span> | 
|                         <span>{{ item.walkPos }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>走行速度(m/min):</span> | 
|                         <span>{{ item.xspeed }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>升降速度(m/min):</span> | 
|                         <span>{{ item.yspeed }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>叉牙速度(m/min):</span> | 
|                         <span>{{ item.zspeed }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>走行距离(Km):</span> | 
|                         <span>{{ item.xdistance }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>升降距离(Km):</span> | 
|                         <span>{{ item.ydistance }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>走行时长(H):</span> | 
|                         <span>{{ item.xduration }}</span> | 
|                     </div> | 
|                     <div class="deviceItem"> | 
|                         <span>升降时长(H):</span> | 
|                         <span>{{ item.yduration }}</span> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|     </el-card> | 
|   | 
|     <el-card class="box-card devpBox"> | 
|         <div slot="header" class="clearfix"> | 
|             <span>输送线</span> | 
|         </div> | 
|         <div v-for="(val,index) in devpList" :key="index" w> | 
|             <div style="display: flex;justify-content: space-around;width: 100%;margin-top: 20px;"> | 
|                 <div v-for="(item,idx) in val" :key="idx" class="devpDeviceBox"> | 
|                     <div class="deviceHeader">{{item.devNo}}号站点</div> | 
|                     <div class="deviceBody"> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>站点:</span> | 
|                             <span>{{ item.devNo }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>工作号:</span> | 
|                             <span>{{ item.workNo }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>自动:</span> | 
|                             <span>{{ item.autoing }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>有物:</span> | 
|                             <span>{{ item.loading }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>可入:</span> | 
|                             <span>{{ item.inEnable }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>可出:</span> | 
|                             <span>{{ item.outEnable }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>入库标记:</span> | 
|                             <span>{{ item.pakMk }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>空板信号:</span> | 
|                             <span>{{ item.emptyMk }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>目标站:</span> | 
|                             <span>{{ item.staNo }}</span> | 
|                         </div> | 
|                         <div class="devpDeviceItem"> | 
|                             <span>高低库位:</span> | 
|                             <span>{{ item.locType1 }}</span> | 
|                         </div> | 
|                     </div> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|     </el-card> | 
| </div> | 
| <script> | 
|     var app = new Vue({ | 
|         el: '#app', | 
|         data: { | 
|             crnList: [], | 
|             crnListHeight: '200px', | 
|             devpList: [], | 
|             devpListHeight: '200px', | 
|         }, | 
|         created() { | 
|             this.init() | 
|         }, | 
|         methods: { | 
|             init() { | 
|                 this.getCrnList() | 
|                 this.getDevpList() | 
|   | 
|                 setInterval(() => { | 
|                     this.getCrnList() | 
|                     this.getDevpList() | 
|                 }, 1000) | 
|             }, | 
|             getCrnList() { | 
|                 //获取堆垛机list | 
|                 let that = this | 
|                 $.ajax({ | 
|                     url: baseUrl + "/crn/list/auth", | 
|                     headers: { | 
|                         'token': localStorage.getItem('token') | 
|                     }, | 
|                     data: {}, | 
|                     dataType: 'json', | 
|                     contentType: 'application/json;charset=UTF-8', | 
|                     method: 'GET', | 
|                     success: function (res) { | 
|                         that.crnList = res.data | 
|   | 
|                         that.$nextTick(()=>{ | 
|                             that.crnListHeight = that.$refs.crnCarousel[0].offsetHeight + "px" | 
|                         }) | 
|                     } | 
|                 }); | 
|             }, | 
|             getDevpList() { | 
|                 //获取输送线list | 
|                 let that = this | 
|                 $.ajax({ | 
|                     url: baseUrl + "/site/list/auth", | 
|                     headers: { | 
|                         'token': localStorage.getItem('token') | 
|                     }, | 
|                     data: {}, | 
|                     dataType: 'json', | 
|                     contentType: 'application/json;charset=UTF-8', | 
|                     method: 'GET', | 
|                     success: function (res) { | 
|                         let list = [] | 
|                         let tmp = [] | 
|                         res.data.forEach((item,index) => { | 
|                             if (index % 5 == 0) { | 
|                                 if (tmp.length != 0) { | 
|                                     list.push(tmp) | 
|                                 } | 
|                                 tmp = []; | 
|                             } | 
|   | 
|                             tmp.push(item) | 
|                         }) | 
|   | 
|                         that.devpList = list | 
|                         that.$nextTick(()=>{ | 
|                             that.crnListHeight = that.$refs.crnCarousel[0].offsetHeight + "px" | 
|                         }) | 
|                     } | 
|                 }); | 
|             } | 
|         } | 
|     }) | 
| </script> | 
| </body> | 
|   | 
| </html> |