Your Name
|
e83dd07553
|
更新
|
2026-05-29 17:08:57 +08:00 |
|
Your Name
|
0f974be7a1
|
Merge branch 'master-5-27' into master-5-28
|
2026-05-28 14:46:50 +08:00 |
|
long
|
afd88714ec
|
Merge branch 'mini-sport'
|
2026-05-28 11:49:41 +08:00 |
|
Your Name
|
33f8f669ad
|
更新
|
2026-05-28 10:50:21 +08:00 |
|
 longandClaude Opus 4.7
|
0225e9f971
|
feat(training): 握力环页面简化重构
## 主要改动
### 1. 连续训练模式
- 移除组数/休息逻辑,只统计总次数和时长
- 训练持续进行直到用户手动暂停
- 实时显示次数、时长、消耗糖分
### 2. 递进式奖励系统
- 鸡蛋(8-12次) → 核桃(15-20次) → 易拉罐(25-30次) → 气球(40-50次)
- 每个奖励在区间内随机触发
- 奖励按顺序递进,不会跳级
- 捏碎粒子特效 + 奖励弹窗
### 3. 糖分计算与食物对比
- 公式: (MET × 体重 × 时长) / 4
- MET = 3.5, 体重 = 60kg
- 食物对比: 苹果/香蕉/米饭/巧克力/可乐
### 4. 视觉设计优化
- 真实握力环造型(完整圆环 + 中空 + 握点)
- 立体渐变和纹理效果
- 挤压动画(训练时整体缩放)
- 简洁交互(整个环可点击,无中心按钮)
### 5. 问题修复
- 修复进入页面时音效预热响声(静音预热)
- 暂时禁用音效URL(避免404错误)
- 修复捏碎特效层级问题
## 技术实现
- 新增: grip-ring.vue (主页面)
- 新增: grip-ring-canvas.vue (画布组件)
- 修改: useMetronome.ts (静音预热)
- 修改: exercises.ts (移除握力环)
- 修改: index.vue (添加头部链接)
- 修改: dev-training-entry/index.vue (添加菜单入口)
- 修改: pages.json (添加路由)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 18:26:45 +08:00 |
|
Your Name
|
19af50c344
|
更新
|
2026-05-27 15:50:54 +08:00 |
|
Your Name
|
95fff1262b
|
更新
Merge branch 'master' into master-5-24
|
2026-05-26 18:09:41 +08:00 |
|
Your Name
|
0dd9cdcba9
|
更新功能
|
2026-05-26 18:05:48 +08:00 |
|
long
|
3325be0622
|
feat(metronome): 双引擎(BgAudio 档位+InnerAudio 自定义)+音频迁移 CDN
- 档位模式用 BackgroundAudioManager+预合成循环 mp3, 锁屏可继续播放
- 自定义模式保留 InnerAudio, 支持任意 BPM(40~240)/拍号(2/3/4), 仅前台
- UI 折叠区区分两种模式, preset 默认进, 点"⚙ 自定义节奏"切换
- 音频资产全部迁移到腾讯云 COS, 删除本地 6 个 mp3/jpg (-210KB)
- server 上传白名单补 mp3/wav/m4a/aac/amr/wma 格式
|
2026-05-26 11:15:15 +08:00 |
|
 longandCursor
|
c1dfb01f53
|
fix(metronome): 切后台/小窗后节拍声继续(放兜里也能听)
两层原因都修:
1. 微信限制(声明后台音频权限):
InnerAudioContext 默认在小程序进后台时被强制暂停。
必须显式声明 requiredBackgroundModes,iOS 才允许后台继续发声。
- manifest.json mp-weixin 全局加 requiredBackgroundModes:["audio"]
- pages.json 节拍器页 style 也加,双保险
说明:Android 大部分情况无需此声明也能后台,iOS 必需。
2. 代码层(onHide 不再主动 stop):
原 onHide 里 if(isPlaying) stop() 会在切后台/小窗时
立刻把节拍器自己关掉,跟需求相反。
新策略:
- onHide 留空 → 切后台/小窗时节拍器继续工作
- onUnmounted 才真正 stop + 释放屏幕常亮 → 用户主动离开
节拍器页(navigateBack/重启)时清理资源
实际场景:健走时把手机塞口袋,锁屏或切到微信聊天,
节拍声依然继续响,无需把手机一直拿着看。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-26 09:19:19 +08:00 |
|
 longandCursor
|
50abe5dece
|
refactor: 训练模块整体迁入分包,减小主包体积
主包超出 2MB 上限无法上传发布版,把训练相关全部移到独立分包。
目录调整:
- pages/training/* → training/pages/*
- hooks/use{Metronome,VoiceCoach,TrainingSession,TrainingBgm}.ts
→ training/hooks/*
- static/training/* → training/static/*
- 主包 hooks/ 目录已清空,所有 use* 都被分包独占
引用路径更新:
- 分包内 hook import 用相对路径 ../hooks/xxx,不依赖 @/ alias
- 资源路径 /static/training/audio/click.mp3
→ /training/static/audio/click.mp3
- useMetronome 默认 clickSrc / useVoiceCoach VOICE_BASE
/ useTrainingBgm BGM_BASE 全部对齐新路径
pages.json:
- 主包 pages 移除 training/index 和 training/metronome
- subPackages 新增 root="training",含 pages/index 和 pages/metronome
- 跟现有 TUIKit / doctor 分包风格一致
调用方:
- components/dev-training-entry navigateTo URL 更新成
/training/pages/metronome (此组件留在主包,主包跳分包是合法操作)
文档/工具同步:
- training/static/README.md 路径示例改为 training/static/...
- scripts/generate-voice.mjs VOICE_DIR 与提示输出对齐新路径
Git mv 检测到的全是 rename(R),历史完整保留。
分包总体 80K(pages 44K + hooks 20K + static 16K),主包瘦身明显。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-26 09:00:01 +08:00 |
|
 longandCursor
|
0d35d1b6c3
|
fix(metronome): 顶部色协调 + 视频边缘柔化 + 节拍音加大
NavBar 颜色协调:
- 节拍器页 navigationBarBackgroundColor 从 #0f172a 暗色
改为 #f8fafc,跟页面背景纯色一致,顶部不再撕裂
- 文字色改 black,补 backgroundColor 防止下拉露出底色
视频边缘柔化(去掉硬切感):
- 页面背景从渐变改为纯色 #f8fafc,让 box-shadow 颜色稳定
- walker-clip 加 box-shadow 0 0 30rpx 12rpx #f8fafc
圆形外圈"消融"到背景里,不再有硬边框感
- video transform: scale(1.1) → 1.4
让 video 自带的灰白渐变边和右上角原生 PIP/小窗按钮
全部被推到圆外,被 overflow:hidden 切掉
节拍音重做(响度+音色):
- 时长从 0.13s 缩到 0.085s,去掉衰减尾巴更干脆
- 加 5ms white-noise burst 模拟敲击瞬间的"tk"音头
- volume 拉到 6 倍 + alimiter 限 0.98 防爆音
- 实测峰值从 -13.5dB 推到 0dB(满量程),
mean 从 -26dB 提到 -19dB,听感响度约翻倍
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 17:28:25 +08:00 |
|
 longandCursor
|
a08031b901
|
style(metronome): 禁止页面上下滚动
- pages.json 给 pages/training/metronome 加 disableScroll: true
(微信小程序级别禁滚动,主要避免下拉刷新和顶部回弹)
- .page CSS 改 min-height → height: 100vh + overflow: hidden
(双保险,防止 iOS 橡皮筋效果与内容超出滚动)
- 内容元素 gap 28→24rpx,微调避免内容被裁
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 14:15:36 +08:00 |
|
 longandCursor
|
2beace89f4
|
feat(TUICallKit-Vue3): 迁入节拍器与练一练训练模块
之前误将训练模块加在 uniapp 项目,实际目标项目是 TUICallKit-Vue3
(甄养堂主小程序壳),整体迁入:
- hooks/useMetronome.ts 节拍器(音频实例池+预热,无冷启动延迟)
- hooks/useTrainingSession.ts 训练 Session 状态机
- hooks/useVoiceCoach.ts 语音教练队列
- hooks/useTrainingBgm.ts 训练/休息 BGM 切换+渐变
- pages/training/index.vue 练一练主页(器械跟练)
- pages/training/metronome.vue 独立节拍器(老人友好版,
中央圆即开始/暂停按钮,纯 CSS 几何 icon,大字大按钮)
- pages/training/components/exercise-anim.vue CSS 动作动画
- pages/training/exercises.ts 5 个器械动作预设
- static/training/audio/*.mp3 3 种 click 音色(MIT 协议)
- scripts/generate-voice.mjs MiMo TTS 批量生成语音脚本
- pages.json 注册 pages/training/index 与 pages/training/metronome
- 「我的」页加 DevTrainingEntry 悬浮入口,生产环境自动隐藏
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 11:28:55 +08:00 |
|
Your Name
|
7147c8e148
|
新增
|
2026-03-19 12:19:00 +08:00 |
|
Your Name
|
7832514f28
|
更新
|
2026-03-18 14:53:09 +08:00 |
|
Your Name
|
cda63b5ae2
|
更新
|
2026-03-16 15:08:28 +08:00 |
|
Your Name
|
4ddee40675
|
新增功能
|
2026-03-14 11:16:04 +08:00 |
|
Your Name
|
eb283f008b
|
更新
|
2026-03-13 14:08:52 +08:00 |
|
Your Name
|
08dd9cd307
|
更新
|
2026-03-11 14:33:49 +08:00 |
|
Your Name
|
38ad60f4bb
|
更新
|
2026-03-11 09:49:47 +08:00 |
|
Your Name
|
7b76671988
|
更新初级版本
|
2026-03-06 17:30:37 +08:00 |
|
Your Name
|
52bb80e2f1
|
更新
|
2026-03-06 14:27:24 +08:00 |
|