文件
hyb-oa/client/src/api/exports.ts
T

60 行
1.8 KiB
TypeScript

import { apiRequestBlob, type ApiBlobResponse } from "./http";
export async function exportReimbursements(params: {
format: "csv" | "xlsx";
status?: string;
scope?: "own" | "all";
}) {
const qs = new URLSearchParams();
qs.set("format", params.format);
if (params.status) qs.set("status", params.status);
if (params.scope) qs.set("scope", params.scope);
return apiRequestBlob(`/api/exports/reimbursements?${qs.toString()}`);
}
export async function exportInvoicePool(params: {
format: "csv" | "xlsx";
status?: string;
ownerScope?: "own" | "all";
}) {
const qs = new URLSearchParams();
qs.set("format", params.format);
if (params.status) qs.set("status", params.status);
if (params.ownerScope) qs.set("ownerScope", params.ownerScope);
return apiRequestBlob(`/api/exports/invoice-pool?${qs.toString()}`);
}
export async function exportAuditLogs(params: {
format: "csv" | "xlsx";
action?: string;
targetType?: string;
actorId?: string;
}) {
const qs = new URLSearchParams();
qs.set("format", params.format);
if (params.action) qs.set("action", params.action);
if (params.targetType) qs.set("targetType", params.targetType);
if (params.actorId) qs.set("actorId", params.actorId);
return apiRequestBlob(`/api/exports/audit-logs?${qs.toString()}`);
}
export async function exportDashboardReimbursements(params: {
format: "csv" | "xlsx";
dateFrom?: string;
dateTo?: string;
departmentId?: string;
}) {
const qs = new URLSearchParams();
qs.set("format", params.format);
if (params.dateFrom) qs.set("dateFrom", params.dateFrom);
if (params.dateTo) qs.set("dateTo", params.dateTo);
if (params.departmentId) qs.set("departmentId", params.departmentId);
return apiRequestBlob(`/api/exports/dashboard/reimbursements?${qs.toString()}`);
}
export type { ApiBlobResponse };