From 55b20142aba96adef08d97ed195b95edbe6a120c Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 3 Apr 2026 14:41:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/eam/eam.js | 1 + .../modules/eamReport/eamDefectRecord.vue | 64 ++++++++++++------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/api/eam/eam.js b/src/api/eam/eam.js index 67f80fa..cc9f9ef 100644 --- a/src/api/eam/eam.js +++ b/src/api/eam/eam.js @@ -212,6 +212,7 @@ export const getSiteAndBuByUserName= data => createAPI(`/pms/eam/getSiteAndBuByU export const eamCheckRecordSearch= data => createAPI(`/pms/eam/eamCheckRecordSearch`,'post',data) export const eamCheckRecordSearch2= data => createAPI(`/pms/eam/eamCheckRecordSearch2`,'post',data) export const eamDefectRecordSearch= data => createAPI(`/pms/eam/eamDefectRecordSearch`,'post',data) +export const eamDefectRecordExportExcel = data => createAPI(`/pms/eam/eamDefectRecordExportExcel`,'post',data,'download') // 获取用户角色列表 export const getUserRoleList= data => createAPI(`/pms/eam/getUserRoleList`,'post',data) diff --git a/src/views/modules/eamReport/eamDefectRecord.vue b/src/views/modules/eamReport/eamDefectRecord.vue index 8cefd5d..7ab35c0 100644 --- a/src/views/modules/eamReport/eamDefectRecord.vue +++ b/src/views/modules/eamReport/eamDefectRecord.vue @@ -123,7 +123,7 @@ 查询 - {{'导出'}} + {{'导出'}} @@ -211,12 +211,12 @@ import { eamDefectRecordSearch, searchFileUrl, - getSiteAndBuByUserName + getSiteAndBuByUserName, + eamDefectRecordExportExcel } from "@/api/eam/eam.js" import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js" import Chooselist from '@/views/modules/common/Chooselist_eam' import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js' -import excel from "@/utils/excel-util.js"; export default { components: { Chooselist @@ -235,13 +235,8 @@ export default { return { // 是否收藏 favorite: false, - // 导出 start - exportData: [], - exportName: "设备维修记录" + this.dayjs().format('YYYYMMDDHHmmss'), - exportHeader: ["设备维修记录"], - exportFooter: [], - exportList: [], - // 导出 end + // 导出加载 + exportLoading: false, tagNo:'', searchData: { site: this.$store.state.user.site, @@ -999,18 +994,43 @@ export default { }, async exportExcel() { - this.searchData.limit = -1 - this.searchData.page = 1 - excel.exportTable({ - url: "/pms/eam/eamDefectRecordSearch", - 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 params = { + ...this.searchData, + limit: -1, + page: 1 + } + const response = await eamDefectRecordExportExcel(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