Browse Source

feat(eam): 添加换线专家组维修工单导出功能

- 新增 reportExchangeWorkOrderExport API 接口用于工单导出
- 为换线专家组维修工单导出功能添加时间戳文件名
- 在报表页面添加导出按钮加载状态显示
- 实现统一的工单导出接口替换原有表格导出方式
- 添加导出异常处理和用户提示功能
- 完善导出过程中的加载状态管理
master
qiankanghui 3 weeks ago
parent
commit
cf3e04bc9a
  1. 3
      src/api/eam/eam.js
  2. 17
      src/views/modules/eam/eamWorkOrderForDefect.vue
  3. 14
      src/views/modules/eam/eamWorkOrderForDefect2.vue
  4. 50
      src/views/modules/reportWorkOrder/reportDefectOrder.vue

3
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)

17
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()

14
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()

50
src/views/modules/reportWorkOrder/reportDefectOrder.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"-->
@ -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

Loading…
Cancel
Save