diff --git a/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx b/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx index abb265a23..aa64a72fe 100644 --- a/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx +++ b/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx @@ -6,7 +6,8 @@ import { useEffect, useState, useRef } from "react"; import { createAnnotationTaskUsingPost, queryAnnotationTemplatesUsingGet, - createAutoAnnotationTaskUsingPost, + // 自动标注创建API已屏蔽(保留代码在注释中) + // createAutoAnnotationTaskUsingPost, } from "../../annotation.api"; import DatasetFileTransfer from "@/components/business/DatasetFileTransfer"; import { DatasetType, type Dataset, type DatasetFile } from "@/pages/DataManagement/dataset.model"; @@ -329,65 +330,54 @@ export default function CreateAnnotationTask({ } }; - const handleAutoSubmit = async () => { - try { - const values = await autoForm.validateFields(); - - if (imageFileCount === 0) { - message.error(t('dataAnnotation.create.messages.selectAtLeastOneImageFile')); - return; - } - - setSubmitting(true); - - const selectedFiles = Object.values(selectedFilesMap) as any[]; - - // 对于自动标注,后端会根据 fileIds 自动按数据集分组并为每个数据集创建/复用 LS 项目, - // 这里不再强制限制只能选择单一数据集,只需保证至少有一个 datasetId, - // 否则退回到表单中的 datasetId。 - const datasetIds = Array.from( - new Set( - selectedFiles - .map((file) => file?.datasetId) - .filter((id) => id !== undefined && id !== null && id !== ""), - ), - ); - - const effectiveDatasetId = values.datasetId || datasetIds[0]; - - const imageExtensions = [".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff", ".webp"]; - const imageFileIds = Object.values(selectedFilesMap) - .filter((file) => { - const ext = file.fileName?.toLowerCase().match(/\.[^.]+$/)?.[0] || ""; - return imageExtensions.includes(ext); - }) - .map((file) => file.id); - - const payload = { - name: values.name, - datasetId: effectiveDatasetId, - fileIds: imageFileIds, - config: { - modelSize: values.modelSize, - confThreshold: values.confThreshold, - targetClasses: selectAllClasses ? [] : values.targetClasses || [], - }, - }; - - await createAutoAnnotationTaskUsingPost(payload); - message.success(t('dataAnnotation.create.messages.autoCreateSuccess')); - setShouldResetOnOpen(true); // 标记下次打开时需要重置 - // 触发上层刷新自动标注任务列表 - (onRefresh as any)?.("auto"); - onClose(); - } catch (error: any) { - if (error.errorFields) return; - console.error("Failed to create auto annotation task:", error); - message.error(error.message || t('dataAnnotation.create.messages.autoCreateFailed')); - } finally { - setSubmitting(false); - } - }; + // 自动标注提交函数已屏蔽(保留代码在注释中) + // const handleAutoSubmit = async () => { + // try { + // const values = await autoForm.validateFields(); + // if (imageFileCount === 0) { + // message.error(t('dataAnnotation.create.messages.selectAtLeastOneImageFile')); + // return; + // } + // setSubmitting(true); + // const selectedFiles = Object.values(selectedFilesMap) as any[]; + // const datasetIds = Array.from( + // new Set( + // selectedFiles + // .map((file) => file?.datasetId) + // .filter((id) => id !== undefined && id !== null && id !== ""), + // ), + // ); + // const effectiveDatasetId = values.datasetId || datasetIds[0]; + // const imageExtensions = [".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tiff", ".webp"]; + // const imageFileIds = Object.values(selectedFilesMap) + // .filter((file) => { + // const ext = file.fileName?.toLowerCase().match(/\.[^.]+$/)?.[0] || ""; + // return imageExtensions.includes(ext); + // }) + // .map((file) => file.id); + // const payload = { + // name: values.name, + // datasetId: effectiveDatasetId, + // fileIds: imageFileIds, + // config: { + // modelSize: values.modelSize, + // confThreshold: values.confThreshold, + // targetClasses: selectAllClasses ? [] : values.targetClasses || [], + // }, + // }; + // await createAutoAnnotationTaskUsingPost(payload); + // message.success(t('dataAnnotation.create.messages.autoCreateSuccess')); + // setShouldResetOnOpen(true); + // (onRefresh as any)?.("auto"); + // onClose(); + // } catch (error: any) { + // if (error.errorFields) return; + // console.error("Failed to create auto annotation task:", error); + // message.error(error.message || t('dataAnnotation.create.messages.autoCreateFailed')); + // } finally { + // setSubmitting(false); + // } + // }; const handleClassSelectionChange = (checked: boolean) => { setSelectAllClasses(checked); @@ -408,7 +398,7 @@ export default function CreateAnnotationTask({