| | |
| | | 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; |
| | |
| | | reimburseReason: "", |
| | | applyAmount: undefined, |
| | | payee: "", |
| | | payer: "", |
| | | payeeAccount: "", |
| | | bankBranch: "", |
| | | expenseDetails: [], |
| | |
| | | reimburseReason: raw.reimburseReason ?? "", |
| | | applyAmount, |
| | | payee: raw.payee ?? "", |
| | | payer: raw.payer ?? "", |
| | | payeeAccount: raw.payeeAccount ?? "", |
| | | bankBranch: raw.bankBranch ?? "", |
| | | expenseDetails, |