From 724fe9b1983a0c6093ae46cd8b1debe1cb7be43a Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sat, 31 May 2025 04:06:05 +0700 Subject: [PATCH] add game --- src/components/AdminWindow.vue | 63 ++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/src/components/AdminWindow.vue b/src/components/AdminWindow.vue index fc6ba6d..225a498 100644 --- a/src/components/AdminWindow.vue +++ b/src/components/AdminWindow.vue @@ -25,6 +25,8 @@ const qrurl = ref("-") const qrteam = ref("-") + const gameState = ref("") + const teams = ref({teams: []}) function getTeams() { @@ -90,11 +92,57 @@ } }); + function getGame() { + fetch( + getApiUrl("/game") + ) + .then(response => response.json()) + .then(data => { + if (data.state === "NEW") { + gameState.value = "Игра ещё не началась" + } + if (data.state === "RUN") { + gameState.value = "Игра идет" + } + if (data.state === "STOP") { + gameState.value = "Игра остановлена" + } + }) + .catch(error => { + console.error('Ошибка:', error) + }); + } + + function startGame() { + gameState.value = "Загрузка..." + fetch( + getApiUrl("/game/start"), + {method: "POST"} + ) + .catch(error => { + console.error('Ошибка:', error) + }); + } + + function stopGame() { + gameState.value = "Загрузка..." + fetch( + getApiUrl("/game/stop"), + {method: "POST"} + ) + .catch(error => { + console.error('Ошибка:', error) + }); + } + let intervalId = 0 onMounted(() => { getTeams() - intervalId = setInterval(() => {getTeams()}, 2000); + intervalId = setInterval(() => { + getTeams() + getGame() + }, 2000); router.beforeEach((to, from, next) => { clearInterval(intervalId); @@ -105,7 +153,7 @@