From 5eefd62d85d1395f99ec43194db29cc21926c20d Mon Sep 17 00:00:00 2001 From: shenyifei Date: Thu, 20 Nov 2025 15:58:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(purchase):=20=E4=BC=98=E5=8C=96=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E5=8D=95=E9=A9=B3=E5=9B=9E=E9=80=BB=E8=BE=91=E4=B8=8E?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 PurchaseOrderRejectApprove 和 PurchaseOrderRejectFinal 组件中增加对 API 返回结果的判断,若驳回失败则展示错误提示 - 调整驳回弹窗内输入框样式,增强视觉效果与用户体验 - 为多个采购单相关 Section 组件传入统一的 calculator 实例,避免重复创建提升性能 - 移除冗余的状态管理逻辑,直接使用 calculator 计算值进行展示 - 更新采购单状态常量定义及文案描述,新增“已驳回”状态及相关路径配置 - 修改工作台菜单标题及跳转路径,如将“我的草稿”改为“待提交草稿” - 调整审批页面路由结构,重命名 approver/approve.tsx 为 audit/audit.tsx 并更新引用路径 - 新增 purchaser/result.tsx 页面用于展示采购单提交审核后的结果,并支持查看详情或返回首页 - 修复部分条件渲染逻辑,确保仅在满足条件下才渲染特定内容 - 升级 app 版本号从 v0.0.22 到 v0.0.24 --- packages/app-client/src/app.config.ts | 21 +- .../button/PurchaseOrderRejectApprove.tsx | 38 +- .../button/PurchaseOrderRejectFinal.tsx | 38 +- .../section/CostDifferenceSection.tsx | 16 +- .../purchase/section/CostSummarySection.tsx | 4 +- .../purchase/section/MarketPriceSection.tsx | 4 +- .../purchase/section/RebateCalcSection.tsx | 4 +- .../purchase/section/TaxProvisionSection.tsx | 15 +- .../purchase/section/TaxSubsidySection.tsx | 13 +- packages/app-client/src/constant/app.ts | 2 +- .../app-client/src/constant/purchaseOrder.ts | 51 ++- packages/app-client/src/constant/workbench.ts | 34 +- .../app-client/src/pages/main/index/index.tsx | 4 +- .../audit}/audit.config.ts | 0 .../approver/{approve.tsx => audit/audit.tsx} | 42 +-- .../approver/{ => audit}/list.config.ts | 0 .../purchase/approver/{ => audit}/list.tsx | 13 +- .../result.config.ts} | 0 .../{approved.tsx => audit/result.tsx} | 0 .../src/pages/purchase/approver/history.tsx | 335 ----------------- .../purchase/{approver => }/history.config.ts | 0 .../purchase/{purchaser => }/history.tsx | 203 +++++++--- .../src/pages/purchase/purchaser/create.tsx | 13 +- .../{draft.config.ts => draft/list.config.ts} | 0 .../purchaser/{draft.tsx => draft/list.tsx} | 0 .../purchase/purchaser/history.config.ts | 4 - .../src/pages/purchase/purchaser/preview.tsx | 8 +- .../result.config.ts} | 0 .../src/pages/purchase/purchaser/result.tsx | 144 +++++++ .../audit/audit.config.ts} | 0 .../purchase/reviewer/{ => audit}/audit.tsx | 54 ++- .../reviewer/{ => audit}/list.config.ts | 0 .../purchase/reviewer/{ => audit}/list.tsx | 9 +- .../result.config.ts} | 4 +- .../{submitted.tsx => audit/result.tsx} | 4 +- .../src/pages/purchase/reviewer/history.tsx | 353 ------------------ .../src/services/business/typings.d.ts | 35 +- .../src/utils/PurchaseOrderCalculator.ts | 109 +++++- swagger/business.json | 2 +- 39 files changed, 646 insertions(+), 930 deletions(-) rename packages/app-client/src/pages/purchase/{reviewer => approver/audit}/audit.config.ts (100%) rename packages/app-client/src/pages/purchase/approver/{approve.tsx => audit/audit.tsx} (88%) rename packages/app-client/src/pages/purchase/approver/{ => audit}/list.config.ts (100%) rename packages/app-client/src/pages/purchase/approver/{ => audit}/list.tsx (95%) rename packages/app-client/src/pages/purchase/approver/{approved.config.ts => audit/result.config.ts} (100%) rename packages/app-client/src/pages/purchase/approver/{approved.tsx => audit/result.tsx} (100%) delete mode 100644 packages/app-client/src/pages/purchase/approver/history.tsx rename packages/app-client/src/pages/purchase/{approver => }/history.config.ts (100%) rename packages/app-client/src/pages/purchase/{purchaser => }/history.tsx (66%) rename packages/app-client/src/pages/purchase/purchaser/{draft.config.ts => draft/list.config.ts} (100%) rename packages/app-client/src/pages/purchase/purchaser/{draft.tsx => draft/list.tsx} (100%) delete mode 100644 packages/app-client/src/pages/purchase/purchaser/history.config.ts rename packages/app-client/src/pages/purchase/{reviewer/submitted.config.ts => purchaser/result.config.ts} (100%) create mode 100644 packages/app-client/src/pages/purchase/purchaser/result.tsx rename packages/app-client/src/pages/purchase/{approver/approve.config.ts => reviewer/audit/audit.config.ts} (100%) rename packages/app-client/src/pages/purchase/reviewer/{ => audit}/audit.tsx (93%) rename packages/app-client/src/pages/purchase/reviewer/{ => audit}/list.config.ts (100%) rename packages/app-client/src/pages/purchase/reviewer/{ => audit}/list.tsx (96%) rename packages/app-client/src/pages/purchase/reviewer/{history.config.ts => audit/result.config.ts} (59%) rename packages/app-client/src/pages/purchase/reviewer/{submitted.tsx => audit/result.tsx} (98%) delete mode 100644 packages/app-client/src/pages/purchase/reviewer/history.tsx diff --git a/packages/app-client/src/app.config.ts b/packages/app-client/src/app.config.ts index 335e075..6faf6d0 100644 --- a/packages/app-client/src/app.config.ts +++ b/packages/app-client/src/app.config.ts @@ -18,23 +18,24 @@ config = { { root: "pages/purchase", pages: [ + "history", + // 采购员(市场/产地) "purchaser/create", - "purchaser/history", "purchaser/preview", - "purchaser/draft", + "purchaser/result", + // 采购员(草稿) + "purchaser/draft/list", // 审核员(报价) - "reviewer/list", - "reviewer/audit", - "reviewer/history", - "reviewer/submitted", + "reviewer/audit/audit", + "reviewer/audit/list", + "reviewer/audit/result", // 审批员(老板) - "approver/list", - "approver/approve", - "approver/approved", - "approver/history", + "approver/audit/audit", + "approver/audit/list", + "approver/audit/result", ], }, // 发货单 diff --git a/packages/app-client/src/components/purchase/button/PurchaseOrderRejectApprove.tsx b/packages/app-client/src/components/purchase/button/PurchaseOrderRejectApprove.tsx index 94cfece..9136488 100644 --- a/packages/app-client/src/components/purchase/button/PurchaseOrderRejectApprove.tsx +++ b/packages/app-client/src/components/purchase/button/PurchaseOrderRejectApprove.tsx @@ -42,11 +42,21 @@ export default function PurchaseOrderRejectApprove( try { // 调用驳回API - await business.purchaseOrder.rejectApprovePurchaseOrder({ + const { + data: { success, errMessage }, + } = await business.purchaseOrder.rejectApprovePurchaseOrder({ orderId: purchaseOrderVO.orderId, rejectReason: rejectReason, }); + if (!success) { + Toast.show("toast", { + icon: "fail", + title: "提示", + content: errMessage || "驳回失败", + }); + return; + } Toast.show("toast", { icon: "success", title: "提示", @@ -98,16 +108,21 @@ export default function PurchaseOrderRejectApprove( title={"驳回"} description={"此采购单将退回到产地录入员"} > - - 请输入驳回原因 -