From 1160de5142cd2bc08ebc61c247a4857f0c4ab7f1 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 22 五月 2026 10:45:11 +0800
Subject: [PATCH] 特色功能:丰富报销清单并添加审批流程详情——新增功能以丰富报销清单行内容,为费用和差旅报销提供审批流程详情。——引入新的实用函数来处理审批流程节点和汇总信息。——更新组件以利用丰富后的审批流程数据,从而更好地展示审批进度。
---
src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/costReimburseUtils.js | 54 +++++++++++++++++++++++++++++-------------------------
1 files changed, 29 insertions(+), 25 deletions(-)
diff --git a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/costReimburseUtils.js b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/costReimburseUtils.js
index 8cb8fa0..1736b3e 100644
--- a/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/costReimburseUtils.js
+++ b/src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/costReimburseUtils.js
@@ -65,12 +65,12 @@
},
};
-/** 瀹℃壒瑙掕壊涓庢ā鎷熷鎵逛汉 */
-export const MOCK_APPROVERS_BY_ROLE = {
- direct_supervisor: { approverId: "mock_supervisor", approverName: "鐩村睘涓婄骇" },
- dept_manager: { approverId: "mock_manager", approverName: "閮ㄩ棬缁忕悊" },
- cfo: { approverId: "mock_cfo", approverName: "璐㈠姟鎬荤洃" },
- compliance: { approverId: "mock_compliance", approverName: "鍚堣瀹℃牳" },
+/** 瀹℃壒瑙掕壊灞曠ず鍚嶏紙鑺傜偣瀹℃壒浜洪』鍦ㄥ墠绔�夋嫨锛� */
+export const APPROVAL_ROLE_LABELS = {
+ direct_supervisor: "鐩村睘涓婄骇",
+ dept_manager: "閮ㄩ棬缁忕悊",
+ cfo: "璐㈠姟鎬荤洃",
+ compliance: "鍚堣瀹℃牳",
};
/** 鎸夐噾棰濋璁惧鎵归摼 */
@@ -107,30 +107,23 @@
}
export function statusLabel(v) {
+ if (v === "draft") return "鑽夌";
if (v === "approved") return "宸查�氳繃";
+ if (v === "paid") return "宸蹭粯娆�";
if (v === "rejected") return "宸查┏鍥�";
+ if (v === "cancelled") return "宸叉挙鍥�";
return "瀹℃牳涓�";
}
export function statusTagType(v) {
- if (v === "approved") return "success";
+ if (v === "draft") return "info";
+ if (v === "approved" || v === "paid") return "success";
if (v === "rejected") return "danger";
+ if (v === "cancelled") return "info";
return "warning";
}
-export function formatApprovalFlowSummary(row) {
- const nodes = row?.approvalFlowNodes || [];
- if (!nodes.length) return "鈥�";
- return nodes
- .map((n, i) => {
- const name = (n.approverName || "").trim() || `鑺傜偣${i + 1}`;
- if (n.nodeStatus === "finish") return `${name}鉁揱;
- if (n.nodeStatus === "error") return `${name}鉁梎;
- if (n.nodeStatus === "process") return `${name}鈥;
- return name;
- })
- .join(" 鈫� ");
-}
+export { formatApprovalFlowSummary } from "../shared/finReimbursementMappers.js";
export function resolveApprovalRoles(amount, expenseCategory) {
const amt = Number(amount) || 0;
@@ -149,14 +142,25 @@
return roles;
}
-export function buildAutoApprovalFlow(amount, expenseCategory) {
+export function buildAutoApprovalFlow(amount, expenseCategory, previousNodes = []) {
const roles = resolveApprovalRoles(amount, expenseCategory);
+ const prevByRole = new Map();
+ (previousNodes || []).forEach((n, idx) => {
+ if (n?.roleKey) prevByRole.set(n.roleKey, n);
+ else if (n?.approverId != null && n.approverId !== "") {
+ prevByRole.set(`__idx_${idx}`, n);
+ }
+ });
return roles.map((role, i) => {
- const mock = MOCK_APPROVERS_BY_ROLE[role] || { approverId: `mock_${role}`, approverName: role };
+ const prev = prevByRole.get(role) || prevByRole.get(`__idx_${i}`);
+ const hasApprover = prev?.approverId != null && prev.approverId !== "";
return {
- approverId: mock.approverId,
- approverName: mock.approverName,
+ approverId: hasApprover ? prev.approverId : null,
+ approverName: hasApprover
+ ? prev.approverName || ""
+ : APPROVAL_ROLE_LABELS[role] || role,
roleKey: role,
+ signMode: prev?.signMode || "countersign",
sortOrder: i + 1,
nodeOrder: i + 1,
nodeStatus: i === 0 ? "process" : "wait",
@@ -171,7 +175,7 @@
const rule = APPROVAL_AMOUNT_RULES.find((r) => amt <= r.maxAmount) || APPROVAL_AMOUNT_RULES[APPROVAL_AMOUNT_RULES.length - 1];
const extra = CATEGORY_EXTRA_APPROVAL[expenseCategory] || [];
const extraText = extra.length
- ? `锛�${expenseCategoryLabel(expenseCategory)}绫诲彟闇�锛�${extra.map((r) => MOCK_APPROVERS_BY_ROLE[r]?.approverName || r).join("銆�")}`
+ ? `锛�${expenseCategoryLabel(expenseCategory)}绫诲彟闇�锛�${extra.map((r) => APPROVAL_ROLE_LABELS[r] || r).join("銆�")}`
: "";
return `${rule.description}${extraText}`;
}
--
Gitblit v1.9.3