From e489a0023a190b6ef1270d488916b07ea1dc7591 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Tue, 27 Jan 2026 00:07:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(annotation):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=BB=98=E8=AE=A4=E9=80=89=E6=8B=A9=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 resolveTemplateTimestamp 函数解析模板时间戳 - 将默认模板选择逻辑从查找内置模板改为选择最新更新的模板 - 使用 reduce 方法实现按时间戳排序的模板选择 - 提高模板选择的准确性和时效性 --- .../src/pages/DataAnnotation/Create/CreateTask.tsx | 14 +++++++++++++- .../components/CreateAnnotationTaskDialog.tsx | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx b/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx index 81b5348..157e7eb 100644 --- a/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx +++ b/frontend/src/pages/DataAnnotation/Create/CreateTask.tsx @@ -34,8 +34,20 @@ const resolveTemplateDataType = (datasetType?: DatasetType) => { return undefined; } }; +const resolveTemplateTimestamp = (template: AnnotationTemplate) => { + const timestamp = template.updatedAt || template.createdAt; + const parsed = Date.parse(timestamp); + return Number.isNaN(parsed) ? 0 : parsed; +}; const resolveDefaultTemplate = (items: AnnotationTemplate[]) => - items.find((template) => template.builtIn) || items[0]; + items.reduce((latest, current) => { + if (!latest) { + return current; + } + return resolveTemplateTimestamp(current) > resolveTemplateTimestamp(latest) + ? current + : latest; + }, undefined); export default function AnnotationTaskCreate() { const navigate = useNavigate(); diff --git a/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx b/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx index d993971..032e596 100644 --- a/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx +++ b/frontend/src/pages/DataAnnotation/Create/components/CreateAnnotationTaskDialog.tsx @@ -71,8 +71,20 @@ const resolveTemplateDataType = (datasetType?: DatasetType) => { return undefined; } }; +const resolveTemplateTimestamp = (template: AnnotationTemplate) => { + const timestamp = template.updatedAt || template.createdAt; + const parsed = Date.parse(timestamp); + return Number.isNaN(parsed) ? 0 : parsed; +}; const resolveDefaultTemplate = (items: AnnotationTemplate[]) => - items.find((template) => template.builtIn) || items[0]; + items.reduce((latest, current) => { + if (!latest) { + return current; + } + return resolveTemplateTimestamp(current) > resolveTemplateTimestamp(latest) + ? current + : latest; + }, undefined); export default function CreateAnnotationTask({ open,