根因:主包 2MB 全量组件注入导致 DevTools 渲染引擎内存渐增, 叠加离线时固定 3s 抑制期后的请求洪泛。 修复: - app.config.ts 添加 lazyCodeLoading: requiredComponents 主包 2.0MB→766KB,taro.js 526→131KB,vendors.js 230→28KB - request.ts 离线抑制改为指数退避(3s→6s→12s→30s cap) 后端不可达时自动延长抑制,防止请求风暴 - SegmentTabs Tab 接口改为 readonly,修复 TS 编译错误 - AbortController polyfill 补齐小程序运行时缺失 - 健康首页/设备同步/健康档案/报告/设置页 UI 重构 - 文章页公开端点适配游客访问 - 健康首页 Swiper 间隔优化 4s→5s,动画 500→300ms
3.9 KiB
3.9 KiB
小程序"我的"页面子页面必要性分析
日期: 2026-05-22 | 参与者: 产品经理 / UX 研究员 / UX 架构师 / 医疗业务专家 / 前端技术专家
背景
小程序患者端"我的"页面当前有 5 个分组共 19 个菜单入口 + 1 个消息通知独立入口 = 20 个可点击项。远超移动端认知负荷上限(7±2),需要从全局角度分析各子页面的存在必要性。
讨论要点
核心问题诊断
- 功能堆砌:把所有没有找到更好归属的功能都塞进"我的",导致它变成了"功能大全"而非"个人中心"
- 入口重复:4 个入口在其他 Tab 已有更自然的路径(积分商城、用药记录、在线咨询、我的报告)
- 透析噪音:透析管理 3 个入口对所有用户无条件展示,80%+ 非透析用户看到无关功能
- 语义模糊:健康记录/我的报告/诊断记录三入口,患者分不清区别
- 性能浪费:消息未读数请求 50 条列表而非 count 接口
- 静态菜单:无法按患者画像动态显示
各入口使用频率评估
| 频率 | 入口 |
|---|---|
| 高频(日活) | 消息通知、用药记录(慢病) |
| 中频(周活) | 我的预约、我的随访、在线咨询、积分商城 |
| 低频(月活) | 我的报告、健康记录、AI 分析、诊断记录、就诊人管理 |
| 极低频 | 透析处方、知情同意、线下活动、长辈模式、设备同步、设置 |
患者画像与功能需求矩阵
| 功能 | 普通体检者(50-60%) | 慢病患者(20-25%) | 透析患者(5-8%) | 术后随访(10-15%) |
|---|---|---|---|---|
| 我的报告 | 高 | 高 | 高 | 高 |
| 我的预约 | 高 | 中 | 中 | 中 |
| AI 分析 | 高 | 高 | 中 | 高 |
| 健康记录 | 中 | 高 | 中 | 高 |
| 用药记录 | 低 | 高 | 高 | 中 |
| 我的随访 | 低 | 高 | 中 | 高 |
| 透析管理 | 无 | 无 | 高 | 无 |
| 诊断记录 | 低 | 中 | 中 | 高 |
结论
共识意见
- 入口数应从 20 缩减到 9-11 个(常驻 9 + 动态 1-2)
- 移除 4 个重复入口:积分商城(TabBar已有)、用药记录(健康Tab已有)、在线咨询(助手Tab可达)、我的报告("我的"保留但健康Tab快捷入口改为AI分析)
- 透析管理按需显示:仅透析患者可见,三入口合并为一
- 健康数据合并:健康记录+诊断记录合并为"健康档案"(Tab切换)
- 长辈模式降级:从一级入口移入设置页
优化后菜单结构
[消息通知] ← 优化为 getUnreadCount()
健康档案
├── 我的报告(Tab: 检查报告 / AI 解读)
└── 健康档案(Tab: 体检记录 / 诊断记录)
就诊服务
├── 我的预约
├── 我的随访
└── 在线咨询
透析管理 ← 仅透析患者可见
└── (内页 Tab: 透析记录 / 透析处方 / 同意书)
账号
├── 就诊人管理
├── 设备同步
└── 设置(含长辈模式开关)
行动优先级
| 优先级 | 行动 | 预期效果 | 工期 |
|---|---|---|---|
| P0 | 未读消息改用 getUnreadCount() | 节省 500ms+ | 0.5天 |
| P0 | 移除 3 个重复入口 | 减少 3 个入口 | 0.5天 |
| P1 | 透析管理条件显示 | 80%用户减少3个无关入口 | 1-2天 |
| P1 | 透析三页合并为一 | 节省 20-30KB | 1-2天 |
| P1 | 抽取 usePaginatedList hook | 消除 300 行重复代码 | 1天 |
| P2 | 健康记录/诊断合并为健康档案 | 减少 2 个入口 | 1-2天 |
| P2 | 长辈模式降级到设置页 | 减少 1 个入口 | 0.5天 |
| P2 | 线下活动改为消息推送触达 | 减少 1 个入口 | 0.5天 |
待定
- 后端
patient表是否已有patient_type字段?需确认才能实现动态菜单 - AI 分析是否应完全合并到"我的报告"Tab,还是保留独立入口?
- 设备同步最终放在"账号"组还是"健康"Tab?