| <!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> | 
| </head> | 
|   | 
| <body> | 
|     <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;"> | 
|         <div style="width: 100%;"> | 
|             <el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick" | 
|                 max-height="350" style="width: 100%"> | 
|                 <el-table-column property="crnNo" label="堆垛机"> | 
|                 </el-table-column> | 
|                 <el-table-column property="laneNo" label="巷道号"> | 
|                 </el-table-column> | 
|                 <el-table-column property="workNo" label="工作号"> | 
|                 </el-table-column> | 
|                 <el-table-column property="statusType" label="模式"> | 
|                 </el-table-column> | 
|                 <el-table-column property="wrkStatus$" label="任务状态"> | 
|                 </el-table-column> | 
|                 <el-table-column property="deviceStatus" label="设备状态"> | 
|                 </el-table-column> | 
|             </el-table> | 
|         </div> | 
|   | 
|         <div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;"> | 
|             <div style="width: 55%;margin-right: 10px;"> | 
|                 <el-card class="box-card"> | 
|                     <div slot="header" class="clearfix"> | 
|                         <span>设备调试</span> | 
|                     </div> | 
|                     <div> | 
|                         <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline"> | 
|                             <el-form-item label="源站/源库位"> | 
|                                 <el-input v-model="formParam.sourceStaNo" placeholder="源站/源库位"></el-input> | 
|                             </el-form-item> | 
|                             <el-form-item label="排"> | 
|                                 <el-input v-model="formParam.sourceRow" placeholder="排"></el-input> | 
|                             </el-form-item> | 
|                             <el-form-item label="列"> | 
|                                 <el-input v-model="formParam.sourceBay" placeholder="列"></el-input> | 
|                             </el-form-item> | 
|                             <el-form-item label="层"> | 
|                                 <el-input v-model="formParam.sourceLev" placeholder="层"></el-input> | 
|                             </el-form-item> | 
|                         </el-form> | 
|                         <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline"> | 
|                             <el-form-item label="目标站/目标库位"> | 
|                                 <el-input v-model="formParam.staNo" placeholder="目标站/目标库位"></el-input> | 
|                             </el-form-item> | 
|                             <el-form-item label="排"> | 
|                                 <el-input v-model="formParam.row" placeholder="排"></el-input> | 
|                             </el-form-item> | 
|                             <el-form-item label="列"> | 
|                                 <el-input v-model="formParam.bay" placeholder="列"></el-input> | 
|                             </el-form-item> | 
|                             <el-form-item label="层"> | 
|                                 <el-input v-model="formParam.lev" placeholder="层"></el-input> | 
|                             </el-form-item> | 
|                         </el-form> | 
|                         <el-form label-position="top" :inline="true" class="demo-form-inline"> | 
|                             <el-form-item label=""> | 
|                                 <el-checkbox @change="updateEnableInOut('in')" v-model="enableIn">可入</el-checkbox> | 
|                             </el-form-item> | 
|                             <el-form-item label=""> | 
|                                 <el-checkbox @change="updateEnableInOut('out')" v-model="enableOut">可出</el-checkbox> | 
|                             </el-form-item> | 
|                         </el-form> | 
|                         <div> | 
| <!--                            <el-button @click="requestOperate('put')" type="primary">入库</el-button>--> | 
| <!--                            <el-button @click="requestOperate('take')" type="primary">出库</el-button>--> | 
| <!--                            <el-button @click="requestOperate('stockMove')" type="primary">库位转移</el-button>--> | 
| <!--                            <el-button @click="requestOperate('siteMove')" type="primary">站到站</el-button>--> | 
| <!--                            <el-button @click="requestOperate('taskComplete')" type="primary">任务完成</el-button>--> | 
| <!--                            <el-button @click="requestOperate('clearCommand')" type="primary">清除命令</el-button>--> | 
| <!--                            <el-button @click="requestOperate('reset')" type="primary">复位</el-button>--> | 
|                             <br/> | 
|                             <br/> | 
| <!--                            <el-button @click="requestOperate('auto')" type="warning">联机</el-button>--> | 
| <!--                            <el-button @click="requestOperate('semiAutomatic')" type="warning">半自动</el-button>--> | 
| <!--                            <el-button @click="requestOperate('hand')" type="warning">手动</el-button>--> | 
| <!--                            <el-button @click="requestOperate('onlineWrk4')" type="warning">恢复联机任务</el-button>--> | 
| <!--                            <el-button @click="requestOperate('onlineWrk3')" type="warning">清除联机任务</el-button>--> | 
| <!--                            <el-button @click="requestOperate('onlineWrk1')" type="warning">申请完成任务</el-button>--> | 
|                             <br/> | 
|                             <br/> | 
| <!--                            <el-button @click="requestOperate('onlineWrk2')" type="warning">申请取消任务</el-button>--> | 
|                         </div> | 
|                     </div> | 
|                 </el-card> | 
|             </div> | 
|             <div style="width: 45%;"> | 
|                 <el-card class="box-card"> | 
|                     <div slot="header" class="clearfix"> | 
|                         <span>设备状态</span> | 
|                     </div> | 
|                     <div> | 
|                         <div v-if="currentIndex == null"> | 
|                             <el-empty description="请选择设备"></el-empty> | 
|                         </div> | 
|                         <div v-else> | 
|                             <el-descriptions :title="currentTitle" direction="vertical" :column="4" border> | 
|                                 <el-descriptions-item label="堆垛机">{{ tableData[currentIndex].crnNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="工作号"> | 
|                                     {{ tableData[currentIndex].workNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="模式"> | 
|                                     <el-tag>{{ tableData[currentIndex].statusType }}</el-tag> | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="任务状态"> | 
|                                     <div v-if="tableData[currentIndex].wrkStatus == 0"> | 
|                                         <el-tag>{{ tableData[currentIndex].wrkStatus$ }}</el-tag> | 
|                                     </div> | 
|                                     <div v-else> | 
|                                         <el-tag type="success">{{ tableData[currentIndex].wrkStatus$ }}</el-tag> | 
|                                     </div> | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="设备状态"> | 
|                                     <el-tag>{{ tableData[currentIndex].deviceStatus }}</el-tag> | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="有物"> | 
|                                     <el-tag>{{ tableData[currentIndex].loading }}</el-tag> | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="列">{{ tableData[currentIndex].bay }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="层">{{ tableData[currentIndex].lev }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="故障代码">{{ tableData[currentIndex].warnCode }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="故障描述">{{ tableData[currentIndex].lev }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="源站">{{ tableData[currentIndex].sourceStaNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="目标站">{{ tableData[currentIndex].staNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="源库位">{{ tableData[currentIndex].sourceLocNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="目标库位">{{ tableData[currentIndex].locNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="货叉定位">{{ tableData[currentIndex].forkOffset }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="载货台定位">{{ tableData[currentIndex].liftPos }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="走行在定位">{{ tableData[currentIndex].walkPos }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="走行速度(m/min)">{{ tableData[currentIndex].xspeed }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="升降速度(m/min)">{{ tableData[currentIndex].yspeed }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="叉牙速度(m/min)">{{ tableData[currentIndex].zspeed }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="走行距离(Km)">{{ tableData[currentIndex].xdistance }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="升降距离(Km)">{{ tableData[currentIndex].ydistance }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="走行时长(H)">{{ tableData[currentIndex].xduration }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="升降时长(H)">{{ tableData[currentIndex].yduration }} | 
|                                 </el-descriptions-item> | 
|                             </el-descriptions> | 
|                         </div> | 
|                     </div> | 
|                 </el-card> | 
|             </div> | 
|         </div> | 
|     </div> | 
|     <script> | 
|         var app = new Vue({ | 
|             el: '#app', | 
|             data: { | 
|                 tableData: [], | 
|                 currentRow: null, | 
|                 currentTitle: "未选择设备", | 
|                 currentIndex: null, | 
|                 formParam: { | 
|                     crnNo: null, | 
|                     sourceStaNo: null, | 
|                     sourceRow: 1, | 
|                     sourceBay: 0, | 
|                     sourceLev: 1, | 
|                     staNo: null, | 
|                     row: 1, | 
|                     bay: 0, | 
|                     lev: 1 | 
|                 }, | 
|                 enableIn: false, | 
|                 enableOut: false | 
|             }, | 
|             created() { | 
|                 this.init() | 
|             }, | 
|             watch: { | 
|   | 
|             }, | 
|             methods: { | 
|                 init() { | 
|                     this.getTableData() | 
|   | 
|                     setInterval(() => { | 
|                         this.getTableData() | 
|                     }, 1000) | 
|                 }, | 
|                 handleRowClick(row, col, event) { | 
|                     const index = this.tableData.indexOf(row) | 
|                     this.currentRow = row; | 
|                     this.currentIndex = index | 
|                     this.currentTitle = row.crnNo + "号堆垛机" | 
|                     this.formParam.crnNo = row.crnNo | 
|                     this.enableIn = row.inEnable == "Y" ? true : false | 
|                     this.enableOut = row.outEnable == "Y" ? true : false | 
|                 }, | 
|                 getTableData() { | 
|                     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.tableData = res.data | 
|                         } | 
|                     }); | 
|                 }, | 
|                 requestOperate(method) { | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + "/crn/operator/" + method, | 
|                             headers: { | 
|                                 'token': localStorage.getItem('token') | 
|                             }, | 
|                             data: this.formParam, | 
|                             method: 'POST', | 
|                             success: function (res) { | 
|                                 if (res.code == 200) { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'success' | 
|                                     }); | 
|                                 } else { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'error' | 
|                                     }); | 
|                                 } | 
|                             } | 
|                         }); | 
|                     }) | 
|   | 
|                 }, | 
|                 updateEnableInOut(type) { | 
|                     let that = this | 
|                     let param = {} | 
|                     if (type == "in") { | 
|                         param = { | 
|                             inEnable: this.enableIn ? "Y" : "N", | 
|                             crnNo: this.formParam.crnNo | 
|                         } | 
|                     } else { | 
|                         param = { | 
|                             outEnable: this.enableOut ? "Y" : "N", | 
|                             crnNo: this.formParam.crnNo | 
|                         } | 
|                     } | 
|   | 
|                     $.ajax({ | 
|                         url: baseUrl + "/basCrnp/update/auth", | 
|                         headers: { | 
|                             'token': localStorage.getItem('token') | 
|                         }, | 
|                         data: param, | 
|                         method: 'POST', | 
|                         success: function (res) { | 
|                             if (res.code == 200) { | 
|                                 that.$message({ | 
|                                     message: res.msg, | 
|                                     type: 'success' | 
|                                 }); | 
|                             } else { | 
|                                 that.$message({ | 
|                                     message: res.msg, | 
|                                     type: 'error' | 
|                                 }); | 
|                             } | 
|                         } | 
|                     }); | 
|                 } | 
|             } | 
|         }) | 
|     </script> | 
| </body> | 
|   | 
| </html> |