44 行
1.6 KiB
TypeScript
44 行
1.6 KiB
TypeScript
export type WorkflowConfirmAction = "approve" | "reject" | "return";
|
|
|
|
export type WorkflowConfirmCopy = {
|
|
title: string;
|
|
description: string;
|
|
confirmLabel: string;
|
|
variant: "default" | "destructive";
|
|
};
|
|
|
|
const CONFIRM_COPY: Record<WorkflowConfirmAction, WorkflowConfirmCopy> = {
|
|
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" ? "保存通过草稿" : "保存驳回草稿",
|
|
};
|
|
}
|