*
lsh
2025-04-09 62a19bf40e747ab986645728d65a63b927eddb6e
src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -10,6 +10,8 @@
      <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>
   <script type="text/javascript" src="../../static/wcs/js/xlsx.full.min.js"></script>
   <script type="text/javascript" src="../../static/wcs/js/FileSaver.min.js"></script>
   </head>
   <body>
@@ -26,6 +28,8 @@
                  <el-form-item>
                     <el-button type="primary" @click="getTableData">查询</el-button>
                     <el-button type="primary" @click="resetParam">重置</el-button>
               <el-button type="primary" @click="exportTable">导出当前页面数据</el-button>
               <el-button type="primary" @click="exportTableAll">导出所有(点击后等待2分钟以上,不要重复点击)</el-button>
                  </el-form-item>
               </el-form>
               <el-table ref="singleTable" :data="tableData" style="width: 100%;">
@@ -71,6 +75,8 @@
                  </el-table-column>
                  <el-table-column property="barcode" label="条码">
                  </el-table-column>
            <el-table-column property="memo" label="备注">
            </el-table-column>
               </el-table>
               <div style="margin-top: 10px;">
@@ -91,6 +97,7 @@
            el: '#app',
            data: {
               tableData: [],
         tableDataAll: [],
               currentPage: 1,
               pageSizes: [16, 30, 50, 100, 150, 200],
               pageSize: 16,
@@ -146,6 +153,158 @@
                     }
                  });
               },
         executeExportTable() {
            // 1. 过滤操作列
            const exportData = this.tableData.map(item => {
               const cloned = { ...item }
               delete cloned.operation // 移除操作列关联字段
               return cloned
            })
            // 2. 完整字段映射
            const headerMap = {
               taskNo: '任务号',
               status: 'status',
               wrkNo: '工作号',
               createTime: 'createTime',
               ioType: 'ioType',
               ioPri: '优先级',
               startPoint: '起点位置',
               targetPoint: '终点位置',
               modiUser: 'modiUser',
               modiTime: 'modiTime',
               memo: '备注',
               barcode: '条码',
               assignTime: 'assignTime',
               executeTime: 'executeTime',
               completeTime: 'completeTime',
               cancelTime: 'cancelTime',
               wrkSts: 'wrkSts',
               crnNo: '堆垛机号',
               commandStep: 'step',
               transferMark: 'mark',
               wrkSts$: '工作状态',
               ioType$: '任务类型',
               status$: '任务状态',
               createTime$: '生成时间',
               modiTime$: '更新时间',
               modiUser$: '更新人员',
               completeTime$: '完结时间',
               executeTime$: '执行时间',
               assignTime$: '派发时间',
               cancelTime$: '取消时间'
               // taskNo: '任务号',
               // status$: '任务状态',
               // wrkNo: '工作号',
               // createTime$: '生成时间',
               // modiTime$: '更新时间',
               // assignTime$: '派发时间',
               // executeTime$: '执行时间',
               // completeTime$: '完结时间',
               // cancelTime$: '取消时间',
               // durationTime: '持续时长',
               // ioType$: '任务类型',
               // startPoint: '起点位置',
               // targetPoint: '终点位置',
               // wrkSts$: '工作状态',
               // crnNo: '堆垛机号',
               // barcode: '条码',
               // memo: '备注'
            }
            // 3. 创建工作表
            const worksheet = XLSX.utils.json_to_sheet(exportData)
            // 4. 替换表头为中文
            XLSX.utils.sheet_add_aoa(worksheet, [Object.values(headerMap)], { origin: 'A1' })
            // 5. 生成文件名(带日期)
            const fileName = `任务列表_${new Date().toLocaleDateString().replace(/\//g, '-')}.xlsx`
            // 6. 导出文件
            const workbook = XLSX.utils.book_new()
            XLSX.utils.book_append_sheet(workbook, worksheet, '任务数据')
            XLSX.writeFile(workbook, fileName)
         },
         executeExportTableAll() {
            let that = this;
            $.ajax({
               url: baseUrl + "/taskWrkLog/export/all/auth",
               headers: {
                  'token': localStorage.getItem('token')
               },
               dataType: 'json',
               contentType: 'application/json;charset=UTF-8',
               method: 'GET',
               success: function(res) {
                  if (res.code == 200) {
                     that.tableDataAll = res.data.records
                     // 1. 过滤操作列
                     const exportData = that.tableDataAll.map(item => {
                        const cloned = { ...item }
                        delete cloned.operation // 移除操作列关联字段
                        return cloned
                     })
                     // 2. 完整字段映射
                     const headerMap = {
                        taskNo: '任务号',
                        status: '任务状态',
                        wrkNo: '工作号',
                        createTime: 'createTime',
                        ioType: 'ioType',
                        ioPri: '优先级',
                        startPoint: '起点位置',
                        targetPoint: '终点位置',
                        modiUser: 'modiUser',
                        modiTime: 'modiTime',
                        memo: '备注',
                        barcode: '条码',
                        assignTime: 'assignTime',
                        executeTime: 'executeTime',
                        completeTime: 'completeTime',
                        cancelTime: 'cancelTime',
                        wrkSts: 'wrkSts',
                        crnNo: '堆垛机号',
                        commandStep: 'step',
                        transferMark: 'mark',
                        wrkSts$: '工作状态',
                        ioType$: '任务类型',
                        status$: '任务状态',
                        createTime$: '生成时间',
                        modiTime$: '更新时间',
                        modiUser$: '更新人员',
                        completeTime$: '完结时间',
                        executeTime$: '执行时间',
                        assignTime$: '派发时间',
                        cancelTime$: '取消时间'
                     }
                     // 3. 创建工作表
                     const worksheet = XLSX.utils.json_to_sheet(exportData)
                     // 4. 替换表头为中文
                     XLSX.utils.sheet_add_aoa(worksheet, [Object.values(headerMap)], { origin: 'A1' })
                     // 5. 生成文件名(带日期)
                     const fileName = `任务列表_${new Date().toLocaleDateString().replace(/\//g, '-')}.xlsx`
                     // 6. 导出文件
                     const workbook = XLSX.utils.book_new()
                     XLSX.utils.book_append_sheet(workbook, worksheet, '任务数据')
                     XLSX.writeFile(workbook, fileName)
                  } 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
@@ -164,6 +323,12 @@
                  }
                  this.getTableData()
               },
         exportTable() {
            this.executeExportTable()
         },
         exportTableAll() {
            this.executeExportTableAll()
         },
               handleCommand(command, row) {
                  switch (command) {
                     case "showCommand":