From 58a7bb2017cb94c5b8a6a6010293d00708c71a35 Mon Sep 17 00:00:00 2001 From: zhangyibo95 <690096405@qq.com> Date: Thu, 9 Jul 2026 18:29:04 +0800 Subject: [PATCH] =?UTF-8?q?update:=E4=BC=98=E5=8C=96=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E7=BB=83=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis.js | 4 ++-- src/components/ShootProgress.vue | 2 +- src/pages/first-try.vue | 15 +++++++++++++++ src/pages/practise-one.vue | 15 +++++++++++++++ src/pages/practise-two.vue | 15 +++++++++++++++ 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/apis.js b/src/apis.js index baeff6a..e1357b6 100644 --- a/src/apis.js +++ b/src/apis.js @@ -273,8 +273,8 @@ export const createPractiseV2API = (arrows, time, target, deviceId) => { }, PRACTICE_BASE_URL); }; -export const startPractiseAPI = () => { - return request("POST", "/user/practice/begin"); +export const startPractiseAPI = (id) => { + return request("POST", "/user/practice/begin", { id }); }; export const endPractiseAPI = () => { diff --git a/src/components/ShootProgress.vue b/src/components/ShootProgress.vue index 6d5f401..f5b24ba 100644 --- a/src/components/ShootProgress.vue +++ b/src/components/ShootProgress.vue @@ -155,7 +155,7 @@ async function onReceiveMessage(msg) { } let key = []; key.push(arrow.ring ? `${arrow.ringX ? "X" : arrow.ring}环` : "未上靶"); - if (arrow.angle !== null) + if (arrow.angle) key.push(`向${getDirectionText(arrow.angle)}调整`); audioManager.play(key, false); } else if (msg.type === MESSAGETYPESV2.HalfRest) { diff --git a/src/pages/first-try.vue b/src/pages/first-try.vue index d17ff8e..2621c94 100644 --- a/src/pages/first-try.vue +++ b/src/pages/first-try.vue @@ -16,6 +16,7 @@ import audioManager from "@/audioManager"; import { createPractiseAPI, getPractiseAPI, + startPractiseAPI, laserAimAPI, laserCloseAPI, } from "@/apis"; @@ -134,6 +135,18 @@ const onOver = async (message) => { start.value = false; }; +const beginPractise = async () => { + if (!practiseId.value) { + uni.showToast({ + title: "练习未创建,请重试", + icon: "none", + }); + return false; + } + await startPractiseAPI(practiseId.value); + return true; +}; + async function onReceiveMessage(msg) { if (msg.type === MESSAGETYPESV2.ShootResult) { isSvip.value = msg.sVip === true; @@ -229,6 +242,8 @@ const nextStep = async () => { title.value = "-小试牛刀"; } else if (step.value === 4) { title.value = "小试牛刀"; + const result = await beginPractise(); + if (!result) return; scores.value = []; isSvip.value = false; step.value = 5; diff --git a/src/pages/practise-one.vue b/src/pages/practise-one.vue index 6b9ed21..32cf7e3 100644 --- a/src/pages/practise-one.vue +++ b/src/pages/practise-one.vue @@ -16,6 +16,7 @@ import audioManager from "@/audioManager"; import { createPractiseAPI, getPractiseAPI, + startPractiseAPI, } from "@/apis"; import { connectMatchWebSocket, closeMatchWebSocket } from "@/matchWebsocket"; import { sharePractiseData } from "@/canvas"; @@ -71,7 +72,21 @@ const createPractise = async () => { return result; }; +const beginPractise = async () => { + if (!practiseId.value) { + uni.showToast({ + title: "练习未创建,请重试", + icon: "none", + }); + return false; + } + await startPractiseAPI(practiseId.value); + return true; +}; + const onReady = async () => { + const result = await beginPractise(); + if (!result) return; scores.value = []; isSvip.value = false; xRingStreak.value = 0; // 新一局开始,重置 X 环连续计数 diff --git a/src/pages/practise-two.vue b/src/pages/practise-two.vue index 5113f9d..7906200 100644 --- a/src/pages/practise-two.vue +++ b/src/pages/practise-two.vue @@ -15,6 +15,7 @@ import audioManager from "@/audioManager"; import { createPractiseAPI, getPractiseAPI, + startPractiseAPI, } from "@/apis"; import { connectMatchWebSocket, closeMatchWebSocket } from "@/matchWebsocket"; import { sharePractiseData } from "@/canvas"; @@ -70,7 +71,21 @@ const createPractise = async () => { return result; }; +const beginPractise = async () => { + if (!practiseId.value) { + uni.showToast({ + title: "练习未创建,请重试", + icon: "none", + }); + return false; + } + await startPractiseAPI(practiseId.value); + return true; +}; + const onReady = async () => { + const result = await beginPractise(); + if (!result) return; scores.value = []; isSvip.value = false; xRingStreak.value = 0; // 新一局开始,重置 X 环连续计数