From a4cdaecf8a4784cbc9ae11b99e48713a5a6af514 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 30 Jan 2026 17:33:14 +0800 Subject: [PATCH] =?UTF-8?q?refactor(annotation):=20=E7=AE=80=E5=8C=96?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除前端手动创建 a 标签下载文件的方式 - 将文件名参数传递给后端 API 函数 - 利用 download 函数内置的下载处理机制 - 简化 ExportAnnotationDialog 组件中的导出流程 - 更新 annotation.api.ts 中的 downloadAnnotationsUsingGet 函数签名 - 直接通过 API 调用完成文件下载和命名 --- .../Home/ExportAnnotationDialog.tsx | 24 +++++++------------ .../pages/DataAnnotation/annotation.api.ts | 5 ++-- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/frontend/src/pages/DataAnnotation/Home/ExportAnnotationDialog.tsx b/frontend/src/pages/DataAnnotation/Home/ExportAnnotationDialog.tsx index ccc6df3..05f8506 100644 --- a/frontend/src/pages/DataAnnotation/Home/ExportAnnotationDialog.tsx +++ b/frontend/src/pages/DataAnnotation/Home/ExportAnnotationDialog.tsx @@ -106,13 +106,6 @@ export default function ExportAnnotationDialog({ const values = await form.validateFields(); setExporting(true); - const blob = await downloadAnnotationsUsingGet( - projectId, - values.format, - values.onlyAnnotated, - values.includeData - ); - // 获取文件名 const formatExt: Record = { json: "json", @@ -124,15 +117,14 @@ export default function ExportAnnotationDialog({ const ext = formatExt[values.format as ExportFormat] || "json"; const filename = `${projectName}_annotations.${ext}`; - // 下载文件 - const url = window.URL.createObjectURL(blob as Blob); - const a = document.createElement("a"); - a.href = url; - a.download = filename; - document.body.appendChild(a); - a.click(); - window.URL.revokeObjectURL(url); - document.body.removeChild(a); + // 下载文件(download函数内部已处理下载逻辑) + await downloadAnnotationsUsingGet( + projectId, + values.format, + values.onlyAnnotated, + values.includeData, + filename + ); message.success("导出成功"); onClose(); diff --git a/frontend/src/pages/DataAnnotation/annotation.api.ts b/frontend/src/pages/DataAnnotation/annotation.api.ts index 5acf0a6..9adb01a 100644 --- a/frontend/src/pages/DataAnnotation/annotation.api.ts +++ b/frontend/src/pages/DataAnnotation/annotation.api.ts @@ -109,12 +109,13 @@ export function downloadAnnotationsUsingGet( projectId: string, format: ExportFormat = "json", onlyAnnotated: boolean = true, - includeData: boolean = false + includeData: boolean = false, + filename?: string ) { const params = new URLSearchParams({ format, only_annotated: String(onlyAnnotated), include_data: String(includeData), }); - return download(`/api/annotation/export/projects/${projectId}/download?${params.toString()}`); + return download(`/api/annotation/export/projects/${projectId}/download?${params.toString()}`, null, filename); }