diff --git a/backend/app/api/budget.py b/backend/app/api/budget.py index eb0ac7a9..87ead453 100644 --- a/backend/app/api/budget.py +++ b/backend/app/api/budget.py @@ -400,6 +400,16 @@ def get_deviation_report( item["kpi_name"] = kpi.kpi_name item["dimension"] = kpi.dimension item["unit"] = kpi.unit or "" + # 战略目标 vs 预算差异(2026-08-27: 战略=愿景/预算=计划, 允许不同但差异可见可解释) + target = kpi.target_monthly or kpi.target_value + item["strategic_target"] = target + if item.get("budget_value") is not None and target: + gap = round((item["budget_value"] - target) / target * 100, 1) + item["target_gap_pct"] = gap + item["target_gap_level"] = "high" if abs(gap) > 20 else ("medium" if abs(gap) > 10 else "ok") + else: + item["target_gap_pct"] = None + item["target_gap_level"] = "none" items.append(item) summary["total_kpis"] += 1 diff --git a/frontend/src/views/BudgetManagement.vue b/frontend/src/views/BudgetManagement.vue index 0a9ba65a..8b450554 100644 --- a/frontend/src/views/BudgetManagement.vue +++ b/frontend/src/views/BudgetManagement.vue @@ -133,6 +133,7 @@ +