refactor(frontend): services/api 迁至 src/api,http 迁至 utils/request

对齐 Vue 后台惯例:
- src/api/          域 API(原 services/api)
- src/utils/request.ts  HTTP 封装(原 services/http.ts)
- src/utils/export.ts  客户端导出工具
- src/utils/index.ts   工具统一出口

全局导入改为 @/api 与 @/utils/request,tsc + build 通过。
This commit is contained in:
Logan.Li committed 2026-06-26 00:09:07 +08:00
1 parent 9bf35b369c
commit d19a03d427
145 files changed
+156 -142

No files matched your search

-25
View File
@@ -1,25 +0,0 @@
// 客户端导出工具 — 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);
}