This commit is contained in:
2026-09-10 15:10:21 +07:00
parent 35566475ce
commit 27b5eb2da6
43 changed files with 59 additions and 53 deletions
+12 -7
View File
@@ -4,7 +4,7 @@ import { Icon } from '@vicons/utils'
import { NButton, NTag } from 'naive-ui'
import { NCard, NFlex, NInput, NInputNumber, NModal, NQrCode, NSpace, NText } from 'naive-ui'
import { useMessage } from 'naive-ui'
import { ref } from 'vue'
import { computed, ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { getAuthClient } from '@/api/auth_client'
@@ -61,6 +61,11 @@ const mapItems = ref<MapItem[]>([])
const mapSaving = ref(false)
const screenVolume = ref(25)
const screenPosition = ref(0)
const currentScreenMode = computed<ScreenMode | undefined>(() => {
const modes = screens.value.map((screen) => screen.mode).filter(Boolean)
if (!modes.length || modes.some((mode) => mode !== modes[0])) return undefined
return modes[0] as ScreenMode
})
const mapScale = ref(1)
const mapOffset = ref({ x: 0, y: 0 })
let dragState: { item: MapItem; startX: number; startY: number; itemX: number; itemY: number } | undefined
@@ -635,12 +640,12 @@ useSimplePolling(() => {
</n-flex>
</div>
<n-space class="screen-mode-controls">
<n-button size="small" @click="setScreenMode('SCREEN_MODE_COVER')">Обложка</n-button>
<n-button size="small" @click="setScreenMode('SCREEN_MODE_INTRO')">Введение</n-button>
<n-button size="small" @click="setScreenMode('SCREEN_MODE_INTRO_DONE')">Успехов</n-button>
<n-button size="small" @click="setScreenMode('SCREEN_MODE_CONCLUSION')">Закрывашка</n-button>
<n-button size="small" @click="setScreenMode('SCREEN_MODE_CONCLUSION_DONE')">Спасибо за игру!</n-button>
<n-button v-if="game.status === 'finish'" size="small" @click="setScreenMode('SCREEN_MODE_RESULTS')">Результаты</n-button>
<n-button size="small" :type="currentScreenMode === 'SCREEN_MODE_COVER' ? 'primary' : 'default'" @click="setScreenMode('SCREEN_MODE_COVER')">Обложка</n-button>
<n-button size="small" :type="currentScreenMode === 'SCREEN_MODE_INTRO' ? 'primary' : 'default'" @click="setScreenMode('SCREEN_MODE_INTRO')">Введение</n-button>
<n-button size="small" :type="currentScreenMode === 'SCREEN_MODE_INTRO_DONE' ? 'primary' : 'default'" @click="setScreenMode('SCREEN_MODE_INTRO_DONE')">Успехов</n-button>
<n-button size="small" :type="currentScreenMode === 'SCREEN_MODE_CONCLUSION' ? 'primary' : 'default'" @click="setScreenMode('SCREEN_MODE_CONCLUSION')">Закрывашка</n-button>
<n-button size="small" :type="currentScreenMode === 'SCREEN_MODE_CONCLUSION_DONE' ? 'primary' : 'default'" @click="setScreenMode('SCREEN_MODE_CONCLUSION_DONE')">Спасибо за игру!</n-button>
<n-button v-if="game.status === 'finish'" size="small" :type="currentScreenMode === 'SCREEN_MODE_RESULTS' ? 'primary' : 'default'" @click="setScreenMode('SCREEN_MODE_RESULTS')">Результаты</n-button>
</n-space>
<n-space class="screen-mode-controls">
<n-button size="small" @click="sendScreenCommand('SCREEN_COMMAND_PLAY')">Запуск</n-button>