From cf3e04bc9a4dc45ca7573db50fe4a3235669cb53 Mon Sep 17 00:00:00 2001 From: qiankanghui <11284155+qian-kanghui@user.noreply.gitee.com> Date: Thu, 5 Feb 2026 13:34:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(eam):=20=E6=B7=BB=E5=8A=A0=E6=8D=A2?= =?UTF-8?q?=E7=BA=BF=E4=B8=93=E5=AE=B6=E7=BB=84=E7=BB=B4=E4=BF=AE=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 reportExchangeWorkOrderExport API 接口用于工单导出 - 为换线专家组维修工单导出功能添加时间戳文件名 - 在报表页面添加导出按钮加载状态显示 - 实现统一的工单导出接口替换原有表格导出方式 - 添加导出异常处理和用户提示功能 - 完善导出过程中的加载状态管理 --- src/api/eam/eam.js | 3 +- .../modules/eam/eamWorkOrderForDefect.vue | 17 ++++++- .../modules/eam/eamWorkOrderForDefect2.vue | 14 +++++- .../reportWorkOrder/reportDefectOrder.vue | 50 ++++++++++++++----- 4 files changed, 67 insertions(+), 17 deletions(-) diff --git a/src/api/eam/eam.js b/src/api/eam/eam.js index 603e181..836b2e7 100644 --- a/src/api/eam/eam.js +++ b/src/api/eam/eam.js @@ -238,7 +238,7 @@ export const deleteFeedMatter = data => createAPI(`/pms/eam/deleteFeedMatter`,'p export const getOperatorListByOrder = data => createAPI(`/pms/eam/getOperatorListByOrder`,'post',data) export const checkWorkOrders = data => createAPI(`/pms/eam/checkWorkOrders`,'post',data) export const exportEmployeeAttendanceSearch = data => createAPI(`/pms/eam/exportEmployeeAttendanceSearch`,'post',data) - +export const reportExchangeWorkOrderExport = data => createAPI(`/pms/eam/reportExchangeWorkOrderExport`,'post', data, 'download') // 换线专家组维修执行 转单 export const updateRepairTypes = data => createAPI(`/pms/eam/updateRepairTypes`,'post',data) @@ -248,5 +248,6 @@ export const goDownItemEam = data => createAPI(`/pms/eam/goDownItemEam`,'post',d //维保 export const eamMaintainOrderExportExcel= data => createAPI(`/pms/eam/eamMaintainOrderExportExcel`,'post',data,'download') + // 废弃工单 export const abandonedEamWorkOrder = data => createAPI(`/pms/eam/abandonedEamWorkOrder`,'post',data) diff --git a/src/views/modules/eam/eamWorkOrderForDefect.vue b/src/views/modules/eam/eamWorkOrderForDefect.vue index de28164..48b26f6 100644 --- a/src/views/modules/eam/eamWorkOrderForDefect.vue +++ b/src/views/modules/eam/eamWorkOrderForDefect.vue @@ -1960,12 +1960,25 @@ export default { let params = this.searchData params.limit = -1 params.page = 1 + const response = await eamExchangeOrderExportExcel(params) - // 创建下载链接 + + const now = new Date() + const pad = n => n.toString().padStart(2, '0') + const timeStr = + now.getFullYear() + + pad(now.getMonth() + 1) + + pad(now.getDate()) + + pad(now.getHours()) + + pad(now.getMinutes()) + + pad(now.getSeconds()) + + const fileName = `换线专家组维修工单_${timeStr}.xlsx` + const url = window.URL.createObjectURL(new Blob([response.data])) const link = document.createElement('a') link.href = url - link.setAttribute('download', '换线专家组维修工单.xlsx') + link.setAttribute('download', fileName) document.body.appendChild(link) link.click() link.remove() diff --git a/src/views/modules/eam/eamWorkOrderForDefect2.vue b/src/views/modules/eam/eamWorkOrderForDefect2.vue index 045b27f..2459fca 100644 --- a/src/views/modules/eam/eamWorkOrderForDefect2.vue +++ b/src/views/modules/eam/eamWorkOrderForDefect2.vue @@ -2086,11 +2086,23 @@ export default { params.limit = -1 params.page = 1 const response = await eamWorkOrderExpiortExcel(params) + + const now = new Date() + const pad = n => n.toString().padStart(2, '0') + const timeStr = + now.getFullYear() + + pad(now.getMonth() + 1) + + pad(now.getDate()) + + pad(now.getHours()) + + pad(now.getMinutes()) + + pad(now.getSeconds()) + + const fileName = `设备维修组维修工单_${timeStr}.xlsx` // 创建下载链接 const url = window.URL.createObjectURL(new Blob([response.data])) const link = document.createElement('a') link.href = url - link.setAttribute('download', '设备维修组维修工单.xlsx') + link.setAttribute('download', fileName) document.body.appendChild(link) link.click() link.remove() diff --git a/src/views/modules/reportWorkOrder/reportDefectOrder.vue b/src/views/modules/reportWorkOrder/reportDefectOrder.vue index 9918e63..f4410f7 100644 --- a/src/views/modules/reportWorkOrder/reportDefectOrder.vue +++ b/src/views/modules/reportWorkOrder/reportDefectOrder.vue @@ -81,7 +81,7 @@ 查询 - {{'导出'}} + {{'导出'}} @@ -732,6 +732,7 @@ saveCoreComponent, getSparPartImages, // 获取备件图片 deleteCoreComponents,//删除核心备件 + reportExchangeWorkOrderExport//执行工单导出 } from "@/api/eam/eam.js" import { downLoadObjectFile, @@ -771,6 +772,7 @@ }, data () { return { + exportLoading: false, coreComponentFlag: false, uploadDialog: false, planPeople:'', @@ -2181,18 +2183,40 @@ }, async exportExcel() { - this.searchData.limit = -1 - this.searchData.page = 1 - excel.exportTable({ - url: "/pms/eam/eamWorkOrderSearch2", - columnMapping: this.columnList,//可以直接用table,不需要的列就剔除 - mergeSetting: [],//需要合并的列 - params: this.searchData, - fileName: this.exportName+".xlsx", - rowFetcher: res => res.data, - columnFormatter: [], - dropColumns: [],//需要剔除的列,例如dropColumns: ["netWeight"],即剔除净重列 - }); + try { + this.exportLoading = true + let params = this.searchData + params.limit = -1 + params.page = 1 + + const response = await reportExchangeWorkOrderExport(params) + + const now = new Date() + const pad = n => n.toString().padStart(2, '0') + const timeStr = + now.getFullYear() + + pad(now.getMonth() + 1) + + pad(now.getDate()) + + pad(now.getHours()) + + pad(now.getMinutes()) + + pad(now.getSeconds()) + + const fileName = `换线专家组维修执行工单_${timeStr}.xlsx` + + const url = window.URL.createObjectURL(new Blob([response.data])) + const link = document.createElement('a') + link.href = url + link.setAttribute('download', fileName) + document.body.appendChild(link) + link.click() + link.remove() + window.URL.revokeObjectURL(url) + } catch (error) { + console.error('导出失败:', error) + this.$message.error('导出失败') + } finally { + this.exportLoading = false + } }, //导出excel