From 69ba557c21872ce25ee266c6045c87616b061224 Mon Sep 17 00:00:00 2001 From: qiankanghui <11284155+qian-kanghui@user.noreply.gitee.com> Date: Wed, 4 Feb 2026 09:10:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(eam):=20=E6=B7=BB=E5=8A=A0=E7=BB=B4?= =?UTF-8?q?=E4=BF=9D=E5=B7=A5=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 - 新增 eamMaintainOrderExportExcel API 接口用于导出维保工单 - 在维保工单页面添加导出按钮并集成导出功能 - 实现导出加载状态控制避免重复点击 - 使用新的导出接口替换原有的 excel.exportTable 方式 - 添加导出成功和失败的消息提示 - 设置默认导出文件名为"设备维保组维保工单.xlsx" --- src/api/eam/eam.js | 2 + .../eam/eamWorkOrderForMaintenance.vue | 44 ++++++++++++------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/api/eam/eam.js b/src/api/eam/eam.js index 804a6d8..d282afc 100644 --- a/src/api/eam/eam.js +++ b/src/api/eam/eam.js @@ -243,6 +243,8 @@ export const updateRepairTypes = data => createAPI(`/pms/eam/updateRepairTypes`, // 维保模版点检模版项目上下移 export const goUpItemEam = data => createAPI(`/pms/eam/goUpItemEam`,'post',data) export const goDownItemEam = data => createAPI(`/pms/eam/goDownItemEam`,'post',data) +//维保 +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/eamWorkOrderForMaintenance.vue b/src/views/modules/eam/eamWorkOrderForMaintenance.vue index 3588dd9..8434a00 100644 --- a/src/views/modules/eam/eamWorkOrderForMaintenance.vue +++ b/src/views/modules/eam/eamWorkOrderForMaintenance.vue @@ -66,7 +66,7 @@ 查询 批量审核 - {{'导出'}} + {{'导出'}} @@ -393,6 +393,7 @@ getUserRoleList, getRoleByUserName, checkWorkOrders, // 批量审核 + eamMaintainOrderExportExcel } from "@/api/eam/eam.js" import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js" import Chooselist from '@/views/modules/common/Chooselist_eam' @@ -413,6 +414,7 @@ }, data () { return { + exportLoading: false, // 是否收藏 favorite: false, // 导出 start @@ -1200,20 +1202,32 @@ }, async exportExcel() { - // this.searchData.limit = this.pageSize - // this.searchData.page = this.pageIndex - this.searchData.limit = -1 - this.searchData.page = 1 - excel.exportTable({ - url: "/pms/eam/eamWorkOrderSearch", - columnMapping: this.columnList,//可以直接用table,不需要的列就剔除 - mergeSetting: [],//需要合并的列 - params: this.searchData, - fileName: this.exportName+".xlsx", - rowFetcher: res => res.data, - columnFormatter: [], - dropColumns: [],//需要剔除的列,例如dropColumns: ["netWeight"],即剔除净重列 - }); + if (this.exportLoading) return + + try { + this.exportLoading = true + + const response = await eamMaintainOrderExportExcel(this.searchData) + + const blob = new Blob([response.data]) + const url = window.URL.createObjectURL(blob) + const link = document.createElement('a') + + link.href = url + link.download = '设备维保组维保工单.xlsx' + document.body.appendChild(link) + link.click() + + link.remove() + window.URL.revokeObjectURL(url) + + this.$message.success('导出完成') + } catch (e) { + console.error('导出失败', e) + this.$message.error('导出失败') + } finally { + this.exportLoading = false + } }, //导出excel