export type WorkflowConfirmAction = "approve" | "reject" | "return"; export type WorkflowConfirmCopy = { title: string; description: string; confirmLabel: string; variant: "default" | "destructive"; }; const CONFIRM_COPY: Record = { approve: { title: "确认通过审批?", description: "确认后将进入下一审批节点;如果没有下一节点,单据将审批通过。系统会写入审批历史。", confirmLabel: "确认通过", variant: "default", }, reject: { title: "确认驳回审批?", description: "驳回后当前流程将终止或进入驳回态。申请人通常需要复制或重新发起;本次驳回意见会写入审批历史。", confirmLabel: "确认驳回", variant: "destructive", }, return: { title: "确认退回审批?", description: "退回后单据会回到申请人修改态,保留原单号和审批历史;申请人修改后可重新提交。", confirmLabel: "确认退回", variant: "default", }, }; export function getWorkflowConfirmCopy(action: WorkflowConfirmAction, options: { offlineDraft?: boolean } = {}) { const copy = CONFIRM_COPY[action]; if (!options.offlineDraft) { return copy; } return { ...copy, title: action === "approve" ? "确认保存通过草稿?" : "确认保存驳回草稿?", description: `${copy.description} 当前离线时只会保存为待同步草稿,联网同步成功后才会正式提交。`, confirmLabel: action === "approve" ? "保存通过草稿" : "保存驳回草稿", }; }