feat(P20T2-4): 差旅支付轨道卡片与发票绑定前端交互

这个提交包含在:
2026-03-11 06:41:11 +08:00
父节点 dc74d9e53f
当前提交 2553955f28
共修改 9 个文件,包含 977 行新增和 21 行删除
+22 -2
查看文件
@@ -34,6 +34,7 @@ export type InvoicePoolListItem = {
totalAmount: string | null;
linkedReimbursementId: string | null;
linkedItemId: string | null;
linkedTravelOrderId: string | null;
originalName: string;
mimeType: string;
fileSize: number;
@@ -88,6 +89,7 @@ export type InvoicePoolDetail = {
totalAmount: string | null;
linkedReimbursementId: string | null;
linkedItemId: string | null;
linkedTravelOrderId: string | null;
isDuplicateOverride: boolean;
overrideRefFormNumber: string | null;
overrideReason: string | null;
@@ -104,6 +106,15 @@ export type InvoicePoolListQuery = {
ownerScope?: "own" | "all";
};
export type InvoiceBindPayload =
| {
reimbursementId: string;
linkedItemId?: string;
}
| {
travelOrderId: string;
};
function toQueryString(query: Record<string, string | number | undefined>) {
const params = new URLSearchParams();
@@ -147,10 +158,19 @@ export async function uploadInvoice(file: File, ocrType?: string, ownerEmployeeI
);
}
export async function bindInvoice(invoiceId: string, reimbursementId: string, linkedItemId?: string) {
export async function bindInvoice(
invoiceId: string,
reimbursementIdOrPayload: string | InvoiceBindPayload,
linkedItemId?: string,
) {
const payload =
typeof reimbursementIdOrPayload === "string"
? { reimbursementId: reimbursementIdOrPayload, linkedItemId }
: reimbursementIdOrPayload;
return apiRequestData<Record<string, unknown>>(`/api/invoice-pool/${invoiceId}/bind`, {
method: "POST",
body: JSON.stringify({ reimbursementId, linkedItemId }),
body: JSON.stringify(payload),
});
}