From c435e6ae4ec04bc5a2a52b768d205f41a36cc7f6 Mon Sep 17 00:00:00 2001
From: long <452591453@qq.com>
Date: Thu, 28 May 2026 14:33:31 +0800
Subject: [PATCH 1/7] Update main.js
---
TUICallKit-Vue3/main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TUICallKit-Vue3/main.js b/TUICallKit-Vue3/main.js
index f1d13fa0..5fd1d831 100644
--- a/TUICallKit-Vue3/main.js
+++ b/TUICallKit-Vue3/main.js
@@ -1,5 +1,5 @@
import App from './App'
-var baseUrl ='https://css.zhenyangtang.com.cn/';
+var baseUrl ='https://admin.zhenyangtang.com.cn/';
// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
From 8d635bb7ed85eb476cc6a20f29327577477e919b Mon Sep 17 00:00:00 2001
From: long <452591453@qq.com>
Date: Thu, 28 May 2026 15:10:06 +0800
Subject: [PATCH 2/7] update
---
.../pages/components/grip-ring-canvas.vue | 98 +--
TUICallKit-Vue3/training/pages/grip-ring.vue | 802 ++++++++++++++----
2 files changed, 680 insertions(+), 220 deletions(-)
diff --git a/TUICallKit-Vue3/training/pages/components/grip-ring-canvas.vue b/TUICallKit-Vue3/training/pages/components/grip-ring-canvas.vue
index a6361748..5e0f040b 100644
--- a/TUICallKit-Vue3/training/pages/components/grip-ring-canvas.vue
+++ b/TUICallKit-Vue3/training/pages/components/grip-ring-canvas.vue
@@ -23,7 +23,7 @@
- 点击开始
+ {{ hintText || '点击开始' }}
@@ -42,9 +42,12 @@ import CrushCanvas from './crush-canvas.vue'
interface Props {
bpm: number
isPlaying: boolean
+ hintText?: string
}
-const props = defineProps()
+const props = withDefaults(defineProps(), {
+ hintText: '点击开始',
+})
const emit = defineEmits<{
togglePlay: []
@@ -78,25 +81,24 @@ defineExpose({
justify-content: center;
position: relative;
overflow: hidden;
- /* 与页面背景一致,无可见边界 */
- background: #f8fafc;
+ background: linear-gradient(180deg, #f0fdfa 0%, #f8fafc 55%, #f1f5f9 100%);
}
-/* 环境氛围 - 中心大放射光晕,营造空间感 */
+/* 环境氛围 - 中心放射光晕 */
.ambient-glow {
position: absolute;
- width: 1400rpx;
- height: 1400rpx;
+ width: 1200rpx;
+ height: 1200rpx;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 50%;
background:
radial-gradient(circle,
- rgba(255, 255, 255, 1) 0%,
- rgba(241, 245, 249, 0.6) 25%,
- rgba(226, 232, 240, 0.3) 50%,
- transparent 75%);
+ rgba(204, 251, 241, 0.9) 0%,
+ rgba(240, 253, 250, 0.5) 30%,
+ rgba(241, 245, 249, 0.2) 55%,
+ transparent 72%);
pointer-events: none;
}
@@ -105,8 +107,8 @@ defineExpose({
* ============================================================ */
.ring-container {
position: relative;
- width: 640rpx;
- height: 640rpx;
+ width: 560rpx;
+ height: 560rpx;
display: flex;
align-items: center;
justify-content: center;
@@ -117,13 +119,13 @@ defineExpose({
/* 外发光 - 只在播放时显示(节省 GPU) */
.ring-aura {
position: absolute;
- width: 700rpx;
- height: 700rpx;
+ width: 620rpx;
+ height: 620rpx;
border-radius: 50%;
background: radial-gradient(circle,
- rgba(244, 114, 182, 0.45) 0%,
- rgba(244, 114, 182, 0.15) 35%,
- rgba(244, 114, 182, 0) 70%);
+ rgba(20, 184, 166, 0.4) 0%,
+ rgba(45, 212, 191, 0.15) 35%,
+ rgba(20, 184, 166, 0) 70%);
opacity: 0;
transition: opacity 0.3s ease;
will-change: transform, opacity;
@@ -150,8 +152,8 @@ defineExpose({
* ============================================================ */
.grip-ring {
position: relative;
- width: 520rpx;
- height: 520rpx;
+ width: 460rpx;
+ height: 460rpx;
display: flex;
align-items: center;
justify-content: center;
@@ -163,28 +165,28 @@ defineExpose({
transform: scale(0.96);
}
-/* 外圈 - 粉色渐变(精致质感) */
+/* 外圈 - 青绿渐变(与页面品牌色一致) */
.ring-outer-circle {
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
background: linear-gradient(135deg,
- #fda4af 0%,
- #f472b6 50%,
- #ec4899 100%);
+ #5eead4 0%,
+ #2dd4bf 45%,
+ #14b8a6 100%);
box-shadow:
- 0 24rpx 64rpx rgba(236, 72, 153, 0.4),
- 0 12rpx 32rpx rgba(244, 114, 182, 0.3),
- inset 0 -20rpx 40rpx rgba(190, 24, 93, 0.35),
- inset 0 20rpx 40rpx rgba(255, 255, 255, 0.5);
+ 0 20rpx 56rpx rgba(20, 184, 166, 0.35),
+ 0 10rpx 28rpx rgba(45, 212, 191, 0.25),
+ inset 0 -18rpx 36rpx rgba(15, 118, 110, 0.3),
+ inset 0 18rpx 36rpx rgba(255, 255, 255, 0.45);
}
/* 顶部高光 - 模拟材质感 */
.ring-highlight {
position: absolute;
- width: 420rpx;
- height: 120rpx;
+ width: 360rpx;
+ height: 100rpx;
top: 40rpx;
border-radius: 50%;
background: radial-gradient(ellipse,
@@ -196,13 +198,13 @@ defineExpose({
/* 内圈中空 */
.ring-inner-circle {
position: absolute;
- width: 280rpx;
- height: 280rpx;
+ width: 250rpx;
+ height: 250rpx;
border-radius: 50%;
- background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
+ background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
box-shadow:
- inset 0 8rpx 20rpx rgba(190, 24, 93, 0.3),
- inset 0 -2rpx 8rpx rgba(255, 255, 255, 0.8);
+ inset 0 8rpx 20rpx rgba(15, 118, 110, 0.25),
+ inset 0 -2rpx 8rpx rgba(255, 255, 255, 0.85);
}
/* 播放时的挤压动画(只影响 transform,GPU 加速) */
@@ -245,15 +247,15 @@ defineExpose({
}
.hint-icon {
- width: 108rpx;
- height: 108rpx;
+ width: 96rpx;
+ height: 96rpx;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.98);
border-radius: 50%;
box-shadow:
- 0 12rpx 32rpx rgba(236, 72, 153, 0.35),
+ 0 12rpx 32rpx rgba(20, 184, 166, 0.28),
inset 0 2rpx 4rpx rgba(255, 255, 255, 0.9);
animation: hint-bounce 2s ease-in-out infinite;
will-change: transform;
@@ -262,10 +264,10 @@ defineExpose({
.play-triangle {
width: 0;
height: 0;
- border-left: 36rpx solid #ec4899;
- border-top: 24rpx solid transparent;
- border-bottom: 24rpx solid transparent;
- margin-left: 10rpx;
+ border-left: 32rpx solid #0f766e;
+ border-top: 22rpx solid transparent;
+ border-bottom: 22rpx solid transparent;
+ margin-left: 8rpx;
}
@keyframes hint-bounce {
@@ -278,10 +280,10 @@ defineExpose({
}
.hint-text {
- font-size: 28rpx;
- color: #be185d;
+ font-size: 26rpx;
+ color: #0f766e;
font-weight: 700;
- letter-spacing: 4rpx;
+ letter-spacing: 3rpx;
text-shadow: 0 2rpx 8rpx rgba(255, 255, 255, 0.9);
}
@@ -299,8 +301,8 @@ defineExpose({
}
.bpm-value {
- font-size: 88rpx;
- color: #be185d;
+ font-size: 80rpx;
+ color: #0f766e;
font-weight: 900;
line-height: 1;
letter-spacing: -2rpx;
@@ -310,7 +312,7 @@ defineExpose({
.bpm-label {
font-size: 22rpx;
- color: #ec4899;
+ color: #14b8a6;
font-weight: 700;
letter-spacing: 6rpx;
margin-top: 2rpx;
diff --git a/TUICallKit-Vue3/training/pages/grip-ring.vue b/TUICallKit-Vue3/training/pages/grip-ring.vue
index 300aecb6..1e2d63e1 100644
--- a/TUICallKit-Vue3/training/pages/grip-ring.vue
+++ b/TUICallKit-Vue3/training/pages/grip-ring.vue
@@ -1,48 +1,102 @@
+
+
+
-
{{ bgmEnabled ? '🎵' : '🔇' }}
-
-
-
-
- 次数
- {{ totalReps }}
-
-
- 时长
- {{ formatTime(elapsedSeconds) }}
-
-
- 消耗糖分
- {{ totalSugar.toFixed(1) }}g
+
+
+ 剩余
+ {{ formatTime(remainingSeconds) }}
-
-
-
- {{ p.label }}
- {{ p.bpm }} BPM
- {{ p.desc }}
+
+
+
+
+ 次数
+ {{ hasStats ? totalReps : '—' }}
+
+
+ 时长
+ {{ hasStats ? formatTime(elapsedSeconds) : '—' }}
+
+
+ 糖分
+ {{ hasStats ? `${totalSugar.toFixed(1)}g` : '—' }}
+
+
+
+
+
+
+
+
+
+ {{ PRESET_ICONS[p.id] }}
+ {{ p.label }}
+ {{ p.bpm }} BPM
+ {{ p.desc }}
+
+
+
+
+
+
+
+
+
+
+ {{ t.label }}
+
+
+
+
+
+
+ 已暂停 · 点击握力环继续
+ 结束训练 ›
@@ -57,8 +111,16 @@
-
-
+
+
+
+ {{ tip }}
+
+
+
+
+
+
+
+
-
-
-
-
- 动作要领
- • 完全握紧停顿 1 秒
- • 完全张开放松
- • 左右手交替训练
+
@@ -1139,26 +1190,190 @@ $shadow-sm: 0 4rpx 12rpx rgba(15, 23, 42, 0.04);
}
/* ============================================================
- * 动作要领条
+ * 视频教学入口卡片
* ============================================================ */
-.tips-strip {
+.tutorial-card {
display: flex;
- flex-wrap: wrap;
- gap: 10rpx;
+ align-items: center;
+ gap: 16rpx;
+ padding: 18rpx 24rpx 18rpx 18rpx;
+ background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
+ border-radius: 24rpx;
+ border: 2rpx solid rgba(20, 184, 166, 0.18);
+ box-shadow:
+ 0 4rpx 16rpx rgba(15, 23, 42, 0.04),
+ 0 1rpx 0 rgba(255, 255, 255, 0.9) inset;
+ transition: transform 0.15s;
+
+ &:active {
+ transform: scale(0.98);
+ background: linear-gradient(135deg, #f0fdfa 0%, #ecfeff 100%);
+ }
+}
+
+.tutorial-icon {
+ width: 72rpx;
+ height: 72rpx;
+ border-radius: 50%;
+ background: linear-gradient(140deg, $brand 0%, $brand-deep 100%);
+ display: flex;
+ align-items: center;
justify-content: center;
+ flex-shrink: 0;
+ box-shadow: 0 4rpx 12rpx rgba(20, 184, 166, 0.35);
}
-.tip-chip {
- padding: 10rpx 20rpx;
- background: rgba(255, 255, 255, 0.7);
- border-radius: 999rpx;
- border: 2rpx solid $card-border;
+.tutorial-play-triangle {
+ width: 0;
+ height: 0;
+ border-left: 22rpx solid #fff;
+ border-top: 14rpx solid transparent;
+ border-bottom: 14rpx solid transparent;
+ margin-left: 6rpx;
}
-.tip-text {
+.tutorial-info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ gap: 4rpx;
+ min-width: 0;
+}
+
+.tutorial-title {
+ font-size: 28rpx;
+ font-weight: 700;
+ color: $text-1;
+ letter-spacing: 1rpx;
+}
+
+.tutorial-sub {
font-size: 22rpx;
+ color: $text-3;
+ letter-spacing: 0.5rpx;
+}
+
+.tutorial-arrow {
+ font-size: 36rpx;
+ color: #cbd5e1;
+ font-weight: 300;
+ line-height: 1;
+ flex-shrink: 0;
+}
+
+/* ============================================================
+ * 视频教学弹层
+ * ============================================================ */
+.tutorial-mask {
+ position: fixed;
+ inset: 0;
+ background: rgba(15, 23, 42, 0.65);
+ backdrop-filter: blur(8rpx);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 950;
+ padding: 0 24rpx;
+ animation: fade-in 0.2s ease;
+}
+
+.tutorial-modal {
+ width: 100%;
+ max-width: 700rpx;
+ background: #fff;
+ border-radius: 28rpx;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ animation: tutorial-pop 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
+}
+
+@keyframes tutorial-pop {
+ from {
+ transform: scale(0.92);
+ opacity: 0;
+ }
+ to {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+.tutorial-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 24rpx 28rpx 16rpx;
+}
+
+.tutorial-modal-title {
+ font-size: 32rpx;
+ font-weight: 700;
+ color: $text-1;
+ letter-spacing: 1rpx;
+}
+
+.tutorial-close {
+ width: 56rpx;
+ height: 56rpx;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #f1f5f9;
+
+ &:active {
+ background: #e2e8f0;
+ }
+}
+
+.tutorial-close-icon {
+ font-size: 40rpx;
color: $text-2;
- line-height: 1.3;
+ line-height: 1;
+ font-weight: 300;
+}
+
+.tutorial-video {
+ width: 100%;
+ // 视频源 720×720 方形, 容器同比贴合避免左右黑边
+ // modal max-width = 700rpx, 这里也用 700rpx 完美 1:1
+ height: 700rpx;
+ background: #000;
+}
+
+.tutorial-tips {
+ padding: 24rpx 28rpx 32rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 12rpx;
+}
+
+.tutorial-tips-title {
+ font-size: 24rpx;
+ color: $text-3;
+ letter-spacing: 1rpx;
+ margin-bottom: 4rpx;
+}
+
+.tutorial-tip-item {
+ display: flex;
+ align-items: center;
+ gap: 12rpx;
+}
+
+.tip-dot {
+ width: 8rpx;
+ height: 8rpx;
+ border-radius: 50%;
+ background: $brand;
+ flex-shrink: 0;
+}
+
+.tip-content {
+ font-size: 26rpx;
+ color: $text-2;
+ line-height: 1.5;
}
/* ============================================================
From 9b5cd5b2b97b1e26fef76a8a8146ff7d0c67a776 Mon Sep 17 00:00:00 2001
From: long <452591453@qq.com>
Date: Fri, 29 May 2026 10:59:17 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=A1=E5=8A=9B?=
=?UTF-8?q?=E7=8E=AF=E8=AE=AD=E7=BB=83=E9=A1=B5=EF=BC=9A=E5=86=85=E8=81=94?=
=?UTF-8?q?=E8=A7=86=E9=A2=91=E8=88=9E=E5=8F=B0=E5=B9=B6=E4=BF=AE=E5=A4=8D?=
=?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=85=BC=E5=AE=B9=E4=B8=8E=E5=AE=8C?=
=?UTF-8?q?=E6=88=90=E6=B5=AE=E5=B1=82=E5=B8=83=E5=B1=80=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
将示范视频从自定义组件移至页面主体,避免 mp 端 vOn/ref 崩溃;奖励特效改为 prop 信号驱动,完成弹层移出 page 容器修复右侧裁切,并修正后台音频配置与 CLI 热重载监听。
Co-authored-by: Cursor
---
TUICallKit-Vue3/manifest.json | 1 +
TUICallKit-Vue3/pages.json | 6 +-
.../pages/components/crush-canvas.vue | 440 +++++++++++---
.../pages/components/grip-ring-canvas.vue | 320 ----------
TUICallKit-Vue3/training/pages/grip-ring.vue | 564 ++++++++++--------
TUICallKit-Vue3/vite.config.ts | 15 +
6 files changed, 661 insertions(+), 685 deletions(-)
delete mode 100644 TUICallKit-Vue3/training/pages/components/grip-ring-canvas.vue
diff --git a/TUICallKit-Vue3/manifest.json b/TUICallKit-Vue3/manifest.json
index 672b3365..146f31f1 100644
--- a/TUICallKit-Vue3/manifest.json
+++ b/TUICallKit-Vue3/manifest.json
@@ -58,6 +58,7 @@
"subPackages" : true
},
"usingComponents" : true,
+ "requiredBackgroundModes" : ["audio"],
"plugins" : {
"WechatSI" : {
diff --git a/TUICallKit-Vue3/pages.json b/TUICallKit-Vue3/pages.json
index 100b8395..d9f3fe15 100644
--- a/TUICallKit-Vue3/pages.json
+++ b/TUICallKit-Vue3/pages.json
@@ -121,8 +121,7 @@
"navigationBarTitleText": "握力环训练",
"navigationBarBackgroundColor": "#f8fafc",
"navigationBarTextStyle": "black",
- "backgroundColor": "#f8fafc",
- "requiredBackgroundModes": ["audio"]
+ "backgroundColor": "#f8fafc"
}
},
{
@@ -131,8 +130,7 @@
"navigationBarTitleText": "耗糖节拍器",
"navigationBarBackgroundColor": "#f8fafc",
"navigationBarTextStyle": "black",
- "backgroundColor": "#f8fafc",
- "requiredBackgroundModes": ["audio"]
+ "backgroundColor": "#f8fafc"
}
}
]
diff --git a/TUICallKit-Vue3/training/pages/components/crush-canvas.vue b/TUICallKit-Vue3/training/pages/components/crush-canvas.vue
index b286236d..5a70c4f2 100644
--- a/TUICallKit-Vue3/training/pages/components/crush-canvas.vue
+++ b/TUICallKit-Vue3/training/pages/components/crush-canvas.vue
@@ -9,7 +9,7 @@
diff --git a/TUICallKit-Vue3/training/pages/grip-ring.vue b/TUICallKit-Vue3/training/pages/grip-ring.vue
index 7426bf10..fa9aa76e 100644
--- a/TUICallKit-Vue3/training/pages/grip-ring.vue
+++ b/TUICallKit-Vue3/training/pages/grip-ring.vue
@@ -12,15 +12,56 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ centerHintText }}
+
+
+
+
+ {{ currentBpm }}
+ BPM
+
+
+
+
+
{{ bgmEnabled ? '🎵' : '🔇' }}
@@ -46,7 +87,7 @@
糖分
- {{ hasStats ? `${totalSugar.toFixed(1)}g` : '—' }}
+ {{ hasStats ? `≈${totalSugar.toFixed(1)}g` : '—' }}
@@ -99,9 +140,10 @@
结束训练 ›
+
-
-
-
+
+
diff --git a/TUICallKit-Vue3/training/pages/foot-pedal.vue b/TUICallKit-Vue3/training/pages/foot-pedal.vue
new file mode 100644
index 00000000..fefc7691
--- /dev/null
+++ b/TUICallKit-Vue3/training/pages/foot-pedal.vue
@@ -0,0 +1,1895 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ centerHintText }}
+
+
+
+
+ {{ currentBpm }}
+ BPM
+
+
+
+
+
+
+
+ {{ bgmEnabled ? '🎵' : '🔇' }}
+
+
+
+
+ 剩余
+ {{ formatTime(remainingSeconds) }}
+
+
+
+
+
+
+
+ 次数
+ {{ hasStats ? totalReps : '—' }}
+
+
+ 时长
+ {{ hasStats ? formatTime(elapsedSeconds) : '—' }}
+
+
+ 糖分
+ {{ hasStats ? `≈${totalSugar.toFixed(1)}g` : '—' }}
+
+
+
+
+
+
+
+
+
+ {{ PRESET_ICONS[p.id] }}
+ {{ p.label }}
+ {{ p.bpm }} BPM
+ {{ p.desc }}
+
+
+
+ 🔥
+ {{ estimateText }}
+
+
+
+
+
+
+
+
+
+ {{ t.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 主要锻炼
+
+ {{ m }}
+
+
+
+ 训练效果
+ {{ TRAINING_BENEFIT.effect }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 💪
+ {{ totalReps }}
+ 总次数
+
+
+ ⏱️
+ {{ formatTime(elapsedSeconds) }}
+ 总时长
+
+
+ 🔥
+ ≈{{ totalSugar.toFixed(1) }}g
+ 消耗糖分 (估算)
+
+
+
+
+
+
+
+
+
+ {{ food.emoji }}
+
+ {{ food.count }}
+ {{ food.unit }}{{ food.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TUICallKit-Vue3/training/pages/grip-ring.vue b/TUICallKit-Vue3/training/pages/grip-ring.vue
index fa9aa76e..50735d5a 100644
--- a/TUICallKit-Vue3/training/pages/grip-ring.vue
+++ b/TUICallKit-Vue3/training/pages/grip-ring.vue
@@ -112,6 +112,11 @@
{{ p.desc }}
+
+
+ 🔥
+ {{ estimateText }}
+
@@ -134,10 +139,38 @@
-
-
- 已暂停 · 点击握力环继续
- 结束训练 ›
+
+
+
+
+
+
+
+ 主要锻炼
+
+ {{ m }}
+
+
+
+ 训练效果
+ {{ TRAINING_BENEFIT.effect }}
+
+
+
+
+
+
+
+
@@ -218,7 +251,7 @@
From e4312ab5d10b1a15a5a86a17a2d91c0fe277edd5 Mon Sep 17 00:00:00 2001
From: long <452591453@qq.com>
Date: Fri, 29 May 2026 12:12:07 +0800
Subject: [PATCH 7/7] update
---
TUICallKit-Vue3/training/pages/dumbbell.vue | 11 +++++++----
TUICallKit-Vue3/training/pages/foot-pedal.vue | 11 +++++++----
TUICallKit-Vue3/training/pages/grip-ring.vue | 11 +++++++----
TUICallKit-Vue3/training/pages/pilates-ring.vue | 11 +++++++----
4 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/TUICallKit-Vue3/training/pages/dumbbell.vue b/TUICallKit-Vue3/training/pages/dumbbell.vue
index 5c4b0087..e3bec311 100644
--- a/TUICallKit-Vue3/training/pages/dumbbell.vue
+++ b/TUICallKit-Vue3/training/pages/dumbbell.vue
@@ -238,8 +238,8 @@
-
-
+
+
@@ -595,13 +595,16 @@ function onEndTraining() {
showSummary.value = true
}
+// 关闭结算(点遮罩) → 回到初始待开始态,避免卡在暂停态死循环
function dismissSummary() {
showSummary.value = false
+ resetStats()
}
-function onContinue() {
+// 完成: 退出结算并回到初始待开始态
+function onFinish() {
showSummary.value = false
- startTrainingInternal()
+ resetStats()
}
// 再来一次
diff --git a/TUICallKit-Vue3/training/pages/foot-pedal.vue b/TUICallKit-Vue3/training/pages/foot-pedal.vue
index fefc7691..8671561a 100644
--- a/TUICallKit-Vue3/training/pages/foot-pedal.vue
+++ b/TUICallKit-Vue3/training/pages/foot-pedal.vue
@@ -238,8 +238,8 @@
-
-
+
+
@@ -595,13 +595,16 @@ function onEndTraining() {
showSummary.value = true
}
+// 关闭结算(点遮罩) → 回到初始待开始态,避免卡在暂停态死循环
function dismissSummary() {
showSummary.value = false
+ resetStats()
}
-function onContinue() {
+// 完成: 退出结算并回到初始待开始态
+function onFinish() {
showSummary.value = false
- startTrainingInternal()
+ resetStats()
}
// 再来一次
diff --git a/TUICallKit-Vue3/training/pages/grip-ring.vue b/TUICallKit-Vue3/training/pages/grip-ring.vue
index 50735d5a..ddb4ed87 100644
--- a/TUICallKit-Vue3/training/pages/grip-ring.vue
+++ b/TUICallKit-Vue3/training/pages/grip-ring.vue
@@ -242,8 +242,8 @@
-
-
+
+
@@ -663,13 +663,16 @@ function onEndTraining() {
showSummary.value = true
}
+// 关闭结算(点遮罩) → 回到初始待开始态,避免卡在暂停态死循环
function dismissSummary() {
showSummary.value = false
+ resetStats()
}
-function onContinue() {
+// 完成: 退出结算并回到初始待开始态
+function onFinish() {
showSummary.value = false
- startTrainingInternal()
+ resetStats()
}
// 再来一次
diff --git a/TUICallKit-Vue3/training/pages/pilates-ring.vue b/TUICallKit-Vue3/training/pages/pilates-ring.vue
index 4fa48331..66f0fd37 100644
--- a/TUICallKit-Vue3/training/pages/pilates-ring.vue
+++ b/TUICallKit-Vue3/training/pages/pilates-ring.vue
@@ -238,8 +238,8 @@
-
-
+
+
@@ -595,13 +595,16 @@ function onEndTraining() {
showSummary.value = true
}
+// 关闭结算(点遮罩) → 回到初始待开始态,避免卡在暂停态死循环
function dismissSummary() {
showSummary.value = false
+ resetStats()
}
-function onContinue() {
+// 完成: 退出结算并回到初始待开始态
+function onFinish() {
showSummary.value = false
- startTrainingInternal()
+ resetStats()
}
// 再来一次