From a6ed4d998937be1da607ad53bef0fd143065c60c Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Fri, 6 Feb 2026 16:44:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E4=BA=A4=E6=98=93=E5=89=8D=E7=AB=AFAPI=E5=92=8C=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新建前端API文件 (ccdiPurchaseTransaction.js) * 实现完整的CRUD接口 * 支持导入导出功能 * 实现异步导入状态查询接口 - 新建前端页面组件 (index.vue) * 完整的查询表单(项目名称、标的物、申请人、日期范围) * 数据列表展示(采购类别、项目、标的物、供应商、金额等) * 新增/编辑对话框(包含所有字段,分组布局) * 详情对话框(使用el-descriptions展示) * 导入功能(支持异步导入轮询) * 导出功能 * 删除确认 - 异步导入轮询逻辑 * 每2秒轮询导入状态 * 导入完成后显示成功/失败统计 * 失败记录详情展示 * 自动清理定时器 字段匹配后端实体类CcdiPurchaseTransaction的所有属性 --- ruoyi-ui/src/api/ccdiPurchaseTransaction.js | 90 ++ .../views/ccdiPurchaseTransaction/index.vue | 947 ++++++++++++++++++ 2 files changed, 1037 insertions(+) create mode 100644 ruoyi-ui/src/api/ccdiPurchaseTransaction.js create mode 100644 ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue diff --git a/ruoyi-ui/src/api/ccdiPurchaseTransaction.js b/ruoyi-ui/src/api/ccdiPurchaseTransaction.js new file mode 100644 index 0000000..36b47c6 --- /dev/null +++ b/ruoyi-ui/src/api/ccdiPurchaseTransaction.js @@ -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 } + }) +} diff --git a/ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue b/ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue new file mode 100644 index 0000000..241eaa7 --- /dev/null +++ b/ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue @@ -0,0 +1,947 @@ + + + + +