From 6e082558201005ad25f24ef31965ba953a30ece3 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 18 Jan 2026 21:08:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(DataAnnotation):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE=E8=A1=A8=E5=8D=95=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现了数据对象配置区域,支持添加、删除数据对象字段 - 添加了标签控件配置区域,支持多种控件类型的动态配置 - 集成了TagSelector组件用于对象类型和控件类型的选择 - 实现了表单验证规则,包括必填项和值格式校验 - 添加了动态选项渲染功能,根据控件类型显示相应配置项 - 实现了表单联动逻辑,支持对象选择和控件配置的关联 - 添加了用户友好的界面布局和交互提示功能 --- .../DataAnnotation/Create/CreateTask.tsx | 317 +++++++++++------- .../DataAnnotation/Template/TemplateForm.tsx | 228 +------------ .../components/TemplateConfigurationForm.tsx | 294 ++++++++++++++++ 3 files changed, 486 insertions(+), 353 deletions(-) create mode 100644 frontend/src/pages/DataAnnotation/components/TemplateConfigurationForm.tsx diff --git a/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx b/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx index 8a0f8da..1d4f600 100644 --- a/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx +++ b/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx @@ -1,6 +1,6 @@ import type React from "react"; import { useEffect, useState } from "react"; -import { Card, Button, Input, Select, Divider, Form, message } from "antd"; +import { Card, Button, Input, Select, Divider, Form, message, Radio } from "antd"; import TextArea from "antd/es/input/TextArea"; import { DatabaseOutlined, @@ -9,6 +9,7 @@ import { } from "@ant-design/icons"; import { mockTemplates } from "@/mock/annotation"; import CustomTemplateDialog from "./components/CustomTemplateDialog"; +import TemplateConfigurationForm from "../../components/TemplateConfigurationForm"; import { Link, useNavigate } from "react-router"; import { ArrowLeft } from "lucide-react"; import { queryDatasetsUsingGet } from "../../DataManagement/dataset.api"; @@ -36,6 +37,7 @@ export default function AnnotationTaskCreate() { const [showCustomTemplateDialog, setShowCustomTemplateDialog] = useState(false); const [selectedCategory, setSelectedCategory] = useState("Computer Vision"); + const [configMode, setConfigMode] = useState<"template" | "custom">("template"); const [searchQuery, setSearchQuery] = useState(""); const [datasetFilter, setDatasetFilter] = useState("all"); const [selectedTemplate, setSelectedTemplate] = useState