| <!DOCTYPE html> | 
| <html lang="en"> | 
|   | 
| <head> | 
|     <meta charset="UTF-8"> | 
|     <title>RGV设备</title> | 
|     <link rel="stylesheet" href="../../static/css/element.css"> | 
|     <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> | 
|     <script type="text/javascript" src="../../static/js/common.js"></script> | 
|     <script type="text/javascript" src="../../static/js/vue.min.js"></script> | 
|     <script type="text/javascript" src="../../static/js/element.js"></script> | 
| </head> | 
|   | 
| <body> | 
|     <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;"> | 
|         <div style="width: 100%;"> | 
|             <el-table border ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick" | 
|                 max-height="350" style="width: 100%"> | 
|                 <el-table-column property="rgvNo" label="RGV号"> | 
|                 </el-table-column> | 
|                 <el-table-column property="workNo1" label="工作号"> | 
|                 </el-table-column> | 
|                 <el-table-column property="statusType" label="模式"> | 
|                 </el-table-column> | 
|                 <el-table-column property="status" label="任务状态"> | 
|                 </el-table-column> | 
|                 <el-table-column property="walkPos" label="设备状态"> | 
|                 </el-table-column> | 
|                 <el-table-column property="pakMk" 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"  v-if="rgvMode !== 2 && rgvMode !== 1 "> | 
| <!--                            <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-button @click="initiate" type="warning">执行任务</el-button> | 
|                             </el-form-item> | 
|                         </el-form> | 
|   | 
|                         <div v-if="rgvMode === 2 "> | 
|                             <el-form :model="formParamD" label-position="top" :inline="true" class="demo-form-inline"> | 
|                                 <el-form-item label="起始站"> | 
|                                     <el-input v-model="formParamD.sourceRow" placeholder="起始站"></el-input> | 
|                                 </el-form-item> | 
|                                 <el-form-item label="目标站"> | 
|                                     <el-input v-model="formParamD.sourceBay" placeholder="目标站"></el-input> | 
|                                 </el-form-item> | 
|                                 <el-form-item label="启动"> | 
|                                     <el-button @click="initiateD(1)" type="warning">取货</el-button> | 
|                                     <el-button @click="initiateD(2)" type="warning">放货</el-button> | 
|                                     <el-button @click="initiateD(3)" type="warning">XY移动</el-button> | 
|                                 </el-form-item> | 
|                             </el-form> | 
|                         </div> | 
|                         <div  v-if="demo === 'N' "> | 
|                             <el-button v-if="rgvMode === 0 " type="danger">未知</el-button> | 
|                             <el-button v-if="rgvMode === -1 " type="danger">未知</el-button> | 
|                             <el-button v-if="rgvMode === 3 " type="primary">联机</el-button> | 
|                             <el-button v-if="rgvMode === 2 " type="primary">单机</el-button> | 
|                             <el-button v-if="rgvMode === 1 " type="warning">手动</el-button> | 
|                         </div> | 
|                         <div  v-if="rgvMode !== 0 "> | 
|                             <div style="margin: 10px auto 10px auto"> | 
|                                 <el-button v-if="demo === 'N' " @click="demos('true')" type="info">演示</el-button> | 
|                                 <el-button v-if="demo === 'Y' " @click="demos('false')" type="info">取消演示</el-button> | 
|                             </div> | 
|                             <div style="margin: 10px auto 10px auto" v-if="demo === 'N' "> | 
|                                 <el-button v-if="rgvMode !== 3 " @click="rgvStatus(15)" type="primary">联机</el-button> | 
|                                 <el-button v-if="rgvMode !== 2 " @click="rgvStatus(14)" type="primary">单机</el-button> | 
|                                 <el-button v-if="rgvMode !== 1 " @click="rgvStatus(12)" type="warning">手动</el-button> | 
|                             </div> | 
|                             <div style="margin: 10px auto 10px auto" v-if="demo === 'N' "> | 
|                                 <el-button @click="rgvStatus(8)" type="primary">启动</el-button> | 
|                                 <el-button @click="rgvStatus(9)" type="primary">停止</el-button> | 
|                                 <el-button @click="rgvStatus(11)" type="primary">复位按钮</el-button> | 
|                             </div> | 
|                             <div style="margin: 10px auto 10px auto" v-if="demo === 'N' "> | 
|                                 <el-button @click="rgvStatus(7)" type="warning">报警消音</el-button> | 
|                                 <el-button v-if="rgvMode === 1 " @click="rgvStatus(13)" type="warning">手动定位</el-button> | 
|                             </div> | 
|                             <div style="margin: 10px auto 10px auto" v-if="demo === 'N' "> | 
|                                 <el-button :style="" @click="rgvStatus(5)" type="danger">强制启动</el-button> | 
|                                 <el-button @click="rgvStatus(10)" type="danger">急停</el-button> | 
|                                 <el-button @click="rgvStatus(16)" type="danger">货叉定位回中</el-button> | 
|                             </div> | 
|                             <div style="margin-top: 5px" v-if="demo === 'Y'"> | 
|                                 <el-button  @click="staTova(2,1)" type="warning">输送-置换1</el-button> | 
|                                 <el-button  @click="staTova(2,3)" type="warning">输送-置换2</el-button> | 
|                                 <el-button  @click="staTova(2,5)" type="warning">输送-置换3</el-button> | 
|                                 <el-button  @click="staTova(2,7)" type="warning">输送-置换4</el-button> | 
|                             </div> | 
|                             <div style="margin-top: 5px" v-if="demo === 'Y'"> | 
|                                 <el-button  @click="staTova(2,4)" type="warning">输送-灌装1</el-button> | 
|                                 <el-button  @click="staTova(2,6)" type="warning">输送-灌装2</el-button> | 
|                                 <el-button  @click="staTova(2,8)" type="warning">输送-灌装3</el-button> | 
|                             </div> | 
|                             <div style="margin-top: 5px" v-if="demo === 'Y'"> | 
|                                 <el-button  @click="staTova(1,10)" type="warning">置换1-放货</el-button> | 
|                                 <el-button  @click="staTova(2,10)" type="warning">置换2-放货</el-button> | 
|                                 <el-button  @click="staTova(3,10)" type="warning">置换3-放货</el-button> | 
|                                 <el-button  @click="staTova(4,10)" type="warning">置换4-放货</el-button> | 
|                             </div> | 
|                         </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="RGV">{{ tableData[currentIndex].rgvNo }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="工作号"> | 
|                                     {{ tableData[currentIndex].workNo1 }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="模式"> | 
|                                     <el-tag>{{ tableData[currentIndex].statusType }}</el-tag> | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="任务状态"> | 
|   | 
|                                         <el-tag>{{ tableData[currentIndex].status}}</el-tag> | 
|   | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="设备状态"> | 
|                                     <el-tag>{{ tableData[currentIndex].walkPos }}</el-tag> | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="故障代码">{{ tableData[currentIndex].warnCode }} | 
|                                 </el-descriptions-item> | 
|                                 <el-descriptions-item label="故障描述">{{ tableData[currentIndex].alarm }} | 
|                                 </el-descriptions-item> | 
| <!--                                <el-descriptions-item label="源站">{{ tableData[currentIndex].staNo }}--> | 
| <!--                                </el-descriptions-item>--> | 
| <!--                                <el-descriptions-item label="目标站">{{ tableData[currentIndex].sourceStaNo }}--> | 
| <!--                                </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: { | 
|                     rgvNo: null, | 
|                     sourceStaNo: null, | 
|                     sourceRow: 1, | 
|                     sourceBay: 0, | 
|                     sourceLev: 1, | 
|                     staNo: null, | 
|                     row: 1, | 
|                     bay: 0, | 
|                     lev: 1, | 
|                     barcode:null, | 
|                     barcodeType:null, | 
|                     emptyContainer:null | 
|                 }, | 
|                 formParamD: { | 
|                     rgvNo: null, | 
|                     sourceStaNo: null, | 
|                     sourceRow: 1, | 
|                     sourceBay: 0, | 
|                     sourceLev: 1, | 
|                     staNo: null, | 
|                     row: 1, | 
|                     bay: 0, | 
|                     lev: 1, | 
|                     barcode:null, | 
|                     barcodeType:null, | 
|                     emptyContainer:null | 
|                 }, | 
|                 enableIn: false, | 
|                 enableOut: false, | 
|                 options:[ | 
|                     { | 
|                         value:'1', | 
|                         label:'是' | 
|                     }, | 
|                     { | 
|                         value:'0', | 
|                         label:'否' | 
|                     } | 
|                 ], | 
|                 demo: 'X', | 
|                 rgvMode: 0 | 
|             }, | 
|             created() { | 
|                 this.init() | 
|             }, | 
|             watch: { | 
|   | 
|             }, | 
|             methods: { | 
|                 staTova(sta,end){ | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + "/rgv/rgvDemoTask", | 
|                             headers: { | 
|                                 'token': localStorage.getItem('token') | 
|                             }, | 
|                             data:{ | 
|                                 rgvNo : this.formParam.rgvNo, | 
|                                 sta : sta, | 
|                                 end : end | 
|                             }, | 
|                             method: 'Get', | 
|                             success: function (res) { | 
|                                 if (res.code == 200) { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'success' | 
|                                     }); | 
|                                 } else { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'error' | 
|                                     }); | 
|                                 } | 
|                             } | 
|                         }); | 
|                     }) | 
|                 }, | 
|                 init() { | 
|                     this.getTableData() | 
|   | 
|                     setInterval(() => { | 
|                         this.getTableData() | 
|                         this.demoStatus() | 
|                     }, 1000) | 
|                 }, | 
|                 handleRowClick(row, col, event) { | 
|                     const index = this.tableData.indexOf(row) | 
|                     this.currentRow = row; | 
|                     this.currentIndex = index | 
|                     this.currentTitle = row.rgvNo + "号RGV" | 
|                     this.formParam.rgvNo = row.rgvNo | 
|                     this.enableIn = row.inEnable == "Y" ? true : false | 
|                     this.enableOut = row.outEnable == "Y" ? true : false | 
|                 }, | 
|                 getTableData() { | 
|                     let that = this; | 
|                     $.ajax({ | 
|                         url: baseUrl + "/rgv/table/rgv/state", | 
|                         headers: { | 
|                             'token': localStorage.getItem('token') | 
|                         }, | 
|                         data: {}, | 
|                         dataType: 'json', | 
|                         contentType: 'application/json;charset=UTF-8', | 
|                         method: 'post', | 
|                         success: function (res) { | 
|                             that.tableData = res.data | 
|                         } | 
|                     }); | 
|                 }, | 
|                 demoStatus() { | 
|                     let that = this; | 
|                     $.ajax({ | 
|                         url: baseUrl + "/rgv/demo/status", | 
|                         data:{ | 
|                             rgvNo : this.formParam.rgvNo | 
|                         }, | 
|                         headers: { | 
|                             'token': localStorage.getItem('token') | 
|                         }, | 
|                         contentType: 'application/json;charset=UTF-8', | 
|                         method: 'get', | 
|                         success: function (res) { | 
|                             // console.log(res) | 
|                             that.demo = res.data.demo | 
|                             that.rgvMode = res.data.rgvMode | 
|                         } | 
|                     }); | 
|                 }, | 
|                 initiate(){ | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + "/rgv/operator/put", | 
|                             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' | 
|                                     }); | 
|                                 } | 
|                             } | 
|                         }); | 
|                     }) | 
|                 }, | 
|                 initiateD(method){ | 
|                     let urlS = "/rgv/operator/single/step/three/put"; | 
|                     if (method===1){ | 
|                         urlS = "/rgv/operator/single/step/one/put"; | 
|                     }else if (method === 2){ | 
|                         urlS = "/rgv/operator/single/step/two/put"; | 
|                     }else if (method === 3){ | 
|                         urlS = "/rgv/operator/single/step/three/put"; | 
|                     } | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + urlS, | 
|                             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' | 
|                                     }); | 
|                                 } | 
|                             } | 
|                         }); | 
|                     }) | 
|                 }, | 
|                 demos(method){ | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + "/rgv/demo/status/" + method, | 
|                             headers: { | 
|                                 'token': localStorage.getItem('token') | 
|                             }, | 
|                             data:{ | 
|                                 rgvNo : this.formParam.rgvNo | 
|                             }, | 
|                             method: 'Get', | 
|                             success: function (res) { | 
|                                 if (res.code == 200) { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'success' | 
|                                     }); | 
|                                 } else { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'error' | 
|                                     }); | 
|                                 } | 
|                             } | 
|                         }); | 
|                     }) | 
|                 }, | 
|                 rgvStatus(method){ | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + "/rgv/demo/status/rgvStatus", | 
|                             headers: { | 
|                                 'token': localStorage.getItem('token') | 
|                             }, | 
|                             data:{ | 
|                                 rgvNo : this.formParam.rgvNo, | 
|                                 status : Number(method) | 
|                             }, | 
|                             method: 'Get', | 
|                             success: function (res) { | 
|                                 if (res.code == 200) { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'success' | 
|                                     }); | 
|                                 } else { | 
|                                     that.$message({ | 
|                                         message: res.msg, | 
|                                         type: 'error' | 
|                                     }); | 
|                                 } | 
|                             } | 
|                         }); | 
|                     }) | 
|                 }, | 
|                 requestOperate(method) { | 
|                     let that = this | 
|                     that.$confirm('此操作存在风险,是否继续','提示',{ | 
|                         confirmButtonText: '确定', | 
|                         cancelButtonText: '取消', | 
|                         type: 'warning' | 
|                     }).then(()=>{ | 
|                         $.ajax({ | 
|                             url: baseUrl + "/rgv/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", | 
|                             rgvNo: this.formParam.rgvNo | 
|                         } | 
|                     } else { | 
|                         param = { | 
|                             outEnable: this.enableOut ? "Y" : "N", | 
|                             rgvNo: this.formParam.rgvNo | 
|                         } | 
|                     } | 
|   | 
|                     $.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> |