Files
AI-Health/健康管家-页面设计文档.md
MingNian 66168e3261 docs: 更新页面设计文档+需求文档至当前实现状态
- 页面设计文档:新增色彩系统/智能体配色/圆角规范/已实现15个页面详情/交互特性/后端接口表
- 需求文档:新增已实现/待实现功能清单
2026-06-11 11:29:09 +08:00

1125 lines
40 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 健康管家 — 页面设计文档
> 本文档逐一描述每个页面的布局、组件、交互、状态。配合需求规格文档 V2 和技术设计文档 V2 使用。
---
你是一名顶级移动端产品设计师和Flutter UI工程师。
不要设计功能。
不要思考业务。
只关注视觉表现。
==================================================
产品定位:
AI健康陪伴助手
不是:
医院系统
不是:
企业后台
不是:
健康管理工具
==================================================
视觉参考:
支付宝蚂蚁阿福
Apple Health
Headspace
Calm
==================================================
用户第一眼看到页面时必须觉得:
温暖
轻松
有陪伴感
有生命力
高级
可信赖
==================================================
不要出现:
后台管理系统感
表格感
数据中心感
医院感
安卓原生感
Material3默认感
==================================================
视觉关键词:
Soft
Friendly
Companion
Minimal
Premium
AI-first
==================================================
设计原则:
聊天优先于表单
卡片优先于列表
陪伴优先于工具
情感优先于数据
==================================================
页面整体留白必须充足。
不要塞满内容。
每个页面只保留最重要的信息。
==================================================
所有页面必须看起来像:
一个会关心用户的AI
而不是一个记录数据的软件。
==================================================
视觉密度:
低密度
大量留白
==================================================
圆角:
非常圆润
卡片24+
按钮20+
胶囊999
==================================================
颜色:
以浅紫色为核心
大面积白色
少量渐变
少量高饱和色
==================================================
阴影:
非常轻
几乎感受不到
==================================================
背景:
不是纯白
使用浅灰白
局部加入柔和渐变
==================================================
图标:
圆润
可爱
避免锐利线条
==================================================
所有页面必须符合:
Dribbble作品级别
Behance展示级别
而不是业务系统页面。
==================================================
最终目标:
用户第一眼认为:
“这是一个AI健康管家。”
而不是:
“这是一个健康管理APP。”
请把整个产品设计成:
支付宝阿福 × Apple Health × AI Companion。
用户打开App时
感觉自己是在和一个关心自己的AI交流
而不是在使用一个健康记录工具。
## P1. 登录页 `/login`
### 功能
手机号 + 验证码登录(登录即注册)
### 布局
```
┌──────────────────────────────────┐
│ │
│ 🏥 健康管家 │ Logo + App 名称
│ │
│ ┌──────────────────────────────┐│
│ │ +86 │ 输入手机号... ││ 手机号输入框
│ └──────────────────────────────┘│
│ │
│ ┌────────────────┐ ┌──────────┐│
│ │ 输入验证码... │ │ 获取验证码 ││ 验证码输入框 + 发送按钮
│ └────────────────┘ └──────────┘│
│ │
│ ┌──────────────────────────────┐│
│ │ 登 录 ││ 主按钮(紫底白字)
│ └──────────────────────────────┘│
│ │
│ ☐ 已阅读并同意《服务协议》《隐私政策》│ 协议勾选
│ │
└──────────────────────────────────┘
```
### 交互
- 输入手机号 → [获取验证码] 按钮亮起
- 点击 [获取验证码] → 倒计时 60 秒 → 按钮变灰
- 开发阶段:验证码输入任意 6 位数字即可
- 输入 6 位验证码 + 勾选协议 → [登录] 亮起
- 登录成功 → 跳转 `/home`
- 登录失败 → 红色提示文字
### 状态
| 状态 | 显示 |
|------|------|
| 正常 | 如上 |
| 手机号格式错误 | "请输入正确的手机号" |
| 验证码错误 | "验证码错误,请重新输入" |
| 网络错误 | "网络连接失败,请检查网络" |
| 加载中 | [登录] 按钮显示 loading 动画 |
---
## P2. 首页 `/home`
### 功能
App 主界面包含对话流、任务卡片区、Agent 面板、输入框、侧滑抽屉
### 布局
```
┌──────────────────────────────────┐
│ ☰ ←│ 顶部:左侧菜单按钮 → 抽屉
│ │
│ ┌ 任务卡片区(可折叠)───────────┐│
│ │ 💊 计划8:00吃阿司匹林 [✓] ││ 用药提醒卡片
│ │ 🏃 今日待运动散步30分钟 [✓] ││ 运动打卡卡片
│ │ 🩺 今日待测量:血压 ││ 指标测量提醒
│ └──────────────────────────────┘│
│ │
│ ┌ 对话流 ───────────────────────┐│
│ │ ││
│ │ AI: 早上好昨天心率105... ││ AI 气泡(白底紫左边框)
│ │ ││
│ │ 用户: 血压135/85 ││ 用户气泡(紫底白字右对齐)
│ │ ││
│ │ AI: 收到!已记录血压 135/85 ✅││
│ │ ││
│ └────────────────────────────────┘│
│ │
│ ┌ Agent 面板(点击胶囊后出现)───┐│ ← 仅当有激活的 Agent 时显示
│ │ [手动录入血压] [手动录入血糖] ││
│ │ ... ││
│ └────────────────────────────────┘│
│ │
├──────────────────────────────────┤
│ [胶囊1][胶囊2][胶囊3]...[胶囊6] │ 智能体胶囊栏(横向滑动)
├──────────────────────────────────┤
│ [📎] │ 输入你想说的... │ [📤] │ 输入框(系统键盘语音)
└──────────────────────────────────┘
```
### 组件树
```
HomePage (Scaffold)
├── Drawer (HealthDrawer)
├── Body: Column
│ ├── TaskCardArea (可折叠)
│ │ ├── MedicationCard
│ │ ├── ExerciseCard
│ │ └── MeasurementCard
│ ├── Expanded: ChatMessagesView (ListView.builder)
│ │ ├── ChatBubble (AI)
│ │ ├── ChatBubble (User)
│ │ ├── DataConfirmCard
│ │ ├── DietResultCard
│ │ ├── MedicationConfirmCard
│ │ ├── ReportCard
│ │ └── QuickOptionsRow
│ └── AgentPanel (AnimatedContainer, 条件显示)
├── Bottom: Column
│ ├── AgentBar (SingleChildScrollView horizontal)
│ │ └── CapsuleButton × 6
│ └── InputBar
│ ├── AttachButton (📎)
│ ├── TextField
│ └── SendButton (📤)
```
### 交互
- 输入消息 → [📤] 发送 → 消息上屏 → SSE 流式返回 → AI 逐字显示
- 点击胶囊 → 胶囊高亮 → AgentPanel 出现 → 对话切换到该 Agent
- 再次点击同一胶囊 → 胶囊恢复 → AgentPanel 消失 → 对话回到默认
- 向上滑动对话流 → 任务卡片区自动折叠
- 任务卡片 ✓ 点击 → 快捷打卡
- 左上角菜单 → 打开侧滑抽屉
### 状态
| 状态 | 显示 |
|------|------|
| 首次打开(零数据) | AI 问候语 + 引导建档 |
| 正常有数据 | AI 问候(带异常提醒) + 任务卡片 |
| SSE 流式中 | AI 气泡逐字增长 + Tool Calling 中间提示 |
| 网络错误 | 全屏"无网络连接" |
| 无任务卡片 | 卡片区不显示,对话流占满 |
---
## P3. 侧滑抽屉HealthDrawer
### 功能
不跳转页面,从左侧滑出的抽屉面板
### 布局
```
┌──────────────┬──────────────────┐
│ │ │
│ 👤 张三 │ 点击 → P12 │
│ 冠心病支架术后│ 个人中心 │
│ │ │
│ ⚙️ 设置 │ 点击 → P17 │
│ │ │
│ ❤️ 血压 128/82 │ 最新测量值
│ 💓 心率 72 │ 未测显示 "--"
│ 💉 血糖 5.2 │
│ 🫁 血氧 98% │
│ │ │
│ 📋 历史对话 │
│ 05-31 血压咨询 + 胸闷 │ 日期 + 摘要
│ 05-30 饮食分析 │
│ 05-28 用药调整 │
│ ... │
│ │ │
│ [退出登录] │
└──────────────┴──────────────────┘
```
### 交互
- 点击头像 → 跳转 P12 个人中心
- 点击设置 → 跳转 P17 设置
- 点击最新指标 → 跳转 P4 趋势图表
- 点击历史对话 → 加载该对话到首页对话流
- 退出登录 → 确认弹窗 → 清除 token → 跳转 P1
---
## P4. 趋势图表页 `/trend/:type`
### 功能
查看某个健康指标的历史趋势曲线
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 血压趋势 │ 顶栏
├──────────────────────────────────┤
│ [7天] [30天] [90天] │ 时间切换
├──────────────────────────────────┤
│ │
│ 📈 折线图 │ 血压:双轴(收缩压+舒张压)
│ │ 其他:单轴
│ 支持双指缩放、滑动 │
│ │
├──────────────────────────────────┤
│ 最近 7 天 │
│ 05/31 128/82 ✅ │ 数据列表
│ 05/30 135/85 ⚠️ 偏高 │
│ 05/29 -- 未测量 │
│ ... │
└──────────────────────────────────┘
```
### 状态
| 状态 | 显示 |
|------|------|
| 有数据 | 折线图 + 数据列表 |
| 数据不足(<2条 | "暂无足够数据生成趋势图" |
| 从未测量 | "--" + 引导去记数据 |
---
## P5. 健康日历页 `/calendar`
### 功能
月视图日历标记用药/运动/复查
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 2026年6月 │ 顶栏 + 月份切换
├──────────────────────────────────┤
│ 一 二 三 四 五 六 日 │
│ 1 2 3 4 │
│ 5 6 7 8 9 10 11 │
│ ... │
│ 💊 💊 📋 │ 用药=紫点 运动=绿点 复查=黄标记
│ │
├──────────────────────────────────┤
│ 6月3日 │ 当日摘要
│ 💊 阿司匹林 ✓ │
│ 🏃 散步30分钟 ✓ │
│ 🩺 血压 128/82 │
└──────────────────────────────────┘
```
---
## P6. 用药列表页 `/medications`
### 功能
查看当前用药计划
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 我的用药 │
├──────────────────────────────────┤
│ 💊 阿司匹林 100mg │ 每条药品卡片
│ 每天 08:00 早饭后 │ 点击 → P7 编辑
│ 2026/05/01 - 长期 │
│ 来源:处方 │
│ [✓ 今日已打卡] │
├──────────────────────────────────┤
│ 💊 阿托伐他汀 20mg │
│ 每天 20:00 晚饭后 │
│ 来源AI 录入 │
│ [○ 待打卡] │
├──────────────────────────────────┤
│ [+ 添加药品] │ 跳转 P7 新建
└──────────────────────────────────┘
```
### 空状态
```
┌──────────────────────────────────┐
│ 💊 │
│ 暂无用药计划 │
│ 可通过AI对话或手动添加 │
│ [去药管家] │
└──────────────────────────────────┘
```
---
## P7. 编辑用药页 `/medications/:id/edit`
### 功能
新增/修改用药计划
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 添加药品 / 编辑药品 │
├──────────────────────────────────┤
│ 药品名称 [_______________] │
│ 剂量 [______] mg/片/粒 │
│ 服药时间 [08:00] [20:00] │ 支持多个时间
│ [+ 添加时间] │
│ 起始日期 [2026/06/01] │
│ 结束日期 [长期] │
│ │
│ [删除该药品] [保存] │
└──────────────────────────────────┘
```
---
## P8. 报告列表页 `/reports`
### 功能
查看已上传的报告
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 我的报告 │
├──────────────────────────────────┤
│ 📋 血常规 2026/05/28 │
│ 状态:医生已确认 ✅ │
│ │
│ 📋 心电图 2026/05/15 │
│ 状态:待医生确认 ⏳ │
│ │
│ 📋 出院小结 2026/05/01 │
│ 状态:医生已确认 ✅ │
└──────────────────────────────────┘
```
### 空状态
```
┌──────────────────────────────────┐
│ 📋 │
│ 暂无报告 │
│ 可到「看报告」上传 │
└──────────────────────────────────┘
```
---
## P9. 报告详情页 `/reports/:id`
### 功能
查看报告 AI 解读 + 原始图片
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 报告详情 │
├──────────────────────────────────┤
│ 报告类型:血常规 │
│ 上传时间2026/05/28 14:30 │
│ 状态:⏳ 待医生确认 │
├──────────────────────────────────┤
│ AI 预解读结果 │
│ │
│ 指标列表: │
│ 白细胞 8.5×10⁹/L 正常 ✅ │
│ 红细胞 4.2×10¹²/L 正常 ✅ │
│ 血红蛋白 105 g/L 偏低 ⚠️ │
│ ... │
│ │
│ AI 分析:血红蛋白略偏低... │
│ ⚠️ AI 预解读,待医生确认 │
├──────────────────────────────────┤
│ [查看原始图片] │
└──────────────────────────────────┘
```
---
## P10. 医生列表页 `/doctors`
### 功能
选择要咨询的医生
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 选择医生 │
│ 本月剩余 3 次 │
├──────────────────────────────────┤
│ 👨‍⚕️ 王建国 主任医师 │ 医生卡片
│ 心血管内科 │
│ 擅长冠心病术后管理 │
│ [咨询王主任] │
├──────────────────────────────────┤
│ 👩‍⚕️ 李芳 副主任医师 │
│ 营养科 │
│ 擅长术后营养指导 │
│ [咨询李主任] │
└──────────────────────────────────┘
```
---
## P11. 问诊对话页 `/consultation/:id`
### 功能
患者与医生的文字聊天 AI 分身对话
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 王建国 主任 │
│ 以上为AI分身回复 │ 医生未亲自回复时的提示
├──────────────────────────────────┤
│ │
│ AI分身: 根据您的描述... │ AI 分身气泡
│ 以上为AI分析具体请咨询王主任 │
│ │
│ 患者: 我最近两天胸口有点闷 │
│ │
│ 医生: 持续多久了?做过什么检查? │ 医生亲自回复
│ │
├──────────────────────────────────┤
│ │ 输入消息... │ [📤] │
└──────────────────────────────────┘
```
### 状态
| 状态 | 显示 |
|------|------|
| AI 分身对话中 | 回复末尾标注 AI 免责声明 |
| 医生已读未回 | "医生已读" |
| 医生已回复 | 正常消息气泡 |
| 问诊已结束 | 输入框锁定显示"本次问诊已结束" |
| 问诊配额用完 | 显示"本月问诊次数已用完" |
---
## P12. 个人中心页 `/profile`
### 功能
用户信息 + 功能菜单
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 个人中心 │
├──────────────────────────────────┤
│ 👤 张三 │
│ 冠心病支架术后 12周 │
│ 138****1234 │
│ [编辑] │ 跳转 P13
├──────────────────────────────────┤
│ 📋 健康档案 > │ 跳转 P14
│ 📱 设备管理 > │ 跳转占位页
│ 🔔 通知偏好 > │ 跳转 P18
│ ⚙️ 设置 > │ 跳转 P17
│ ❓ 关于 > │ 跳转 P19
│ 🚪 退出登录 > │ 确认弹窗
└──────────────────────────────────┘
```
---
## P13. 编辑资料页 `/profile/edit`
### 功能
修改个人基本信息
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 编辑资料 │
├──────────────────────────────────┤
│ 头像 [👤 点击更换] │
│ 姓名 [张三____________] │
│ 性别 [男] [女] │
│ 出生日期 [1970-03-15] │
│ 手机号 138****1234不可改
│ │
│ [保存] │
└──────────────────────────────────┘
```
---
## P14. 健康档案页 `/health-archive`
### 功能
查看和编辑完整健康信息
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 健康档案 [编辑] │
├──────────────────────────────────┤
│ 📋 基本信息 │
│ 姓名:张三 性别:男 │
│ 出生1970-03-15 │
│ 身高170cm 体重72kg │
├──────────────────────────────────┤
│ 🩺 诊断信息 │
│ 主要诊断:冠心病 │
│ 手术类型PCI支架植入术 │
│ 手术日期2026-03-15 │
├──────────────────────────────────┤
│ 🏥 病史与限制 │
│ 过敏史:无 │
│ 饮食限制:低盐 低脂 │
│ 慢性病史:高血压 高血脂 │
│ 家族病史:父亲冠心病 │
├──────────────────────────────────┤
│ 📊 健康数据(本周平均) │
│ 血压 130/82 心率 74 │
│ [查看趋势] │
├──────────────────────────────────┤
│ 📋 检查报告 3份 [查看] │
│ 💊 当前用药 2种 [查看] │
│ 🎯 运动计划 进行中 [查看] │
└──────────────────────────────────┘
```
### 交互
- 点击 [编辑] 各字段变为可编辑状态
- 点击各功能入口 跳转对应页面
- AI 对话中了解到的信息自动填充到对应字段
---
## P15. 饮食记录列表页 `/diet-records`
### 功能
按日期查看历史饮食记录
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 饮食记录 │
├──────────────────────────────────┤
│ 2026-06-01 │ 按日期分组
│ 🍽️ 午餐 644千卡 ★★★☆☆ │
│ 米饭 1碗 | 红烧肉 5块 │
│ │
│ 2026-05-31 │
│ 🍽️ 晚餐 520千卡 ★★★★☆ │
│ 面条 1碗 | 青菜 1份 │
│ 🍽️ 午餐 380千卡 ★★★★☆ │
│ 三明治 1个 │
└──────────────────────────────────┘
```
### 空状态
```
┌──────────────────────────────────┐
│ 🍽️ │
│ 暂无饮食记录 │
│ 可通过「拍饮食」或对话录入 │
└──────────────────────────────────┘
```
---
## P16. 运动计划页 `/exercise-plan`
### 功能
查看和编辑本周运动计划
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 运动计划 │
│ 2026年 第23周 │
├──────────────────────────────────┤
│ 周一 散步 30分钟 ✅ 已完成 │ 每日条目
│ 周二 慢跑 20分钟 ○ 待完成 │
│ 周三 游泳 30分钟 ○ 待完成 │
│ 周四 休息日 │
│ 周五 散步 30分钟 ○ 待完成 │
│ 周六 休息日 │
│ 周日 散步 30分钟 ○ 待完成 │
├──────────────────────────────────┤
│ [修改计划] [本周已完成 1/5] │
└──────────────────────────────────┘
```
### 空状态
```
┌──────────────────────────────────┐
│ 🏃 │
│ 暂无运动计划 │
│ 可通过「运动计划」或对话创建 │
│ [创建计划] │
└──────────────────────────────────┘
```
---
## P17. 设置页 `/settings`
### 功能
App 设置
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 设置 │
├──────────────────────────────────┤
│ 隐私保护中心 > │ P19 文本页
│ 通知偏好 > │ P18
│ 字体大小 ───●───── │ 滑动条 0.8x-1.6x
│ 协议与公告 > │ P19 文本页
│ 关于 > │ P19 文本页
│ │
│ [退出登录] │ 确认弹窗
│ [注销账号] │ 二次确认 + 清数据
└──────────────────────────────────┘
```
---
## P18. 通知偏好页 `/settings/notifications`
### 功能
各类型推送独立开关
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 通知偏好 │
├──────────────────────────────────┤
│ 💊 用药提醒 [🔘] │ 开关
│ 📋 复查提醒 [🔘] │
│ 💬 医生回复 [🔘] │
│ ⚠️ 异常警告 [🔘] │
└──────────────────────────────────┘
```
---
## P19. 静态文本页 `/page/:type`
### 功能
展示隐私政策 / 服务协议 / 关于
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 隐私政策 │ 标题随 type 变化
├──────────────────────────────────┤
│ │
│ 纯文本内容(后期填充) │
│ │
└──────────────────────────────────┘
```
---
## P20. 复查列表页 `/followups`
### 功能
查看复查/随访安排
### 布局
```
┌──────────────────────────────────┐
│ ← 返回 复查随访 │
├──────────────────────────────────┤
│ 即将到来 │
│ 📋 心内科复查 06/05 15:00 │
│ 地点:市一医院 3楼 │
│ 提醒:后天 │
├──────────────────────────────────┤
│ 已完成 │
│ ✅ 术后3周复查 04/05 │
│ ✅ 术后6周复查 04/26 │
└──────────────────────────────────┘
```
### 空状态
```
┌──────────────────────────────────┐
│ 📋 │
│ 暂无复查安排 │
│ 医生端创建后自动同步 │
└──────────────────────────────────┘
```
---
## 页面汇总
| # | 路由 | 页面 | 类型 |
|---|------|------|------|
| 1 | `/login` | 登录页 | 独立页面 |
| 2 | `/home` | 首页含抽屉+面板+胶囊栏 | 独立页面 |
| 3 | | 侧滑抽屉 | 组件非页面 |
| 4 | `/trend/:type` | 趋势图表 | 独立页面 |
| 5 | `/calendar` | 健康日历 | 独立页面 |
| 6 | `/medications` | 用药列表 | 独立页面 |
| 7 | `/medications/:id/edit` | 编辑用药 | 独立页面 |
| 8 | `/reports` | 报告列表 | 独立页面 |
| 9 | `/reports/:id` | 报告详情 | 独立页面 |
| 10 | `/doctors` | 医生列表 | 独立页面 |
| 11 | `/consultation/:id` | 问诊对话 | 独立页面 |
| 12 | `/profile` | 个人中心 | 独立页面 |
| 13 | `/profile/edit` | 编辑资料 | 独立页面 |
| 14 | `/health-archive` | 健康档案 | 独立页面 |
| 15 | `/diet-records` | 饮食记录列表 | 独立页面 |
| 16 | `/exercise-plan` | 运动计划 | 独立页面 |
| 17 | `/settings` | 设置 | 独立页面 |
| 18 | `/settings/notifications` | 通知偏好 | 独立页面 |
| 19 | `/page/:type` | 静态文本页 | 独立页面 |
| 20 | `/followups` | 复查列表 | 独立页面 |
**总计20 个独立页面 + 1 个侧滑抽屉组件 + 6 个 Agent 面板组件**
---
## Agent 面板设计(首页内嵌,非独立页面)
### 默认对话(无面板)
只有对话流无额外面板
### 记数据面板
```
┌──────────────────────────────────┐
│ 📊 记数据 │
│ [手动录入血压] [手动录入血糖] │ 快捷按钮
│ [手动录入心率] [手动录入血氧] │
│ [手动录入体重] │
│ │
│ 或直接对我说: │
│ "血压 135/85" │
└──────────────────────────────────┘
```
### 拍饮食面板
```
┌──────────────────────────────────┐
│ 📸 拍饮食 │
│ [拍照] [上传照片](支持多张) │
│ │
│ 或直接对我说: │
│ "中午吃了牛肉面" │
└──────────────────────────────────┘
```
### 药管家面板
```
┌──────────────────────────────────┐
│ 💊 药管家 │
│ [用药管理] [用药提醒] │
│ │
│ 或直接对我说: │
│ "医生让我吃阿托伐他汀 20mg" │
└──────────────────────────────────┘
```
### AI 问诊面板
```
┌──────────────────────────────────┐
│ 🩺 AI 问诊 │
│ [找医生] │
│ │
│ 或直接对我说你的症状 │
└──────────────────────────────────┘
```
### 看报告(无面板)
点击直接调起相机/文件选择器不弹出面板
### 运动计划面板
```
┌──────────────────────────────────┐
│ 🏃 运动计划 │
│ [查看本周计划] [创建新计划] │
│ │
│ 或直接对我说: │
│ "我想每周一三五散步 30 分钟" │
└──────────────────────────────────┘
```
---
# 当前实现状态2026-06-11
## 色彩系统
| 用途 | 色值 |
|---|---|
| 主色 | `#8B5CF6` |
| 浅紫 | `#A78BFA` |
| 背景渐变 | `#F0ECFF → #EBF4FF` |
| 卡片白 | `#FFFFFF` |
| 文字主色 | `#1F2937` |
| 文字辅色 | `#6B7280` |
| 文字提示 | `#9CA3AF` |
| 成功绿 | `#10B981` |
| 错误红 | `#EF4444` |
| 警告橙 | `#F59E0B` |
| 蓝色测量/发送按钮 | `#3B82F6` |
**智能体专属渐变色:**
| 智能体 | 主色 | 配色 |
|---|---|---|
| 记数据 | 绿 `#5FB88D` | `#B8E6CF → #5FB88D` |
| 拍饮食 | `#F0A060` | `#FFD8B8 → #F0A060` |
| 药管家 | 青绿 `#68B8AC` | `#B8E0D8 → #68B8AC` |
| 问诊 | `#7B98E0` | `#C5D5F8 → #7B98E0` |
| 报告分析 | `#A898D8` | `#D8D0F0 → #A898D8` |
| 运动 | `#68B4B4` | `#B8E0E0 → #68B4B4` |
**圆角规范:**
- 主卡片 28px子卡片 20px按钮 16-20px胶囊/标签 10-18px
## 已实现页面
### 1. 登录页
- 手机号+验证码登录登录即注册
- 白底+紫蓝渐变外框输入框 focus 内框
- 白底紫字登录按钮
- 开发阶段验证码任意6位
### 2. 首页(对话页)
- 顶部智能体胶囊横排6个白底深色字阴影
- 左上抽屉菜单图标无背景融入顶栏
- 右上消息通知
- 对话流从上到下排列新消息出现在底部
- 底部输入栏+号附件按钮拍照/相册/文件圆角输入框蓝紫渐变发送按钮
- 今日健康卡片在对话顶部分3栏健康指标运动用药健康指标汇总一行异常提醒/正常显示用药显示具体药品名+状态
- 确认卡片从下方滑入+淡入动画(600ms)白色卡片主数据展示区+字段列表+确认按钮
### 3. 欢迎卡片(各智能体)
- 每个智能体独立配色图标渐变+装饰条+底部提示
- 功能特性区有图片显示图片带渐变外框无图片显示图标卡片网格
- 快捷操作按钮横向排列
- 底部提示每个智能体专属引导文案
- 问诊专属医生选择卡片3位医生
### 4. 侧边栏Drawer
- 个人信息+昵称+手机号
- 健康仪表盘5项指标小卡片血压/心率/血糖/血氧/体重
- 功能报告管理/健康日历/饮食记录/复查随访
- VIP服务服务包卡片心血管/心力衰竭两种
- 保险栏待上线显示"即将上线"
- 退出登录按钮
### 5. 饮食分析页
- 暖橙主题配色`#FFFBF7` `#F0A060` 强调
- 图片自适应220px
- 餐次选择emoji+文字横排早餐/午餐/晚餐/加餐
- 识别结果白色卡片橙色装饰条可编辑食物名/份量/热量
- 营养摘要环形进度条+宏量元素条碳水/蛋白/脂肪
- AI 点评淡黄暖底色
- 保存按钮暖橙色
### 6. 用药管理页
- 顶部 TabBar全部/服用中/已停药
- 药品列表白底药丸图标+药品名+剂量+时间
- 右滑删除
- 右下角 FAB 添加药品
- 添加/编辑用药白底选择器服药次数+时间白底紫字保存按钮
### 7. 服药打卡页
- 按药品分组显示
- 打卡按钮对号圆圈形式绿与运动计划一致
- 支持撤回点击已打卡取消
### 8. 运动计划页
- 列表显示运动类型+时长+完成进度
- 打卡按钮对号圆圈绿
- 右滑删除计划
- 右下角 FAB 新建计划
### 9. 报告管理页
- 报告列表白色卡片白底紫色图标
- 标题后端 VLM 自动识别类型抽血化验单/心电图报告等前端 `_catTitle` 映射
- 删除按钮确认弹窗
- 右下角 FAB 上传拍照/相册/PDF
- 后端 DELETE 接口
### 10. 报告解读页AI 智能解读)
- 三栏布局指标分析 综合解读 医生审核意见
- 统一白色卡片+轻阴影
- 指标行名称+参考值+状态图标正常/偏高/偏低
- 医生审核未审核显示"待审核"已审核显示医生留言
- 去掉了五颜六色的背景
### 11. 个人资料页
- 头像+昵称+手机号
- 信息卡片姓名/手机号/健康档案
- 白底图标去紫色背景
- 退出登录按钮红色描边
- 去掉了蓝牙设备/健康档案/设置快捷入口
### 12. 设置页
- 白色圆角卡片样式菜单项16px圆角+轻阴影
- 消息通知/字体大小/清除缓存/关于/隐私协议
- 退出登录红字按钮
### 13. 蓝牙设备页
- 左上返回按钮
- 扫描血压计设备
### 14. 医生对话页
- 输入栏与主页面一致圆角容器+蓝紫色发送按钮
- 右上角剩余次数白底深色字
- 对话气泡用户紫色/AI白底支持 Markdown
### 15. 饮食记录列表
- 本地列表管理删除不闪屏
- 左滑删除点击进详情
## 交互特性
- **流式输出**AI 回复逐字追加最简实现 buffer/Timer/淡入动画
- **卡片入场动画**欢迎卡片+确认卡片从下方滑入+淡入600ms, easeOutCubic
- **确认卡片**字段行横向排列标签固定80px宽可编辑字段支持点击修改
- **Markdown 渲染**AI 消息使用 flutter_markdown 渲染支持粗体/标题
- **localhost + adb reverse**解决 IP 变动问题手机通过 USB 转发连接电脑后端
## 后端接口
| 模块 | 接口 | 说明 |
|---|---|---|
| 健康数据 | POST /api/health/record | 录入健康指标 |
| | GET /api/health/latest | 获取最新指标 |
| 用药 | GET/POST/PUT/DELETE /api/medications | 用药 CRUD |
| | POST /api/medications/{id}/confirm-dose | 服药打卡 |
| 运动 | POST /api/exercise/plans | 创建运动计划 |
| | POST /api/exercise/{id}/checkin | 运动打卡 |
| 饮食 | POST /api/diet-records | 保存饮食记录 |
| | GET /api/diet-records | 获取记录列表 |
| 报告 | GET/POST /api/reports | 报告列表/上传 |
| | DELETE /api/reports/{id} | 删除报告 |
| AI | GET /api/ai/{agent}/chat (SSE) | AI 对话流 |
| | POST /api/ai/analyze-food-image | 食物图片识别 |