Files
aiops/frontend/src/lib/export-utils.ts
T
Logan.Li 0b404b4611 refactor(frontend): API 子模块化、大组件拆分与 TanStack Query hooks
P1: kubernetes/system API 拆为子目录模块,导出工具下沉到 lib/export-utils,
    http 统一 buildApiUrl/getWsBase;HostMonitor、DeploymentEdit* 拆至子组件。

P2: 新增 hooks/api(queryKeys、useTerminalSessions、useHostMonitor),
    TerminalSessionsTab 与 HostMonitor 接入 TanStack Query。

P3: 保留 services/api 路径,未迁移至 api/ 目录。
2026-06-26 00:02:29 +08:00

25 lines
901 B
TypeScript

// 客户端导出工具 — CSV / JSON 下载 // Logan.Li
export function exportAsCSV(filename: string, data: Record<string, unknown>[]): void {
if (data.length === 0) return;
const headers = Object.keys(data[0]);
const csv = [
headers.join(','),
...data.map((row) => headers.map((h) => JSON.stringify(row[h] ?? '')).join(',')),
].join('\n');
const blob = new Blob(['\ufeff' + csv], { type: 'text/csv;charset=utf-8;' });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = filename;
a.click();
URL.revokeObjectURL(a.href);
}
export function exportAsJSON(filename: string, data: unknown[]): void {
const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = filename;
a.click();
URL.revokeObjectURL(a.href);
}