From b01a108874786566626c3b58e23e17e69702e321 Mon Sep 17 00:00:00 2001 From: Hermes CI Fix Date: Mon, 7 Sep 2026 11:01:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(budget):=20=E7=89=88=E6=9C=AC=E7=AE=A1?= =?UTF-8?q?=E7=90=86UI=E5=AD=97=E6=AE=B5/=E7=8A=B6=E6=80=81=E6=9C=BA?= =?UTF-8?q?=E5=AF=B9=E9=BD=90=20active=E2=86=92draft=E6=98=A0=E5=B0=84+pla?= =?UTF-8?q?n=5Fcount/last=5Fupdated=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - list_budget_versions 输出 approval_status(active映射draft)+plan_count+last_updated - 保留 status/kpi_count/updated_at 原字段兼容(下拉'当前'标记/测试契约) - 前端提交审批按钮兜底 active(双端保险) - 修复: 版本行仅复选框无按钮/状态恒草稿/条目数空白/最后更新空白 --- backend/app/api/budget.py | 13 +++++++++++-- frontend/src/views/BudgetManagement.vue | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/app/api/budget.py b/backend/app/api/budget.py index 1077eef1..087aebb8 100644 --- a/backend/app/api/budget.py +++ b/backend/app/api/budget.py @@ -1435,14 +1435,23 @@ def list_budget_versions( result = [] for key, v in version_map.items(): + raw_status = v["status"] + # 状态机对齐(2026-09-07 UI修复):DB 默认态是 active(当前在用/草稿态), + # 前端审批按钮语义用 draft=可提交审批/submitted=待审批/approved=已批准只读/rejected=已驳回 + # → approval_status 把 active 映射为 draft,同时保留 status 原字段兼容其他引用(下拉"当前"标记等) + approval_status = "draft" if raw_status == "active" else raw_status + updated_str = v["updated_at"].strftime("%Y-%m-%d %H:%M") if v["updated_at"] else "" result.append({ "version": v["version"], - "status": v["status"], + "status": raw_status, + "approval_status": approval_status, "kpi_count": v["kpi_count"], + "plan_count": v["kpi_count"], # 前端列 prop 别名(BudgetManagement.vue versions tab) "total_budget": round(v["total_budget"], 2), "period_count": len(v["periods"]), "year": year, - "updated_at": v["updated_at"].strftime("%Y-%m-%d %H:%M") if v["updated_at"] else "", + "updated_at": updated_str, + "last_updated": updated_str, # 前端列 prop 别名 }) result.sort(key=lambda x: x["version"], reverse=True) return result diff --git a/frontend/src/views/BudgetManagement.vue b/frontend/src/views/BudgetManagement.vue index 23291093..3d41a8f2 100644 --- a/frontend/src/views/BudgetManagement.vue +++ b/frontend/src/views/BudgetManagement.vue @@ -166,7 +166,7 @@