Authored by qxm

训计的替换

... ... @@ -4,6 +4,7 @@
<view class="top-bar">
<view class="month-picker">
<uni-datetime-picker type="date" v-model="currentMonth" :clear-icon="false" />
<up-icon name="arrow-down" color="#333" size="15"></up-icon>
</view>
<view class="action-buttons">
<button class="action-btn" @click="ShowExplainPopup = true">说明</button>
... ... @@ -341,6 +342,7 @@ const selectDate = async (date) => {
border-radius: 50rpx;
overflow: hidden;
padding: 0 20rpx;
gap: 10rpx;
:deep(.uni-date-x--border) {
border: none !important;
... ...
... ... @@ -280,6 +280,7 @@
url: `/pages4/pages/xunji/xunji-xunlian-jihua?planid=${plan.id}`,
});
};
// ====== 返回按钮 ======
const back = () => {
const pages = getCurrentPages();
... ...
... ... @@ -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) => {
... ...
... ... @@ -105,11 +105,14 @@
<button type="default" size="mini" class="btn"
style="background-color: #333; color: white; border-radius: 20rpx"
@click.stop="openCalendarPopup(plandetail.id, item.id)">添加到日历</button>
<button type="primary" size="mini" class="btn"
style="background-color: #ffd700; color: black; border-radius: 20rpx" @click.stop>
style="background-color: #ffd700; color: black; border-radius: 20rpx"
@click.stop="startTraining(item.id)">
<text>去训练</text>
<view class="go-text">GO</view>
</button>
</view>
</view>
</view>
... ... @@ -195,6 +198,9 @@ import { onLoad, onShareAppMessage } from '@dcloudio/uni-app';
import AddToCalendarPopup from '@/pages/xunji/components/tianjia-dao-rili.vue';
import WodeJihuaTianjiaTancuang from '@/pages/xunji/components/wode-jihua-tianjia-tancuang.vue'
import WeekSelectPopup from '@/pages4/components/week-select-popup.vue'
import { useTrainingStore } from '@/sheep/store/trainingStore'
const trainingStore = useTrainingStore()
// 获取页面参数
const route = defineProps(['planid']); // Vue 3 + uni-app 支持
... ... @@ -304,6 +310,17 @@ const openArrageClass = () => {
})
}
// 开始训练
const startTraining = (templateId) => {
trainingStore.isSystem = 1;
uni.navigateTo({
url: `/pages4/pages/xunji/xunji-dongzuo-lianxi?id=${templateId}&type=3`,
});
console.log('打印传递给动作训练页面的模板id', templateId);
};
//查看模板详情
const openTemplateDatil = (templateId, dateArr) => {
console.log('templateId=', templateId);
... ...