feat(annotation): 添加 labelConfig 字段并优化配置解析逻辑

- 在 DatasetMappingResponse 模型中新增 label_config 字段
- 修改前端获取 labelConfig 的逻辑,优先使用任务自身配置
- 移除模板配置的 condition 分支,统一从 XML 解析配置
- 更新后端服务从 configuration JSON 字段中提取 label_config 和 description
- 优化前后端配置解析的一致性处理
This commit is contained in:
2026-01-19 21:39:00 +08:00
parent 85b8513b43
commit f4a86b4af1
3 changed files with 33 additions and 31 deletions

View File

@@ -121,24 +121,13 @@ export default function CreateAnnotationTask({
});
setSelectedDatasetId(taskDetail.datasetId);
// 配置可能在 template.configuration 或 taskDetail.configuration
const configuration = taskDetail.template?.configuration || taskDetail.configuration;
const labelConfig = taskDetail.template?.labelConfig || taskDetail.labelConfig;
// 获取实际的 labelConfig(优先使用任务自身的配置,回退到模板配置)
const labelConfig = taskDetail.labelConfig || taskDetail.template?.labelConfig;
// 设置 XML 配置用于预览
if (labelConfig) {
setCustomXml(labelConfig);
}
// 填充模板配置:优先使用 configuration,否则从 labelConfig 解析
if (configuration && configuration.objects?.length > 0) {
const { objects, labels } = configuration;
manualForm.setFieldsValue({
objects: objects || [],
labels: labels || [],
});
} else if (labelConfig) {
// 从 XML 解析配置
// 始终从 XML 解析配置,确保数据一致性
const parsed = parseXmlToConfig(labelConfig);
manualForm.setFieldsValue({
objects: parsed.objects,