Skip to content

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-17inkforge-deploymerge main into api(首页子组件体系合入)

生成:scripts/gen_uniapp_docs.py(重跑刷新)