Browse Source

refactor(report): 更新工单导出功能实现

- 将 reportExchangeWorkOrderExport 重命名为 reportExchangeWorkOrderExcel
- 在 reportDefectOrder2.vue 中添加导出按钮加载状态
- 实现新的 Excel 导出逻辑,替换原有的 exportTable 方法
- 添加导出过程中的 loading 状态管理
- 统一导出文件命名格式为 "设备维修组维修执行工单_时间戳.xlsx"
- 添加导出失败的错误处理和用户提示
master
qiankanghui 3 weeks ago
parent
commit
b9be77de01
  1. 2
      src/api/eam/eam.js
  2. 4
      src/views/modules/reportWorkOrder/reportDefectOrder.vue
  3. 50
      src/views/modules/reportWorkOrder/reportDefectOrder2.vue

2
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 reportExchangeWorkOrderExcel = data => createAPI(`/pms/eam/reportExchangeWorkOrderExcel`,'post', data, 'download')
// 换线专家组维修执行 转单
export const updateRepairTypes = data => createAPI(`/pms/eam/updateRepairTypes`,'post',data)

4
src/views/modules/reportWorkOrder/reportDefectOrder.vue

@ -732,7 +732,7 @@
saveCoreComponent,
getSparPartImages, //
deleteCoreComponents,//
reportExchangeWorkOrderExport//
reportExchangeWorkOrderExcel//
} from "@/api/eam/eam.js"
import {
downLoadObjectFile,
@ -2189,7 +2189,7 @@
params.limit = -1
params.page = 1
const response = await reportExchangeWorkOrderExport(params)
const response = await reportExchangeWorkOrderExcel(params)
const now = new Date()
const pad = n => n.toString().padStart(2, '0')

50
src/views/modules/reportWorkOrder/reportDefectOrder2.vue

@ -81,7 +81,7 @@
</el-form-item>
<el-form-item label=" ">
<el-button v-if="!authSearch" @click="getDataList()">查询</el-button>
<el-button @click="exportExcel()" type="primary" style="margin-left: 2px">{{'导出'}}</el-button>
<el-button @click="exportExcel()" type="primary" :loading="exportLoading" style="margin-left: 2px">{{'导出'}}</el-button>
<!-- <download-excel-->
<!-- :fields="fields()"-->
<!-- :data="exportData"-->
@ -724,6 +724,7 @@ import {
saveCoreComponent,
getSparPartImages, //
deleteCoreComponents,//
reportExchangeWorkOrderExcel//
} from "@/api/eam/eam.js"
import {
downLoadObjectFile,
@ -761,6 +762,7 @@ export default {
},
data () {
return {
loading: false,
updateCoreComponentsFlag: false,
coreComponentFlag: false,
uploadDialog: false,
@ -2164,18 +2166,40 @@ export default {
},
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 reportExchangeWorkOrderExcel(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
}
},
rowStyle({row}){
let isReturn = row.isReturn

Loading…
Cancel
Save