diff --git a/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx b/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx index 1aedcc5..bef90ec 100644 --- a/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx +++ b/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx @@ -1,6 +1,6 @@ import { queryDatasetsUsingGet } from "@/pages/DataManagement/dataset.api"; import { mapDataset } from "@/pages/DataManagement/dataset.const"; -import { Button, Form, Input, Modal, Select, message, Tabs, Radio, Typography } from "antd"; +import { Button, Form, Input, Modal, Select, message, Tabs, Radio } from "antd"; import TextArea from "antd/es/input/TextArea"; import { useEffect, useState } from "react"; import { @@ -33,6 +33,8 @@ export default function CreateAnnotationTask({ const [previewTaskData, setPreviewTaskData] = useState>({}); const [configMode, setConfigMode] = useState<"template" | "custom">("template"); const [templateEditTab, setTemplateEditTab] = useState<"visual" | "xml">("visual"); + // 是否已选择模板(用于启用受限编辑模式) + const [hasSelectedTemplate, setHasSelectedTemplate] = useState(false); useEffect(() => { if (!open) return; @@ -76,6 +78,7 @@ export default function CreateAnnotationTask({ setPreviewTaskData({}); setConfigMode("template"); setTemplateEditTab("visual"); + setHasSelectedTemplate(false); } }, [open, manualForm]); @@ -179,6 +182,15 @@ export default function CreateAnnotationTask({ // 当选择模板时,加载模板配置到表单 const handleTemplateSelect = (value: string, option: any) => { + // 处理清除选择的情况 + if (!value) { + setHasSelectedTemplate(false); + setCustomXml(""); + return; + } + + setHasSelectedTemplate(true); + if (option && option.config) { setCustomXml(option.config); } @@ -297,7 +309,7 @@ export default function CreateAnnotationTask({