Browse Source

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

- 新增 eamExchangeOrderExportExcel API 接口用于导出功能
- 在工单页面添加导出按钮并集成 loading 状态显示
- 更新页面导入语句以包含新的导出接口函数
- 实现完整的 Excel 导出逻辑,包括参数处理和文件下载
- 添加导出过程中的错误处理和用户提示机制
- 优化导出流程以提升用户体验和数据处理效率
master
qiankanghui 3 weeks ago
parent
commit
8e2882aa1a
  1. 2
      src/api/eam/eam.js
  2. 39
      src/views/modules/eam/eamWorkOrderForDefect.vue

2
src/api/eam/eam.js

@ -110,6 +110,8 @@ export const eamWorkOrderReportSearch= data => createAPI(`/pms/eam/eamWorkOrderR
export const eamWorkOrderSearchForDefect= data => createAPI(`/pms/eam/eamWorkOrderSearchForDefect`,'post',data) export const eamWorkOrderSearchForDefect= data => createAPI(`/pms/eam/eamWorkOrderSearchForDefect`,'post',data)
export const updateWorkOrder= data => createAPI(`/pms/eam/updateWorkOrder`,'post',data) export const updateWorkOrder= data => createAPI(`/pms/eam/updateWorkOrder`,'post',data)
export const eamExchangeOrderExportExcel = data => createAPI(`/pms/eam/eamExchangeOrderExportExcel`,'post',data,'download')
//---------------故障------------------- //---------------故障-------------------
export const eamDefectSearch = data => createAPI(`/pms/eam/eamDefectSearch`,'post',data) export const eamDefectSearch = data => createAPI(`/pms/eam/eamDefectSearch`,'post',data)

39
src/views/modules/eam/eamWorkOrderForDefect.vue

@ -108,7 +108,7 @@
<el-button v-if="!authSearch" @click="getDataList()">查询</el-button> <el-button v-if="!authSearch" @click="getDataList()">查询</el-button>
<el-button v-if="!authCheck" @click="checkModals()">批量审核</el-button> <el-button v-if="!authCheck" @click="checkModals()">批量审核</el-button>
<el-button v-if="!authChange" type="primary" @click="changeModel()">更改执行人员</el-button> <el-button v-if="!authChange" type="primary" @click="changeModel()">更改执行人员</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--> <!-- <download-excel-->
<!-- :fields="fields()"--> <!-- :fields="fields()"-->
<!-- :data="exportData"--> <!-- :data="exportData"-->
@ -771,6 +771,7 @@ import {
queryHistoryRecord, // queryHistoryRecord, //
getSparPartImages, // getSparPartImages, //
getConfirmButtonOperator, // getConfirmButtonOperator, //
eamExchangeOrderExportExcel,
} from "@/api/eam/eam.js" } from "@/api/eam/eam.js"
import { import {
downLoadObjectFile, downLoadObjectFile,
@ -787,7 +788,7 @@ import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/user
import Chooselist from '@/views/modules/common/Chooselist_eam' import Chooselist from '@/views/modules/common/Chooselist_eam'
import {isAuth} from '../../../utils' import {isAuth} from '../../../utils'
import excel from "@/utils/excel-util.js"; import excel from "@/utils/excel-util.js";
import {abandonedEamWorkOrder, cancelDefectOrder} from "../../../api/eam/eam";
import {abandonedEamWorkOrder, cancelDefectOrder, eamWorkOrderExpiortExcel} from "../../../api/eam/eam";
export default { export default {
components: { components: {
Chooselist Chooselist
@ -809,6 +810,7 @@ export default {
}, },
data() { data() {
return { return {
exportLoading: false,
// //
favorite: false, favorite: false,
// start // start
@ -1953,18 +1955,27 @@ export default {
}, },
async exportExcel() { async exportExcel() {
this.searchData.limit = -1
this.searchData.page = 1
excel.exportTable({
url: "/pms/eam/eamWorkOrderSearchForDefect",
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 eamExchangeOrderExportExcel(params)
//
const url = window.URL.createObjectURL(new Blob([response.data]))
const link = document.createElement('a')
link.href = url
link.setAttribute('download', '换线专家组维修工单.xlsx')
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 //excel

Loading…
Cancel
Save