feat: 添加采购交易前端API和页面组件

- 新建前端API文件 (ccdiPurchaseTransaction.js)
  * 实现完整的CRUD接口
  * 支持导入导出功能
  * 实现异步导入状态查询接口

- 新建前端页面组件 (index.vue)
  * 完整的查询表单(项目名称、标的物、申请人、日期范围)
  * 数据列表展示(采购类别、项目、标的物、供应商、金额等)
  * 新增/编辑对话框(包含所有字段,分组布局)
  * 详情对话框(使用el-descriptions展示)
  * 导入功能(支持异步导入轮询)
  * 导出功能
  * 删除确认

- 异步导入轮询逻辑
  * 每2秒轮询导入状态
  * 导入完成后显示成功/失败统计
  * 失败记录详情展示
  * 自动清理定时器

字段匹配后端实体类CcdiPurchaseTransaction的所有属性
This commit is contained in:
wkc
2026-02-06 16:44:05 +08:00
parent 4a560bd4e4
commit a6ed4d9989
2 changed files with 1037 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
import request from '@/utils/request'
// 查询采购交易列表
export function listTransaction(query) {
return request({
url: '/ccdi/purchaseTransaction/list',
method: 'get',
params: query
})
}
// 查询采购交易详情
export function getTransaction(purchaseId) {
return request({
url: '/ccdi/purchaseTransaction/' + purchaseId,
method: 'get'
})
}
// 新增采购交易
export function addTransaction(data) {
return request({
url: '/ccdi/purchaseTransaction',
method: 'post',
data: data
})
}
// 修改采购交易
export function updateTransaction(data) {
return request({
url: '/ccdi/purchaseTransaction',
method: 'put',
data: data
})
}
// 删除采购交易
export function delTransaction(purchaseIds) {
return request({
url: '/ccdi/purchaseTransaction/' + purchaseIds,
method: 'delete'
})
}
// 导出采购交易
export function exportTransaction(query) {
return request({
url: '/ccdi/purchaseTransaction/export',
method: 'post',
params: query
})
}
// 下载导入模板
export function importTemplate() {
return request({
url: '/ccdi/purchaseTransaction/importTemplate',
method: 'post'
})
}
// 导入采购交易
export function importData(file, updateSupport) {
const formData = new FormData()
formData.append('file', file)
formData.append('updateSupport', updateSupport)
return request({
url: '/ccdi/purchaseTransaction/importData',
method: 'post',
data: formData
})
}
// 查询导入状态
export function getImportStatus(taskId) {
return request({
url: '/ccdi/purchaseTransaction/importStatus/' + taskId,
method: 'get'
})
}
// 查询导入失败记录
export function getImportFailures(taskId, pageNum, pageSize) {
return request({
url: '/ccdi/purchaseTransaction/importFailures/' + taskId,
method: 'get',
params: { pageNum, pageSize }
})
}