diff --git a/src/components/BowTarget.vue b/src/components/BowTarget.vue index 5c2ceea..65dd076 100644 --- a/src/components/BowTarget.vue +++ b/src/components/BowTarget.vue @@ -77,6 +77,7 @@ function calcRealY(num) { } .target { position: relative; + overflow: hidden; } .target > image:last-child { width: 100%; diff --git a/src/pages/practise-one.vue b/src/pages/practise-one.vue index 6300201..75ed6ba 100644 --- a/src/pages/practise-one.vue +++ b/src/pages/practise-one.vue @@ -13,10 +13,10 @@ import websocket from "@/websocket"; const start = ref(false); const showScore = ref(false); const scores = ref([]); +const total = 12; const onReady = async () => { - const result = await createPractiseAPI(12); - console.log("result", result); + const result = await createPractiseAPI(total); start.value = true; const token = uni.getStorageSync("token"); @@ -25,8 +25,7 @@ const onReady = async () => { messages.forEach((msg) => { if (msg.constructor === MESSAGETYPES.ShootSyncMeArrowID) { scores.value.push(msg.target); - console.log("msg:", msg.target); - if (scores.value.length === 12) { + if (scores.value.length === total) { showScore.value = true; websocket.closeWebSocket(); } @@ -46,7 +45,7 @@ onUnmounted(() => {
{ /> -import { ref } from "vue"; +import { ref, onUnmounted } from "vue"; import AppBackground from "@/components/AppBackground.vue"; import Header from "@/components/Header.vue"; import ShootProgress from "@/components/ShootProgress.vue"; import BowTarget from "@/components/BowTarget.vue"; import ScorePanel from "@/components/ScorePanel.vue"; import ScoreResult from "@/components/ScoreResult.vue"; -const scores = ref(new Array(32).fill(9)); +import SButton from "@/components/SButton.vue"; +import { createPractiseAPI } from "@/apis"; +import { MESSAGETYPES } from "@/constants"; +import websocket from "@/websocket"; +const start = ref(false); const showScore = ref(false); +const scores = ref([]); +const total = 36; -setTimeout(() => { - showScore.value = true; -}, 2000); +const onReady = async () => { + const result = await createPractiseAPI(total); + start.value = true; + const token = uni.getStorageSync("token"); + + websocket.createWebSocket(token, (result) => { + const messages = JSON.parse(result).data.updates || []; + messages.forEach((msg) => { + if (msg.constructor === MESSAGETYPES.ShootSyncMeArrowID) { + scores.value.push(msg.target); + if (scores.value.length === total) { + showScore.value = true; + websocket.closeWebSocket(); + } + } + }); + }); +}; + +onUnmounted(() => { + websocket.closeWebSocket(); +});