| | |
| | | <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> |
| | |
| | | <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">导出所有</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table ref="singleTable" :data="tableData" style="width: 100%;"> |
| | |
| | | el: '#app', |
| | | data: { |
| | | tableData: [], |
| | | tableDataAll: [], |
| | | currentPage: 1, |
| | | pageSizes: [16, 30, 50, 100, 150, 200], |
| | | pageSize: 16, |
| | |
| | | } |
| | | }); |
| | | }, |
| | | executeExportTable() { |
| | | // 1. 过滤操作列 |
| | | const exportData = this.tableData.map(item => { |
| | | const cloned = { ...item } |
| | | delete cloned.operation // 移除操作列关联字段 |
| | | return cloned |
| | | }) |
| | | |
| | | // 2. 完整字段映射 |
| | | const headerMap = { |
| | | 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$: '生成时间', |
| | | 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) |
| | | } 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() |
| | | }, |
| | | exportTable() { |
| | | this.executeExportTable() |
| | | }, |
| | | exportTableAll() { |
| | | this.executeExportTableAll() |
| | | }, |
| | | handleCommand(command, row) { |
| | | switch (command) { |
| | | case "showCommand": |