From 84749a35ca5903533ea1ba8ad521318bb77a5200 Mon Sep 17 00:00:00 2001 From: Hermes CI Fix Date: Sun, 26 Jul 2026 17:07:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=5Fmerge=5Fmap=5Fobjectives=E4=BF=9D?= =?UTF-8?q?=E7=95=99O+KR=E9=A2=9D=E5=A4=96=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/maps.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/app/api/maps.py b/backend/app/api/maps.py index 1ee4f19c..2f62d784 100644 --- a/backend/app/api/maps.py +++ b/backend/app/api/maps.py @@ -308,7 +308,18 @@ def _merge_map_objectives(m, db): for dim in dims: key = dim.get("key", "") if key in grouped: - dim["objectives"] = [{"name": o.name, "description": o.description or "", "icon": o.icon or "target", "kpis": o.kpis or []} for o in grouped[key]] + merged = [] + for i, o in enumerate(grouped[key]): + # 保留原有JSON中的额外字段(targetValue/krs等) + existing = dim["objectives"][i] if i < len(dim["objectives"]) else {} + merged.append({ + "name": o.name, + "description": o.description or existing.get("description", ""), + "icon": o.icon or existing.get("icon", "target"), + "kpis": o.kpis or existing.get("kpis", []), + **{k: existing[k] for k in existing if k not in ("name", "description", "icon", "kpis")}, + }) + dim["objectives"] = merged m.dimensions = dims