From 9b899bbc822f91d402ebae46965f857a41185d9c Mon Sep 17 00:00:00 2001 From: yixu Date: Thu, 25 Dec 2025 21:14:52 +0800 Subject: [PATCH] update --- src/components/GamePage.vue | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/components/GamePage.vue b/src/components/GamePage.vue index 6cb6893..3f4a900 100644 --- a/src/components/GamePage.vue +++ b/src/components/GamePage.vue @@ -91,19 +91,31 @@ const circularArea = computed(() => { }) // 点击隐藏区域显示抽奖弹窗 +//防止多次点击 +const isRequesting = ref(false) const handleShowLottery = async () => { + // 如果已经在请求中,直接忽略后续点击 + if (isRequesting.value) return + isRequesting.value = true; + const loading = weui.loading() globalToastEvent.emit(ToastType.SHOW_LOTTERY); // 点击隐藏区域后,游戏结束,再次调用game log接口 - const logId = globalStore.current_game_log_id; - let gameLogRes = await Request("game/log", { source: globalStore.game_id, log_id: logId }, "POST"); - if (!gameLogRes || !gameLogRes.res || (gameLogRes.res.status !== 200 && gameLogRes.res.status !== 201)) { - emit('close') + try { + const logId = globalStore.current_game_log_id + const gameLogRes = await Request("game/log", { source: globalStore.game_id, log_id: logId }, "POST") + + if (!gameLogRes || !gameLogRes.res || (gameLogRes.res.status !== 200 && gameLogRes.res.status !== 201)) { + emit('close') + return + } else { + console.log(gameLogRes) + } + } finally { + // 不管成功失败,都关闭 loading,并允许再次点击 loading.hide() - return - } else { - console.log(gameLogRes) + isRequesting.value = false } }