# S3: 看板页面 — Dashboard HTML Frontend
## 目标
创建 `/dashboard` 页面,fetch `/api/dashboard` 后用卡片式布局展示所有指标数据。
## 涉及文件
- `templates/dashboard.html` (新建)
- `app.py` (新增路由 GET /dashboard)
- `test_dashboard_page.py` (新建集成测试)
## 数据流
浏览器 → GET /dashboard (Flask) → render dashboard.html → JS fetch /api/dashboard → 渲染卡片
## 页面布局
1. 顶部:标题「📊 数据看板」+ 刷新按钮 + 最后更新时间
2. 卡片网格 (CSS Grid, auto-fill, minmax 280px)
- 聊天数据 (蓝色) — groups/messages/speakers/shares
- 文章数据 (绿色) — total/summarized/unsummarized/learned/unlearned
- 学习审核 (紫色) — pending/approved/applied/rejected
- 日报数据 (橙色) — daily/summaries/learn_records/last_generated
- 任务监控 (灰色) — total/running/completed/failed/success_rate
- 自动回复 (青色) — whitelist/pending/sent
- AI 聊天 (粉色) — conversations/messages
3. 自动刷新 60 秒
4. 移动端单列
## 验证命令
```bash
curl -s http://127.0.0.1:5000/dashboard | grep "数据看板"
curl -s http://127.0.0.1:5000/dashboard | python3 -c "
import sys; html=sys.stdin.read()
assert 'style=\\\\\\\\\\\\'' not in html, 'STYLE BACKSLASH BUG'
assert 'fetch' in html, 'NO FETCH'
assert 'api/dashboard' in html, 'NO API CALL'
print('PASS')
"
pytest test_dashboard_page.py -v
python3 test_smoke.py
```