update
This commit is contained in:
parent
0742f742d9
commit
b8d46d0021
@ -1,14 +1,5 @@
|
|||||||
@import './base.css';
|
@import './base.css';
|
||||||
|
|
||||||
.header-block {
|
|
||||||
background-color: var(--main-color);
|
|
||||||
font-size: large;
|
|
||||||
color: white;
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 10px 0 10px 16px;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-custom {
|
.input-custom {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
box-sizing: border-box; /* обязательно! */
|
box-sizing: border-box; /* обязательно! */
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
import router from '@/router';
|
import router from '@/router';
|
||||||
import type { Game, Teams } from './models';
|
import type { Game, Team, Teams } from './models';
|
||||||
import { apiGetTeams, apiAddTeam, apiGetGame, apiStartGame, apiStopGame, apiGaveApplication, apiDownloadQrCodesFile } from './client';
|
import { apiGetTeams, apiAddTeam, apiGetGame, apiStartGame, apiStopGame, apiGaveApplication, apiDownloadQrCodesFile } from './client';
|
||||||
import TeamQRCode from '../components/TeamQRCode.vue'
|
import TeamQRCode from '../components/TeamQRCode.vue'
|
||||||
|
import HeaderBlock from './HeaderBlock.vue';
|
||||||
|
|
||||||
const qrurl = ref("-")
|
const qrurl = ref("-")
|
||||||
const qrteam = ref("-")
|
const qrteam = ref("-")
|
||||||
@ -42,12 +43,17 @@ async function getGame() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function compareTeams(a: Team, b: Team): number {
|
||||||
|
return b.applications.length - a.applications.length
|
||||||
|
}
|
||||||
|
|
||||||
let intervalId = 0
|
let intervalId = 0
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
teams.value = await apiGetTeams()
|
teams.value = await apiGetTeams()
|
||||||
|
|
||||||
intervalId = setInterval(async () => {
|
intervalId = setInterval(async () => {
|
||||||
teams.value = await apiGetTeams()
|
teams.value = await apiGetTeams()
|
||||||
|
teams.value.teams.sort(compareTeams)
|
||||||
await getGame()
|
await getGame()
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|
||||||
@ -59,15 +65,16 @@ onMounted(async () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="header-block">
|
<HeaderBlock>
|
||||||
<div>
|
<div>
|
||||||
Вечерний детектив - {{ gameState }}
|
Вечерний детектив - {{ gameState }}
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons-block">
|
<div class="buttons-block">
|
||||||
<button v-on:click="startGame" class="button-menu button-custom-inline">Начать</button>
|
<button v-on:click="startGame" class="button-menu button-custom-inline">Начать</button>
|
||||||
<button v-on:click="stopGame" class="button-menu button-custom-inline">Остановить</button>
|
<button v-on:click="stopGame" class="button-menu button-custom-inline">Остановить</button>
|
||||||
|
<button v-on:click="apiDownloadQrCodesFile" class="button-menu button-custom-inline">Скачать qr‑ы</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</HeaderBlock>
|
||||||
|
|
||||||
<TeamQRCode :data="qrurl" :title="qrteam" />
|
<TeamQRCode :data="qrurl" :title="qrteam" />
|
||||||
|
|
||||||
@ -78,7 +85,7 @@ onMounted(async () => {
|
|||||||
<th>Название команды</th>
|
<th>Название команды</th>
|
||||||
<th>Поездки</th>
|
<th>Поездки</th>
|
||||||
<th>Приложения</th>
|
<th>Приложения</th>
|
||||||
<th><button v-on:click="apiDownloadQrCodesFile" class="button-custom-inline">Скачать qr‑ы</button></th>
|
<th>Qr</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -1,11 +1,32 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import HeaderBlock from './HeaderBlock.vue';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<p>Я редактор сценариев</p>
|
<HeaderBlock>
|
||||||
|
<div>
|
||||||
|
Редактор сценариев
|
||||||
|
</div>
|
||||||
|
</HeaderBlock>
|
||||||
|
|
||||||
|
<div class="three-columns">
|
||||||
|
<div class="column left">Левая (узкая)</div>
|
||||||
|
<div class="column center">Центральная (широкая)</div>
|
||||||
|
<div class="column right">Правая (узкая)</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.three-columns {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 2fr 1fr; /* Соотношение 1:2:1 */
|
||||||
|
gap: 20px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column {
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
padding: 20px;
|
||||||
|
margin: 5px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import HeaderBlock from './HeaderBlock.vue';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<p>Я каталог игр</p>
|
<HeaderBlock>
|
||||||
|
<div>
|
||||||
|
Каталог игр
|
||||||
|
</div>
|
||||||
|
</HeaderBlock>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
20
src/components/HeaderBlock.vue
Normal file
20
src/components/HeaderBlock.vue
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="header-block">
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.header-block {
|
||||||
|
background-color: var(--main-color);
|
||||||
|
font-size: large;
|
||||||
|
color: white;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 10px 0 10px 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
</style>
|
@ -20,7 +20,7 @@
|
|||||||
<style scoped>
|
<style scoped>
|
||||||
.qr {
|
.qr {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 80px;
|
top: 130px;
|
||||||
right: 30px;
|
right: 30px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user