HEL-342: 管理总览 KPI 绑定真实 dashboard 接口

去掉写死的演示金额与账期进度,改由 /api/admin/dashboard 的 totals 与 period_progress 填充;无数据走空态。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总工
2026-09-01 19:32:59 +08:00
co-authored by Cursor multica-agent
parent b905cba52c
commit b2bcd47e62
12 changed files with 285 additions and 34 deletions
+3 -3
View File
@@ -37,8 +37,8 @@ class RemindersPageSourceContractTests(unittest.TestCase):
self.assertIn('id="reminder-tbody"', html)
self.assertIn('id="reminder-tabs"', html)
self.assertIn('id="reminder-detail-drawer"', html)
self.assertIn("design-system.css?v=11", html)
self.assertIn("app.js?v=16", html)
self.assertIn("design-system.css?v=12", html)
self.assertIn("app.js?v=17", html)
pending = html.index('id="pending-reminders-card"')
history = html.index('id="reminder-history-card"')
send = html.index('id="send-reminder-card"')
@@ -135,7 +135,7 @@ class RemindersPageLayoutSmokeTests(unittest.TestCase):
def test_send_flow_columns_and_no_page_overflow(self) -> None:
html = (WEB / "admin.html").read_text(encoding="utf-8")
self.assertIn("app.js?v=16", html)
self.assertIn("app.js?v=17", html)
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()