|
...
|
...
|
@@ -170,35 +170,35 @@ |
|
|
|
|
|
|
|
<!-- 2. 超级组:按【组号】循环(取第一个动作的组数作为总组数) -->
|
|
|
|
<view class="super-set-list">
|
|
|
|
<view v-for="(setItem, idx) in (unit.exercises[0]?.sets || [])" :key="idx" class="super-set-item">
|
|
|
|
<text class="detail-label">{{ idx + 1 }}</text>
|
|
|
|
<view v-for="idx in getSuperSetMaxGroupCount(unit.exercises)" :key="idx" class="super-set-item">
|
|
|
|
<text class="detail-label">{{ idx }}</text>
|
|
|
|
<view class="set-column">
|
|
|
|
<!-- 遍历当前组下的每一个动作 -->
|
|
|
|
<view v-for="(ex, exIdx) in unit.exercises" :key="ex.exerciseId" class="action-in-set">
|
|
|
|
<!-- 容错:当前动作无该组则不渲染 -->
|
|
|
|
<template v-if="ex.sets[idx]">
|
|
|
|
<template v-if="ex.sets[idx - 1]">
|
|
|
|
<view class="action-letter">
|
|
|
|
{{ idx + 1 }}{{ String.fromCharCode(65 + exIdx) }}
|
|
|
|
{{ idx }}{{ String.fromCharCode(65 + exIdx) }}
|
|
|
|
</view>
|
|
|
|
<view class="set-content">
|
|
|
|
<!-- 复用你原有的 动作类型 文本逻辑 -->
|
|
|
|
<text v-if="[0, 4, 5].includes(ex.exerciseType)">
|
|
|
|
{{ ex.sets[idx].weight }}kg × {{ ex.sets[idx].reps }}次
|
|
|
|
{{ ex.sets[idx - 1].weight }}kg × {{ ex.sets[idx - 1].reps }}次
|
|
|
|
</text>
|
|
|
|
<text v-if="ex.exerciseType === 1">
|
|
|
|
{{ ex.sets[idx].distance }}km x {{ formatSeconds(ex.sets[idx].duration) }}
|
|
|
|
{{ ex.sets[idx - 1].distance }}km x {{ formatSeconds(ex.sets[idx - 1].duration) }}
|
|
|
|
</text>
|
|
|
|
<text v-if="ex.exerciseType === 2">
|
|
|
|
{{ ex.sets[idx].reps }}次
|
|
|
|
{{ ex.sets[idx - 1].reps }}次
|
|
|
|
</text>
|
|
|
|
<text v-if="ex.exerciseType === 3">
|
|
|
|
{{ ex.sets[idx].duration }}次
|
|
|
|
{{ ex.sets[idx - 1].duration }}次
|
|
|
|
</text>
|
|
|
|
<text v-if="ex.exerciseType === 6">
|
|
|
|
{{ ex.sets[idx].duration }}组 x {{ formatSeconds(ex.sets[idx].duration) }}
|
|
|
|
{{ ex.sets[idx - 1].duration }}组 x {{ formatSeconds(ex.sets[idx - 1].duration) }}
|
|
|
|
</text>
|
|
|
|
<view class="rest" v-if="ex.sets[idx].restTime">
|
|
|
|
{{ ex.sets[idx].restTime }}s
|
|
|
|
<view class="rest" v-if="ex.sets[idx - 1].restTime">
|
|
|
|
{{ ex.sets[idx - 1].restTime }}s
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
...
|
...
|
@@ -378,6 +378,15 @@ const openColorPopup = () => { |
|
|
|
showColorPopup.value = true
|
|
|
|
}
|
|
|
|
|
|
|
|
// 获取超级组内所有动作中最大的组数
|
|
|
|
const getSuperSetMaxGroupCount = (exercises) => {
|
|
|
|
if (!Array.isArray(exercises) || exercises.length === 0) return 0
|
|
|
|
return exercises.reduce((max, ex) => {
|
|
|
|
const len = Array.isArray(ex.sets) ? ex.sets.length : 0
|
|
|
|
return Math.max(max, len)
|
|
|
|
}, 0)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
const handleUnitClick = (unit) => {
|
...
|
...
|
|