From 4ef50d083e11abeeec917d6bb0563c440ef9e999 Mon Sep 17 00:00:00 2001 From: Hermes CI Fix Date: Mon, 20 Jul 2026 15:20:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=88=98=E7=95=A5=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E6=A8=A1=E6=9D=BFKPI=E5=AD=97=E6=AE=B5=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=88=B0map=5Fobjectives=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/maps.py | 3 ++- backend/app/models/__init__.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/app/api/maps.py b/backend/app/api/maps.py index 32fbdc49..1ee4f19c 100644 --- a/backend/app/api/maps.py +++ b/backend/app/api/maps.py @@ -285,6 +285,7 @@ def _sync_map_objectives(m, db): name=obj.get("name", ""), description=obj.get("description", ""), icon=obj.get("icon", "target"), + kpis=obj.get("kpis", []), sort_order=i, ) db.add(mo) @@ -307,7 +308,7 @@ 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"} for o in grouped[key]] + dim["objectives"] = [{"name": o.name, "description": o.description or "", "icon": o.icon or "target", "kpis": o.kpis or []} for o in grouped[key]] m.dimensions = dims diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index 4058f721..5bdbaf61 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -223,6 +223,7 @@ class MapObjective(Base): name = Column(String(200), nullable=False, comment="目标名称") description = Column(Text, nullable=True, comment="描述") icon = Column(String(50), default="target", comment="图标标识") + kpis = Column(JSON, nullable=True, comment="关联KPI编码数组") sort_order = Column(Integer, default=0, comment="排序") created_at = Column(DateTime, server_default=func.now()) updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())