Files
Blizzard 7abcc0dd2d refactor(fe): 报告页重构成数据看板,历史页降级成「全部记录」
## 之前报告页的问题
它是个顶级 tab,却只有四张薄卡,而真正的分析全被埋起来:
  - 养宠账单里「记一笔」开 cost 弹层 —— 那分支上一轮随记录表单搬走了,
    点了开空弹层,是个断按钮
  - 养宠账单是我新建花销页的一个残缺子集,重复
  - 后端有 6 条洞察 + 体重曲线,全在「历史页」,报告页只用一行链过去
  - 健康摘要四行手拼字符串,很薄

## 报告 = 数据看板
把埋在历史页的分析提上来,报告页成为真正「看数据」的地方:
  本周概览   周报小结 + 完成/体重变化/高风险三个数 + 生成分享卡片
  健康洞察   6 条洞察直接铺在报告页(按 alert>warn>info 上色),
             点一条跳去记那一类。这是看板的主角
  体重趋势   把那张 SVG 曲线图提上来(点圆点看每次记录)
  健康摘要   疫苗/驱虫/体重/异常四行 + 导出就医摘要
  养宠花销   只给「本月 ¥X + top 类别 + 分类条」概要,点整卡进花销页,
             不再内嵌半套花销 UI,断掉的「记一笔」删了
  全部记录   一行入口进历史页

## 历史页降级成「全部记录」
洞察和体重曲线搬走了,历史页只留「时间轴流水 + 类型筛选」——
分工清晰:报告=看分析,全部记录=翻流水。nav 标题改成「全部记录」,
去掉不再用的 bottom-sheet / fab / seg-tabs 之外的东西。

体重曲线的「记一笔」原来开 weight 弹层(已删),改成跳
addrecord?type=weight;洞察点击也从开弹层改成跳 addrecord。

## 顺手
报告页去掉了 Pro 会员占位卡(支付未接入,就是个营销占位),
接入支付时再加回来。

## 验证(预生产库实跑)
  周报         需要关注 / 完成0 / 高风险1,小结文案对
  洞察         1 条(食便相关),带 level=warn + action=food + 依据
  体重趋势     字段验证只有 1 个点 → 曲线走空态「先记录几次」
  健康摘要     疫苗 0/3 即将到期、驱虫下次日期、体重稳定增长、异常 1 次
  账单         本月 ¥188、top 医疗、2 个类别
  5 个接口全部返回真数据

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 15:03:47 +08:00

20 lines
1.0 KiB
Plaintext

/* 全部记录时间轴。洞察和体重趋势已经搬到报告页,这里只留流水 + 筛选 */
.health-timeline{display:flex;flex-direction:column;gap:var(--sp-2)}
.health-event{display:flex;gap:var(--sp-3);background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-4)}
/* 底色和文字色由 .tone-N 提供(记录类型决定),这里只管形状 */
.event-dot{
width:64rpx;height:64rpx;border-radius:var(--r-sm);flex:none;
display:flex;align-items:center;justify-content:center;
}
.he-b{font-size:var(--fs-md);font-weight:var(--fw-b)}
.he-p{color:var(--muted);font-size:var(--fs-sm);line-height:1.45;margin-top:6rpx}
.he-body{flex:1;min-width:0}
.he-img{margin-top:var(--sp-2);width:220rpx;height:220rpx;border-radius:var(--r-sm)}
.tl-tip{margin-top:var(--sp-3);text-align:center;color:var(--muted);font-size:var(--fs-cap)}
.tl-more{
margin-top:var(--sp-3);padding:var(--sp-3);text-align:center;color:var(--primary-dark);
background:var(--surface-2);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-b);
}