feat: 排行榜虚拟领奖台 + 勋章对齐与尺寸统一
- 领奖台数据不足 3 名时显示虚拟空位(虚线轮廓+虚位以待) - 领奖台勋章与昵称对齐改为等高盒结构性修复(移除 margin 盲推) - 全 app 成就勋章图标尺寸统一为 30rpx(前三名/列表/设置页/记录页一致) - 勋章 SVG 按包围盒精确居中(utils/icons.js) - 设置页/记录页勋章展示配套调整
This commit is contained in:
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
module.exports = {
|
||||
/** 应用版本号,外显在设置页「关于」 */
|
||||
version: 'v3.1',
|
||||
version: 'v3.2',
|
||||
|
||||
/** 最后更新日期,外显在设置页「关于」 */
|
||||
updatedAt: '2026-08-03',
|
||||
updatedAt: '2026-08-04',
|
||||
|
||||
/** 开发者名称 / 微信号,设置页点击可复制 */
|
||||
developer: '三口一瓶',
|
||||
@@ -36,8 +36,8 @@ module.exports = {
|
||||
* speed: 语速 -2~2(正数加快,0 为默认)。
|
||||
*/
|
||||
tts: {
|
||||
female: { voiceType: 501004, volume: 9, speed: 0 },
|
||||
male: { voiceType: 502005, volume: 9, speed: 0 }
|
||||
female: { voiceType: 501004, volume: 10, speed: 0 },
|
||||
male: { voiceType: 502005, volume: 10, speed: 0 }
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -60,6 +60,32 @@ module.exports = {
|
||||
/** 姿势要领每条显示的秒数 */
|
||||
tipInterval: 10,
|
||||
|
||||
/**
|
||||
* 卡路里估算系数(千卡/秒)。平板支撑按体重约 3-4 千卡/分钟估算,
|
||||
* 取均值约 0.068 千卡/秒。仅记录页点日期查看「约消耗」时使用。
|
||||
* 改这里即可调整,无需动逻辑代码。
|
||||
*/
|
||||
caloriesPerSecond: 0.068,
|
||||
|
||||
/**
|
||||
* 完成弹窗科学提示(按本次训练时长分段)。
|
||||
* 完成时按实际撑的秒数命中第一段 maxSeconds 大于它的配置,
|
||||
* 在弹窗里展示该段的 value(价值)与 risk(风险,弱化小字)。
|
||||
* maxSeconds: 该段时长上限(秒),最后一段用 Infinity 兜底。
|
||||
* risk 留空则不显示风险行(如短时训练无风险提示)。
|
||||
*
|
||||
* 注意口径:只讲"价值/风险",刻意不提供能系统说法——
|
||||
* "磷酸原/糖酵解按时长切换"是流传广但错误的说法,避免误导用户。
|
||||
* 风险文案往"姿势/休息"引导,不吓人,与 leaderboardPodiumSlogan
|
||||
* "撑得越久不一定越好"的理念保持一致。
|
||||
*/
|
||||
scienceTips: [
|
||||
{ maxSeconds: 120, value: '核心稳定性与肌耐力正在建立,每一次坚持都在加固', risk: '' },
|
||||
{ maxSeconds: 300, value: '肌耐力提升明显,核心控制力渐入佳境', risk: '累了容易塌腰,姿势变形就休息' },
|
||||
{ maxSeconds: 480, value: '这是一场意志力的较量,肌肉收益开始递减', risk: '肩胛压力增大,不必硬撑更久' },
|
||||
{ maxSeconds: Infinity, value: '心理韧性训练,远超普通坚持的挑战', risk: '腰椎肩关节持续受压,不建议作为常规时长' }
|
||||
],
|
||||
|
||||
/**
|
||||
* 累计训练天数里程碑勋章,按累计去重训练日(可中断,非连续打卡)解锁。
|
||||
* 记录页用等距里程碑进度条展示,每个连接段按当前阶段进度填充为绿色。
|
||||
@@ -67,13 +93,13 @@ module.exports = {
|
||||
* 口径=累计去重训练日(可中断);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: 'star', iconWhite: 'starWhite' },
|
||||
{ days: 100, name: '究极登祖', icon: 'crown', iconWhite: 'crownWhite' }
|
||||
{ days: 3, name: '抖登', icon: 'sealCheck', iconWhite: 'sealCheckWhite' },
|
||||
{ days: 7, name: '中登', icon: 'medal', iconWhite: 'medalWhite' },
|
||||
{ days: 14, name: '老登', icon: 'medalMilitary', iconWhite: 'medalMilitaryWhite' },
|
||||
{ days: 30, name: '神登', icon: 'trophyPh', iconWhite: 'trophyPhWhite' },
|
||||
{ days: 60, name: '上古神登', icon: 'certificate', iconWhite: 'certificateWhite' },
|
||||
{ days: 80, name: '洪荒神登', icon: 'shieldStar', iconWhite: 'shieldStarWhite' },
|
||||
{ days: 100, name: '究极登祖', icon: 'crownPh', iconWhite: 'crownPhWhite' }
|
||||
],
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user