R102/A1-A8 优化报销主流程
这个提交包含在:
@@ -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}` : "未编号报销";
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户