feat: 完成P6-P8前端能力闭环(V3,D2,D3,B3)

这个提交包含在:
2026-02-10 11:28:51 +08:00
父节点 6bc09f557b
当前提交 4e5a7793fe
共修改 14 个文件,包含 1151 行新增和 62 行删除
+62
查看文件
@@ -0,0 +1,62 @@
import { apiRequestData } from "./http";
export async function triggerErpSync(reimbursementId: string, runNow = true) {
return apiRequestData<{
outboxId: string;
status: string;
duplicated: boolean;
}>(`/api/integrations/erp/sync/${reimbursementId}?runNow=${runNow ? "1" : "0"}`, {
method: "POST",
body: JSON.stringify({}),
});
}
export async function importTravelOrders(payload: {
orders: Array<{
source: string;
externalOrderNo: string;
employeeId: string;
linkedReimbursementId?: string;
occurredAt?: string;
amount?: number;
currency?: string;
}>;
}) {
return apiRequestData<{
requested: number;
imported: number;
skipped: Array<{ source: string; externalOrderNo: string; reason: string }>;
items: Array<{
id: string;
source: string;
externalOrderNo: string;
employeeId: string;
linkedReimbursementId: string | null;
}>;
}>(`/api/travel/orders/import`, {
method: "POST",
body: JSON.stringify(payload),
});
}
export async function testNotificationChannel(payload: {
channelType: string;
name: string;
}) {
return apiRequestData<{
channel: {
id: string;
channelType: string;
name: string;
enabled: boolean;
};
testResult: {
ok: boolean;
code: string;
response?: Record<string, unknown>;
};
}>(`/api/notifications/channels/test`, {
method: "POST",
body: JSON.stringify(payload),
});
}