Browse Source

feat(eam): 添加维保工单导出功能

- 新增 eamMaintainOrderExportExcel API 接口用于导出维保工单
- 在维保工单页面添加导出按钮并集成导出功能
- 实现导出加载状态控制避免重复点击
- 使用新的导出接口替换原有的 excel.exportTable 方式
- 添加导出成功和失败的消息提示
- 设置默认导出文件名为"设备维保组维保工单.xlsx"
master
qiankanghui 3 weeks ago
parent
commit
69ba557c21
  1. 2
      src/api/eam/eam.js
  2. 44
      src/views/modules/eam/eamWorkOrderForMaintenance.vue

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

44
src/views/modules/eam/eamWorkOrderForMaintenance.vue

@ -66,7 +66,7 @@
<el-form-item label=" ">
<el-button v-if="!authSearch" :loading="searchLoading" @click="searchClick()">查询</el-button>
<el-button type="primary" :loading="checkLoading" @click="checkModals()">批量审核</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>
<!-- <el-button type="primary" @click="changeModel()">更改机修人员</el-button>-->
<!-- <download-excel-->
<!-- :fields="fields()"-->
@ -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

Loading…
Cancel
Save