From 18afba01ec7590aa168fbdac124a06babf3926ba Mon Sep 17 00:00:00 2001
From: zhangyibo95 <690096405@qq.com>
Date: Tue, 26 May 2026 11:38:49 +0800
Subject: [PATCH] =?UTF-8?q?update:=E6=96=B0=E5=A2=9E=E5=9F=BA=E7=A1=80?=
=?UTF-8?q?=E8=AE=AD=E7=BB=83=E5=85=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../training/TrainingDifficultyBadge.vue | 327 ------------------
.../TrainingDifficultyPreviewCard.vue | 86 -----
.../TrainingDifficultyStartButton.vue | 81 -----
src/pages/training/index.vue | 61 +++-
4 files changed, 42 insertions(+), 513 deletions(-)
delete mode 100644 src/components/training/TrainingDifficultyBadge.vue
delete mode 100644 src/components/training/TrainingDifficultyPreviewCard.vue
delete mode 100644 src/components/training/TrainingDifficultyStartButton.vue
diff --git a/src/components/training/TrainingDifficultyBadge.vue b/src/components/training/TrainingDifficultyBadge.vue
deleted file mode 100644
index 01ee967..0000000
--- a/src/components/training/TrainingDifficultyBadge.vue
+++ /dev/null
@@ -1,327 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ node.label }}
-
-
-
-
-
-
diff --git a/src/components/training/TrainingDifficultyPreviewCard.vue b/src/components/training/TrainingDifficultyPreviewCard.vue
deleted file mode 100644
index d8fa3a8..0000000
--- a/src/components/training/TrainingDifficultyPreviewCard.vue
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
- {{ title }}
-
-
- {{ line }}
-
-
-
-
-
-
-
diff --git a/src/components/training/TrainingDifficultyStartButton.vue b/src/components/training/TrainingDifficultyStartButton.vue
deleted file mode 100644
index 536c34f..0000000
--- a/src/components/training/TrainingDifficultyStartButton.vue
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/pages/training/index.vue b/src/pages/training/index.vue
index c09441a..2440a50 100644
--- a/src/pages/training/index.vue
+++ b/src/pages/training/index.vue
@@ -2,6 +2,7 @@
import { nextTick, onMounted, ref } from "vue";
import { onShow } from "@dcloudio/uni-app";
import Container from "@/components/Container.vue";
+import TargetPicker from "@/components/TargetPicker.vue";
import { getPersonalTrainingAPI } from "@/apis";
const checkedIcon = "../../static/training-home/done.png";
@@ -57,6 +58,7 @@ const createDefaultTrainingData = () => ({
const trainingData = ref(createDefaultTrainingData());
const pageMounted = ref(false);
+const showRoutineTargetPicker = ref(false);
const trainingRadarCanvasId = "training-home-radar";
const radarImageWidth = 225;
const radarImageHeight = 224;
@@ -111,10 +113,6 @@ const getTrainingTitleImage = (item = {}) =>
const getTrainingMode = (item = {}) =>
trainingModeRouteMap[item.id] || item.id || "";
-const getFeaturedItem = () =>
- trainingData.value.training_items.find((item) => item.id === "base") ||
- trainingData.value.training_items[0];
-
const getRadarPoint = (centerX, centerY, radiusX, radiusY, angle) => ({
x: centerX + radiusX * Math.cos(angle),
y: centerY + radiusY * Math.sin(angle),
@@ -243,9 +241,15 @@ const openTrainingItem = (item = {}) => {
});
};
-const openFeaturedTraining = () => {
- const item = getFeaturedItem();
- if (item) openTrainingItem(item);
+const openRoutineTraining = () => {
+ showRoutineTargetPicker.value = true;
+};
+
+const handleRoutineTargetConfirm = (target) => {
+ showRoutineTargetPicker.value = false;
+ uni.navigateTo({
+ url: `/pages/practise-one?target=${target}`,
+ });
};
// 首次进入页面时拉取数据并完成雷达图初始化。
@@ -427,22 +431,22 @@ onShow(async () => {
-
+
+
-
- {{ getLevelText(getFeaturedItem()) }}
-
+ 常规训练
+ 12箭练习
{
+
@@ -756,33 +765,47 @@ onShow(async () => {
width: 100%;
height: 150rpx;
margin-top: 70rpx;
+ border-radius: 16rpx;
+ overflow: hidden;
}
.featured-card-bg {
width: 100%;
}
+.featured-card-mask {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 278rpx;
+ height: 150rpx;
+ background: linear-gradient(90deg, #ffdaa0 0%, #f5c580 74%, rgba(245, 197, 128, 0) 100%);
+}
+
.featured-card-copy {
position: absolute;
- left: 160rpx;
- top: 68rpx;
+ left: 30rpx;
+ top: 34rpx;
display: flex;
- align-items: center;
+ flex-direction: column;
}
.featured-card-title {
+ display: block;
color: #895409;
- font-size: 28rpx;
+ font-size: 34rpx;
font-family: "AlimamaShuHeiTi-Bold", "PingFang SC", sans-serif;
font-weight: 700;
- line-height: 32rpx;
+ line-height: 42rpx;
}
-.featured-card-progress {
- margin-left: 18rpx;
+.featured-card-subtitle {
+ display: block;
+ margin-top: 10rpx;
color: #895409;
font-size: 22rpx;
line-height: 32rpx;
+ opacity: 0.72;
}
.mode-grid {