feat(records): 训练勋章 UI 改造

- 勋章图标从 emoji 改为矢量 SVG 线性图标(utils/icons.js 新增 bolt/moon/diamond 路径及 white 变体)
- 命名改为累计语义(一周累计/半月累计/月度累计/双月累计/百日累计),并标注"非连续打卡"
- 进度条改回等距节点,解锁时填充正好抵达节点、满级满格
- 新增单枚解锁庆祝:持久化已见解锁集合,进入页面弹 toast + 节点 pop 动画
- 已解锁节点常驻显示勋章名 + 右上角 ✓ 角标,直观体现"已拥有"
- utils/storage.js 新增 totalDays(累计去重训练日),为勋章统计提供数据源
This commit is contained in:
2026-07-28 16:25:55 +08:00
parent 75bad477b1
commit c5ae332cbe
6 changed files with 316 additions and 5 deletions
+20 -4
View File
@@ -4,13 +4,13 @@
*/
module.exports = {
/** 应用版本号,外显在设置页「关于」 */
version: 'v3.01',
version: 'v3.02',
/** 最后更新日期,外显在设置页「关于」 */
updatedAt: '2026-07-28',
/** 开发者名称 / 微信号,设置页点击可复制 */
developer: '刘承',
developer: '三口一瓶',
/**
* 公众号名称。设置页「关于 → 公众号」直接展示,用户可在微信搜索关注,
@@ -30,8 +30,8 @@ module.exports = {
* speed: 语速 -2~2(正数加快,0 为默认)。
*/
tts: {
female: { voiceType: 501004, volume: 9, speed: 1 },
male: { voiceType: 502005, volume: 9, speed: 1 }
female: { voiceType: 501004, volume: 9, speed: 0 },
male: { voiceType: 502005, volume: 9, speed: 0 }
},
/**
@@ -54,6 +54,22 @@ module.exports = {
/** 姿势要领每条显示的秒数 */
tipInterval: 10,
/**
* 累计训练天数里程碑勋章,按累计去重训练日(可中断,非连续打卡)解锁。
* 记录页用里程碑进度条展示,节点按 sqrt 感知映射分布(早期里程碑更显眼),
* 填充与节点同映射,解锁时填充正好抵达该节点、满级时满格。增删改这里即可,
* 但 name 一律用"累计"措辞,避免暗示连续打卡误导用户。
*/
trainingDayBadges: [
{ days: 3, name: '抖登', icon: 'hot', iconWhite: 'hotWhite' },
{ days: 7, name: '中登', icon: 'bolt', iconWhite: 'boltWhite' },
{ days: 14, name: '老登', icon: 'moon', iconWhite: 'moonWhite' },
{ days: 30, name: '神登', icon: 'trophy', iconWhite: 'trophyWhite' },
{ days: 60, name: '上古神登', icon: 'diamond', iconWhite: 'diamondWhite' },
{ days: 80, name: '洪荒神登', icon: 'diamond', iconWhite: 'diamondWhite' },
{ days: 100, name: '究极登祖', icon: 'crown', iconWhite: 'crownWhite' }
],
/**
* 小程序分享配置。微信分享能力依赖每个 Page 实现 onShareAppMessage /
* onShareTimeline,这里集中维护所有场景的分享文案,改这里即可。