文件
hyb-oa/client/src/lib/reimbursementDisplay.ts
T

30 行
964 B
TypeScript

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}` : "未编号报销";
}