Files
wx_pbzc/.workbuddy/memory/2026-08-06.md
T
lc 05c4763e49 feat(timer): 循环训练组进度改为圆环分段弧 + 信息气泡三行合一
- progress-ring 新增 sets/currentSet/resting/successColor 属性,
  圆环外圈绘制分段弧(已完成=主色/当前=呼吸光点/休息下一组=绿),单组模式零渲染
- timer 删除顶部 circuit-bar 进度面板,布局骨架三模式统一
- 呼吸环淡化(描边 0.55→0.20,柔光渐变强度减半)
- 目标卡与提示气泡合并为 info-bubble,状态文案(撑住/休息中/已暂停)并入气泡顶部
2026-08-12 09:39:41 +08:00

2.0 KiB
Raw Blame History

2026-08-06

记录页新增「里程碑」tab — 设计已锁定(尚未写代码)

用户要求:在 records 页「记录日历 / 趋势」后加第三个 tab「里程碑」,展示用户锻炼旅程中的里程碑事件。 关键决策(用户逐项确认):

  • 语义=「第一次完成任务」,不做累计/极值(明确否决"累计X小时/累计N次""单次最久""最长连续N天"这类历史最佳)。
  • 排序=倒序(最新里程碑在最上)。
  • 范围=5 家族克制版+模式首秀
    1. first_train 第一次训练 → min(record.date)
    2. badge ×7 勋章首解锁(复用 config.trainingDayBadges 的 name/iconWhite)→ 第 N 个去重训练日=解锁日
    3. first_duration 时长首突破,门槛 config.milestoneFirsts.durations=[60,180,300,600]s → 正序第一条 duration≥T 的记录日期
    4. first_streak 连续首突破,门槛 config.milestoneFirsts.streaks=[7,14,30] → 正序扫去重日期,连段首次达 N 的当天
    5. 模式首秀:first_circuit(首条 mode==='circuit')、first_plan(首条 day>=1 的计划训练)
  • 节点不可点(纯展示)。
  • 视觉:竖向时间线(实色圆+白图标+右侧卡),顶部汇总卡+底部"下一个目标"条;空态复用页面级 totalSessions===0 引导。

架构(待实现): 新建 utils/milestones.js 纯函数 computeMilestones(records) → 倒序事件数组;改 records.js/wxml/wxsscontentMode 增 'milestone');config 增 milestoneFirsts。全部从现有 training_records 推导,零存储/云函数改动图标: 节点用 *White 变体(playWhite/boltWhite/formWhite/各 badgeWhite 等);timeWhite、repeatWhite 实现时各加一行或复用现有白图标。注意组件 style isolation 陷阱——图标色烤死在 SVG,必须用 *White。 状态:用户选择「再调整一下」,暂未批准写代码。 下一步:与用户敲定文案/门槛/配色后实现。