diff --git a/src/components/AppBackground.vue b/src/components/AppBackground.vue index 6a31457..68c0cec 100644 --- a/src/components/AppBackground.vue +++ b/src/components/AppBackground.vue @@ -69,6 +69,18 @@ const props = defineProps({ src="@/static/app-bg7.png" mode="widthFix" /> + + diff --git a/src/pages.json b/src/pages.json index 1659b36..4ba6bae 100644 --- a/src/pages.json +++ b/src/pages.json @@ -117,13 +117,16 @@ { "path": "pages/mine-bow-data" }, - { - "path": "pages/training/difficulty" - }, - { - "path": "pages/training/index" - } - ], + { + "path": "pages/training/difficulty" + }, + { + "path": "pages/training/index" + }, + { + "path": "pages/training/practise-one" + } + ], "globalStyle": { "backgroundColor": "@bgColor", "backgroundColorBottom": "@bgColorBottom", diff --git a/src/pages/training/components/BowTarget.vue b/src/pages/training/components/BowTarget.vue new file mode 100644 index 0000000..a85473f --- /dev/null +++ b/src/pages/training/components/BowTarget.vue @@ -0,0 +1,456 @@ + + + + + diff --git a/src/pages/training/components/BubbleTip.vue b/src/pages/training/components/BubbleTip.vue new file mode 100644 index 0000000..4fdfdb6 --- /dev/null +++ b/src/pages/training/components/BubbleTip.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/pages/training/components/ShootProgress.vue b/src/pages/training/components/ShootProgress.vue new file mode 100644 index 0000000..4915f21 --- /dev/null +++ b/src/pages/training/components/ShootProgress.vue @@ -0,0 +1,379 @@ + + + + + diff --git a/src/pages/training/components/TestDistance.vue b/src/pages/training/components/TestDistance.vue new file mode 100644 index 0000000..654af6d --- /dev/null +++ b/src/pages/training/components/TestDistance.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/pages/training/difficulty.vue b/src/pages/training/difficulty.vue index 2566af8..9bbc594 100644 --- a/src/pages/training/difficulty.vue +++ b/src/pages/training/difficulty.vue @@ -2,6 +2,7 @@ import { computed, nextTick, ref } from "vue"; import { onLoad } from "@dcloudio/uni-app"; import Container from "@/components/Container.vue"; +import TargetPicker from "@/components/TargetPicker.vue"; import TrainingDifficultyBadge from "@/components/training/TrainingDifficultyBadge.vue"; import TrainingDifficultyPreviewCard from "@/components/training/TrainingDifficultyPreviewCard.vue"; import TrainingDifficultyStartButton from "@/components/training/TrainingDifficultyStartButton.vue"; @@ -41,6 +42,7 @@ const emptyDifficulty = { const modeKey = ref(defaultModeKey); const unlockedDifficultyId = ref(defaultUnlockedDifficultyId); const selectedDifficultyId = ref(defaultUnlockedDifficultyId); +const showTargetPicker = ref(false); const nodesScrollTop = ref(0); const nodesScrollWithAnimation = ref(false); @@ -318,7 +320,11 @@ const initPageState = (options = {}) => { }); }; -const saveTrainingContext = () => { +const resolveTargetPaperType = (target) => { + return Number(target) === 1 ? "20厘米全环靶" : "40厘米全环靶"; +}; + +const saveTrainingContext = (target) => { const difficulty = selectedDifficulty.value; if (!difficulty.id) { @@ -330,7 +336,9 @@ const saveTrainingContext = () => { trainingTitle: pageConfig.value.title, difficultyId: difficulty.id, difficultyLabel: difficulty.label, - targetPaperType: difficulty.targetPaperType, + targetPaperType: target + ? resolveTargetPaperType(target) + : difficulty.targetPaperType, }); }; @@ -369,6 +377,26 @@ const handleStart = () => { }); }; +const openTargetPicker = () => { + if (!selectedDifficulty.value.id) { + return; + } + + showTargetPicker.value = true; +}; + +const handleTargetConfirm = (target) => { + showTargetPicker.value = false; + saveTrainingContext(target); + // uni.showToast({ + // title: `${selectedDifficulty.value.title} 即将开始`, + // icon: "none", + // }); + + uni.navigateTo({ + url: `/pages/training/practise-one?target=${target}`, + }); +}; onLoad((options = {}) => { initPageState(options); @@ -424,10 +452,15 @@ onLoad((options = {}) => { + diff --git a/src/pages/training/practise-one.vue b/src/pages/training/practise-one.vue new file mode 100644 index 0000000..ffc02e2 --- /dev/null +++ b/src/pages/training/practise-one.vue @@ -0,0 +1,199 @@ + + + + + diff --git a/src/static/app-bg8.png b/src/static/app-bg8.png new file mode 100644 index 0000000..9495c1b Binary files /dev/null and b/src/static/app-bg8.png differ diff --git a/src/static/app-bg9.png b/src/static/app-bg9.png new file mode 100644 index 0000000..8cba031 Binary files /dev/null and b/src/static/app-bg9.png differ diff --git a/src/static/training-difficulty-design/par-bg.png b/src/static/training-difficulty-design/par-bg.png new file mode 100644 index 0000000..fa9bfb4 Binary files /dev/null and b/src/static/training-difficulty-design/par-bg.png differ diff --git a/src/static/training-difficulty-design/par-icon.png b/src/static/training-difficulty-design/par-icon.png new file mode 100644 index 0000000..0a950a4 Binary files /dev/null and b/src/static/training-difficulty-design/par-icon.png differ diff --git a/src/static/training-difficulty-design/par-star.png b/src/static/training-difficulty-design/par-star.png new file mode 100644 index 0000000..22fec68 Binary files /dev/null and b/src/static/training-difficulty-design/par-star.png differ diff --git a/src/static/training-difficulty-design/text-icon-cgxl.png b/src/static/training-difficulty-design/text-icon-cgxl.png new file mode 100644 index 0000000..d84fa47 Binary files /dev/null and b/src/static/training-difficulty-design/text-icon-cgxl.png differ