R102/A1-A8 优化报销主流程

这个提交包含在:
2026-05-06 23:06:12 +08:00
父节点 ed35967a65
当前提交 9a9def6286
共修改 10 个文件,包含 608 行新增和 54 行删除
+29
查看文件
@@ -0,0 +1,29 @@
import type { ReimbursementStatus } from "../api/reimbursements";
type ReimbursementDisplayInput = {
formNumber?: string | null;
id?: string | null;
status?: ReimbursementStatus | string | null;
reimbursementDate?: string | null;
createdAt?: string | null;
};
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
export function isUuidLike(value: string | null | undefined) {
return Boolean(value && UUID_PATTERN.test(value));
}
export function resolveReimbursementDisplayCode(item: ReimbursementDisplayInput) {
const formNumber = item.formNumber?.trim();
if (formNumber && !isUuidLike(formNumber)) {
return formNumber;
}
const date = item.reimbursementDate ?? item.createdAt?.slice(0, 10) ?? "";
if (item.status === "draft" || item.status === "rejected") {
return date ? `草稿单 · ${date}` : "草稿单";
}
return date ? `未编号报销 · ${date}` : "未编号报销";
}