- Backend: .NET 10 Minimal API + EF Core + PostgreSQL - Frontend: Flutter + Riverpod + GoRouter + Dio - AI: DeepSeek LLM + Qwen VLM (OpenAI-compatible) - Auth: SMS + JWT (access/refresh tokens) - Features: AI chat, health tracking, medication management, diet analysis, exercise plans, doctor consultations, report analysis
968 lines
34 KiB
Markdown
968 lines
34 KiB
Markdown
# 健康管家 — 页面设计文档
|
||
|
||
> 本文档逐一描述每个页面的布局、组件、交互、状态。配合需求规格文档 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 分钟" │
|
||
└──────────────────────────────────┘
|
||
```
|