{{celebrationMessage}} {{status === 'idle' ? totalSets : currentSet}} /{{totalSets}} {{status === 'paused' ? '已暂停' : (status === 'idle' ? '准备开始' : (isResting ? '休息中' : '撑住'))}} 每组 {{circuitHold}} 秒{{circuitRest > 0 ? ' · 休息 ' + circuitRest + ' 秒' : ''}} 已撑 {{workTotal}} 秒 · 目标 {{circuitTotalWork}} 秒 循环训练 · 共需撑 {{circuitTotalWork}} 秒 自由训练 · 目标 {{duration}} 秒 今日目标 {{duration}} 秒 · 第 {{planDay}} 天 目标达成,继续挑战! {{isCircuitMode ? phaseTip : hintTip}} 已暂停 目标完成! 继续坚持! 结束训练 确定要结束本次训练吗? 取消 确定 // 秒数 -> 分秒展示: 45->"45"/"秒", 83->"1分23"/"秒", 120->"2"/"分钟" // 与 utils/util.js 的 formatDuration 口径一致(整分钟走分钟单位) module.exports = { numPart: function (s) { s = Math.floor(s || 0) if (s < 60) return '' + s var m = Math.floor(s / 60) var sec = s % 60 return sec === 0 ? '' + m : m + '分' + sec }, unitPart: function (s) { s = Math.floor(s || 0) if (s < 60) return '秒' return s % 60 === 0 ? '分钟' : '秒' } } {{completionMessage}} {{fmt.numPart(completionElapsed)}} {{fmt.unitPart(completionElapsed)}} +{{completionOvertime}} 秒超长发挥 连续打卡 {{completionStreak}} 天 {{completionTipValue}} 小贴士 {{completionTipRisk}} 再来一次 查看记录 回到首页