自动化立体仓库 - WCS系统
*
lsh
2025-04-09 62a19bf40e747ab986645728d65a63b927eddb6e
src/main/webapp/views/commandManage/commandManage.html
@@ -1,282 +1,298 @@
<!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/wms/layui/layui.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>
         .el-table .success-row {
            background: #d5ffc0;
         }
      </style>
   </head>
<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/wms/layui/layui.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>
      .el-table .success-row {
         background: #d5ffc0;
      }
   </style>
</head>
   <body>
      <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
         <div style="width: 100%;">
            <el-card class="box-card">
               <el-form :inline="true" :model="tableSearchParam" class="demo-form-inline">
                  <el-form-item label="">
                     <el-input v-model="tableSearchParam.task_no" placeholder="任务号"></el-input>
                  </el-form-item>
                  <el-form-item label="">
                     <el-select v-model="tableSearchParam.command_status" placeholder="指令状态">
                        <el-option label="创建" value="1"></el-option>
                        <el-option label="执行" value="2"></el-option>
                        <el-option label="完成" value="3"></el-option>
                     </el-select>
                  </el-form-item>
                  <el-form-item label="">
                     <el-input v-model="tableSearchParam.wrk_no" placeholder="工作号"></el-input>
                  </el-form-item>
                  <el-form-item>
                     <el-button type="primary" @click="getTableData">查询</el-button>
                     <el-button type="primary" @click="resetParam">重置</el-button>
                  </el-form-item>
               </el-form>
               <el-table ref="singleTable" :data="tableData" style="width: 100%;" :row-class-name="tableRowClassName">
                  <el-table-column label="操作" width="100">
                     <template slot-scope="scope">
                        <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
                           <el-button icon="el-icon-more" size="mini" type="primary"></el-button>
                           <el-dropdown-menu slot="dropdown">
                              <el-dropdown-item command="showTask">查看任务</el-dropdown-item>
                              <el-dropdown-item command="executeCommand">执行指令</el-dropdown-item>
                              <el-dropdown-item command="completeCommand">完成指令</el-dropdown-item>
                           </el-dropdown-menu>
                        </el-dropdown>
                     </template>
                  </el-table-column>
                  <el-table-column property="id" label="#ID">
                  </el-table-column>
                  <el-table-column property="wrkNo" label="工作号">
                  </el-table-column>
                  <el-table-column property="taskNo" label="任务号">
                  </el-table-column>
                  <el-table-column property="commandStatus$" label="指令状态">
                  </el-table-column>
                  <el-table-column show-overflow-tooltip property="durationTime" label="持续时长">
                  </el-table-column>
                  <el-table-column property="commandType$" label="指令类型">
                  </el-table-column>
                  <el-table-column property="device" label="设备">
                  </el-table-column>
                  <el-table-column property="deviceLog" label="设备执行信息">
                  </el-table-column>
                  <el-table-column property="commandDesc" label="命令描述">
                  </el-table-column>
                  <el-table-column show-overflow-tooltip property="startTime$" label="开始时间">
                  </el-table-column>
                  <el-table-column show-overflow-tooltip property="executeTime$" label="执行时间">
                  </el-table-column>
                  <el-table-column show-overflow-tooltip property="completeTime$" label="完成时间">
                  </el-table-column>
                  <el-table-column show-overflow-tooltip property="command" label="命令报文" width="250">
                  </el-table-column>
               </el-table>
<body>
<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
   <div style="width: 100%;">
      <el-card class="box-card">
         <el-form :inline="true" :model="tableSearchParam" class="demo-form-inline">
            <el-form-item label="">
               <el-input v-model="tableSearchParam.task_no" placeholder="任务号"></el-input>
            </el-form-item>
            <el-form-item label="">
               <el-select v-model="tableSearchParam.command_status" placeholder="指令状态">
                  <el-option label="创建" value="1"></el-option>
                  <el-option label="执行" value="2"></el-option>
                  <el-option label="完成" value="3"></el-option>
               </el-select>
            </el-form-item>
            <el-form-item label="">
               <el-input v-model="tableSearchParam.wrk_no" placeholder="工作号"></el-input>
            </el-form-item>
            <el-form-item>
               <el-button type="primary" @click="getTableData">查询</el-button>
               <el-button type="primary" @click="resetParam">重置</el-button>
            </el-form-item>
         </el-form>
         <el-table ref="singleTable" :data="tableData" style="width: 100%;" :row-class-name="tableRowClassName">
            <el-table-column label="操作" width="100">
               <template slot-scope="scope">
                  <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
                     <el-button icon="el-icon-more" size="mini" type="primary"></el-button>
                     <el-dropdown-menu slot="dropdown">
                        <el-dropdown-item command="showTask">查看任务</el-dropdown-item>
                        <el-dropdown-item command="executeCommand">执行指令</el-dropdown-item>
                        <el-dropdown-item command="completeCommand">完成指令</el-dropdown-item>
                     </el-dropdown-menu>
                  </el-dropdown>
               </template>
            </el-table-column>
            <el-table-column property="id" label="#ID">
            </el-table-column>
            <el-table-column property="wrkNo" label="工作号">
            </el-table-column>
            <el-table-column property="taskNo" label="任务号">
            </el-table-column>
            <el-table-column property="commandStatus$" label="指令状态">
            </el-table-column>
            <el-table-column show-overflow-tooltip property="durationTime" label="持续时长">
            </el-table-column>
            <el-table-column property="commandType$" label="指令类型">
            </el-table-column>
            <el-table-column property="device" label="设备">
            </el-table-column>
            <el-table-column property="deviceLog" label="设备执行信息">
            </el-table-column>
            <el-table-column property="commandDesc" label="命令描述">
            </el-table-column>
            <el-table-column show-overflow-tooltip property="startTime$" label="开始时间">
            </el-table-column>
            <el-table-column show-overflow-tooltip property="executeTime$" label="执行时间">
            </el-table-column>
            <el-table-column show-overflow-tooltip property="completeTime$" label="完成时间">
            </el-table-column>
            <el-table-column show-overflow-tooltip property="command" label="命令报文" width="250">
            </el-table-column>
         </el-table>
               <div style="margin-top: 10px;">
                  <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                     :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
                     layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
                  </el-pagination>
               </div>
            </el-card>
         <div style="margin-top: 10px;">
            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                        :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
                        layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
            </el-pagination>
         </div>
      </div>
      <script>
         var $layui = layui.config({
            base: baseUrl + "/static/wms/layui/lay/modules/"
         }).use(['layer', 'form'], function() {})
      </el-card>
   </div>
</div>
<script>
   var $layui = layui.config({
      base: baseUrl + "/static/wms/layui/lay/modules/"
   }).use(['layer', 'form'], function() {})
         var app = new Vue({
            el: '#app',
            data: {
               tableData: [],
               currentPage: 1,
               pageSizes: [16, 30, 50, 100, 150, 200],
               pageSize: 16,
               pageTotal: 0,
               tableSearchParam: {
                  task_no: null,
                  status: null,
                  wrk_no: null
               },
               commandStep: -1
            },
            created() {
               this.init()
            },
            watch: {
   var app = new Vue({
      el: '#app',
      data: {
         tableData: [],
         currentPage: 1,
         pageSizes: [16, 30, 50, 100, 150, 200],
         pageSize: 16,
         pageTotal: 0,
         tableSearchParam: {
            task_no: null,
            status: null,
            wrk_no: null
         },
         commandStep: -1
      },
      created() {
         this.init()
      },
      watch: {
            },
            methods: {
               init() {
                  let taskNo = getQueryVariable('taskNo')
                  let wrkNo = getQueryVariable('wrkNo')
                  let commandStep = getQueryVariable('commandStep')
                  if (taskNo != false) {
                     this.tableSearchParam.task_no = taskNo
                  }
                  if (wrkNo != false) {
                     this.tableSearchParam.wrk_no = wrkNo
                  }
                  this.commandStep = parseInt(commandStep)
                  this.getTableData()
               },
               getTableData() {
                  let that = this;
                  let data = this.tableSearchParam
                  data.curr = this.currentPage
                  data.limit = this.pageSize
                  $.ajax({
                     url: baseUrl + "/commandInfo/list/auth",
                     headers: {
                        'token': localStorage.getItem('token')
                     },
                     data: data,
                     dataType: 'json',
                     contentType: 'application/json;charset=UTF-8',
                     method: 'GET',
                     success: function(res) {
                        if (res.code == 200) {
                           that.tableData = res.data.records
                           that.pageTotal = res.data.total
                        } else if (res.code === 403) {
                           top.location.href = baseUrl + "/";
                        } else {
                           that.$message({
                              message: res.msg,
                              type: 'error'
                           });
                        }
                     }
                  });
               },
               handleSizeChange(val) {
                  console.log(`每页 ${val} 条`);
                  this.pageSize = val
                  this.getTableData()
               },
               handleCurrentChange(val) {
                  console.log(`当前页: ${val}`);
                  this.currentPage = val
                  this.getTableData()
               },
               resetParam() {
                  this.tableSearchParam = {
                     task_no: null,
                     status: null,
                     wrk_no: null
                  }
                  this.getTableData()
               },
               tableRowClassName({row, rowIndex}) {
                  if (rowIndex === this.commandStep) {
                     return 'success-row';
                  }
                  return '';
               },
               handleCommand(command, row) {
                  switch (command) {
                     case "showTask":
                        //查看任务
                        this.showTask(row)
                        break;
                     case "executeCommand":
                        //执行指令
                        this.executeCommand(row)
                        break;
                     case "completeCommand":
                        //完成指令
                        this.completeCommand(row)
                        break;
                  }
               },
               showTask(row) {
                  let wrkNo = row.wrkNo == null ? "" : row.wrkNo
                  console.log(wrkNo)
                  //查看指令
                  $layui.layer.open({
                     type: 2,
                     title: '任务管理',
                     maxmin: true,
                     area: [top.detailWidth, top.detailHeight],
                     shadeClose: true,
                     content: '../taskWrk/taskWrk.html?taskNo=' + row.taskNo + "&wrkNo=" + wrkNo,
                     success: function(layero, index) {}
                  });
               },
               executeCommand(row) {
                  //执行指令
                  let that = this
                  $.ajax({
                     url: baseUrl + "/commandInfo/executeCommand",
                     headers: {
                        'token': localStorage.getItem('token')
                     },
                     data: {
                        id: row.id
                     },
                     method: 'POST',
                     success: function(res) {
                        if (res.code == 200) {
                           that.$message({
                              message: "执行成功",
                              type: 'success'
                           });
                           that.getTableData()
                        } else if (res.code === 403) {
                           top.location.href = baseUrl + "/";
                        } else {
                           that.$message({
                              message: res.msg,
                              type: 'error'
                           });
                        }
                     }
                  });
               },
               completeCommand(row) {
                  //完成指令
                  let that = this
                  $.ajax({
                     url: baseUrl + "/commandInfo/completeCommand",
                     headers: {
                        'token': localStorage.getItem('token')
                     },
                     data: {
                        id: row.id
                     },
                     method: 'POST',
                     success: function(res) {
                        if (res.code == 200) {
                           that.$message({
                              message: "完成成功",
                              type: 'success'
                           });
                           that.getTableData()
                        } else if (res.code === 403) {
                           top.location.href = baseUrl + "/";
                        } else {
                           that.$message({
                              message: res.msg,
                              type: 'error'
                           });
                        }
                     }
                  });
               },
      },
      methods: {
         init() {
            let taskNo = getQueryVariable('taskNo')
            let wrkNo = getQueryVariable('wrkNo')
            let commandStep = getQueryVariable('commandStep')
            if (taskNo != false) {
               this.tableSearchParam.task_no = taskNo
            }
         })
      </script>
   </body>
            if (wrkNo != false) {
               this.tableSearchParam.wrk_no = wrkNo
            }
            this.commandStep = parseInt(commandStep)
            this.getTableData()
         },
         getTableData() {
            let that = this;
            let data = this.tableSearchParam
            data.curr = this.currentPage
            data.limit = this.pageSize
            $.ajax({
               url: baseUrl + "/commandInfo/list/auth",
               headers: {
                  'token': localStorage.getItem('token')
               },
               data: data,
               dataType: 'json',
               contentType: 'application/json;charset=UTF-8',
               method: 'GET',
               success: function(res) {
                  if (res.code == 200) {
                     that.tableData = res.data.records
                     that.pageTotal = res.data.total
                  } else if (res.code === 403) {
                     top.location.href = baseUrl + "/";
                  } else {
                     that.$message({
                        message: res.msg,
                        type: 'error'
                     });
                  }
               }
            });
         },
         handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
            this.pageSize = val
            this.getTableData()
         },
         handleCurrentChange(val) {
            console.log(`当前页: ${val}`);
            this.currentPage = val
            this.getTableData()
         },
         resetParam() {
            this.tableSearchParam = {
               task_no: null,
               status: null,
               wrk_no: null
            }
            this.getTableData()
         },
         exportTable() {
            this.tableSearchParam = {
               task_no: null,
               status: null,
               wrk_no: null
            }
            this.executeExportTable()
         },
         exportTableAll() {
            this.tableSearchParam = {
               task_no: null,
               status: null,
               wrk_no: null
            }
            this.executeExportTableAll()
         },
         tableRowClassName({row, rowIndex}) {
            if (rowIndex === this.commandStep) {
               return 'success-row';
            }
            return '';
         },
         handleCommand(command, row) {
            switch (command) {
               case "showTask":
                  //查看任务
                  this.showTask(row)
                  break;
               case "executeCommand":
                  //执行指令
                  this.executeCommand(row)
                  break;
               case "completeCommand":
                  //完成指令
                  this.completeCommand(row)
                  break;
            }
         },
         showTask(row) {
            let wrkNo = row.wrkNo == null ? "" : row.wrkNo
            console.log(wrkNo)
            //查看指令
            $layui.layer.open({
               type: 2,
               title: '任务管理',
               maxmin: true,
               area: [top.detailWidth, top.detailHeight],
               shadeClose: true,
               content: '../taskWrk/taskWrk.html?taskNo=' + row.taskNo + "&wrkNo=" + wrkNo,
               success: function(layero, index) {}
            });
         },
         executeCommand(row) {
            //执行指令
            let that = this
            $.ajax({
               url: baseUrl + "/commandInfo/executeCommand",
               headers: {
                  'token': localStorage.getItem('token')
               },
               data: {
                  id: row.id
               },
               method: 'POST',
               success: function(res) {
                  if (res.code == 200) {
                     that.$message({
                        message: "执行成功",
                        type: 'success'
                     });
                     that.getTableData()
                  } else if (res.code === 403) {
                     top.location.href = baseUrl + "/";
                  } else {
                     that.$message({
                        message: res.msg,
                        type: 'error'
                     });
                  }
               }
            });
         },
         completeCommand(row) {
            //完成指令
            let that = this
            $.ajax({
               url: baseUrl + "/commandInfo/completeCommand",
               headers: {
                  'token': localStorage.getItem('token')
               },
               data: {
                  id: row.id
               },
               method: 'POST',
               success: function(res) {
                  if (res.code == 200) {
                     that.$message({
                        message: "完成成功",
                        type: 'success'
                     });
                     that.getTableData()
                  } else if (res.code === 403) {
                     top.location.href = baseUrl + "/";
                  } else {
                     that.$message({
                        message: res.msg,
                        type: 'error'
                     });
                  }
               }
            });
         },
      }
   })
</script>
</body>
</html>