Appearance
pages/index — 首页(今日健康)
src/pages/index/index.vue· 212 行 · Vue3 setup · 调用:内联 request(stats / device)· 私有组件 ×8(src/pages/index/components/)
职责
健康数据总览首页:三环目标(步数 8000/热量 400 千卡/中高强度 30 分钟)+ AI 体检卡 + 睡眠/运动记录卡 + 健康档案卡。全部数据卡为独立子组件(*-view.vue / *-card-view.vue)。
数据与依赖
| 项 | 值 |
|---|---|
| API(内联 request — 按手册口径归「页面直调」,不是"等收敛的缺口") | getTodayOverview(热量预算)+ myTodayHealth(步数/距离/心率/血氧/睡眠实际值) |
| 组件 | health-summary-view / sleep-card-view / heart-rate-view / oxygen-record-view / stress-record-view / weight-card-view / sport-record-card-view / health-records-view |
| 加载时机 | onShow(loadToday) — 每次回前台刷新 |
关键逻辑
Promise.all双请求;⚠️ 一损俱损:任一失败即整体 reject,同一catch里 UI 保默认值 —— 「首页不崩」成立,但另一路已拿到的数据也会被丢弃(若要各自降级需改Promise.allSettled)。 详见 api/stats 的防回归块- 字段消费:
h.steps?.value/h.todayActivity?.totalCalories/h.hr?.value/h.spo2?.value/(h.sleepXiaomi ?? h.sleep).durationHours— 无设备数据时全为默认 0/undefined(正常态)
变更记录(git)
| 日期 | 作者 | 说明 |
|---|---|---|
| 2026-09-17 | inkforge-deploy | merge main into api(首页子组件体系合入) |
生成:
scripts/gen_uniapp_docs.py(重跑刷新)