From 5504e96696e5c21bdc9ee5530f2a66eb8223f9dd Mon Sep 17 00:00:00 2001 From: hsyhhssyy Date: Sat, 22 Jun 2024 14:17:38 +0000 Subject: [PATCH] store --- src/desktop/views/room/WaitingRoomBase.vue | 8 ++ src/mobile/components/ChatBoard.vue | 4 +- src/mobile/views/GameBase.vue | 3 + src/mobile/views/game/CypherChallenge.vue | 85 +++++++++------------- src/mobile/views/game/SchulteGrid.vue | 6 ++ src/mobile/views/game/SkinGuess.vue | 10 +++ src/mobile/views/room/WaitingRoomBase.vue | 34 +++++++-- 7 files changed, 91 insertions(+), 59 deletions(-) diff --git a/src/desktop/views/room/WaitingRoomBase.vue b/src/desktop/views/room/WaitingRoomBase.vue index 4ef7fb3..3e7bd01 100644 --- a/src/desktop/views/room/WaitingRoomBase.vue +++ b/src/desktop/views/room/WaitingRoomBase.vue @@ -190,6 +190,10 @@ async function gameStartedListener(response: SignalrResponse) { return } + await jumpToGameRoom() +} + +async function jumpToGameRoom(){ if (gameRoomData.value?.gameType) { const gameData = gameTypeMap.value[gameRoomData.value?.gameType] await router.push(gameData.route + "game/" + roomId) @@ -258,7 +262,11 @@ watch( ) onMounted(async () => { + gameRoomData.value = await getGame(roomId) + if(gameRoomData.value?.isStarted) { + await jumpToGameRoom() + } }) onUnmounted(async () => { diff --git a/src/mobile/components/ChatBoard.vue b/src/mobile/components/ChatBoard.vue index c0ce3de..810b919 100644 --- a/src/mobile/components/ChatBoard.vue +++ b/src/mobile/components/ChatBoard.vue @@ -127,7 +127,9 @@ async function sendMessage() { inputMessage.value = '' } -async function chatListener(response: SignalrResponse) { +async function chatListener(response: SignalrResponse) { + if (response.GameId != props.roomId) return //多标签页环境可能出现多个房间同开的情况 + const player = props.players.find((p) => p.id === response.UserId) if (player) { diff --git a/src/mobile/views/GameBase.vue b/src/mobile/views/GameBase.vue index 639a964..e00dc30 100644 --- a/src/mobile/views/GameBase.vue +++ b/src/mobile/views/GameBase.vue @@ -79,6 +79,7 @@ async function endGame(){ } function gameCompletedListener(response: SignalrResponse) { + if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况 isCompleted.value = true } @@ -87,6 +88,8 @@ async function gameClosedListener(response: SignalrResponse) { } function gameInfoListener(response: SignalrResponse) { + if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况 + gameInfoData.value = response; if (isGameInfoReceiving.value == true) { isGameInfoReceiving.value = false diff --git a/src/mobile/views/game/CypherChallenge.vue b/src/mobile/views/game/CypherChallenge.vue index bba593e..8fa8d03 100644 --- a/src/mobile/views/game/CypherChallenge.vue +++ b/src/mobile/views/game/CypherChallenge.vue @@ -1,42 +1,40 @@