generated from VLADIMIR/template_frontend
up
This commit is contained in:
@@ -212,6 +212,19 @@ async function prepareScreen() {
|
|||||||
message.warning('Полноэкранный режим недоступен в этом браузере')
|
message.warning('Полноэкранный режим недоступен в этом браузере')
|
||||||
}
|
}
|
||||||
prepared.value = true
|
prepared.value = true
|
||||||
|
await nextTick()
|
||||||
|
for (const media of [introAudioElement.value, conclusionVideoElement.value]) {
|
||||||
|
if (!media) continue
|
||||||
|
media.muted = true
|
||||||
|
try {
|
||||||
|
await media.play()
|
||||||
|
media.pause()
|
||||||
|
media.currentTime = 0
|
||||||
|
media.muted = !state.value?.soundEnabled
|
||||||
|
} catch {
|
||||||
|
mediaError.value = 'Браузер не разрешил подготовить воспроизведение на этом устройстве.'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
@@ -272,21 +285,21 @@ onUnmounted(() => {
|
|||||||
</div>
|
</div>
|
||||||
<div v-else class="screen-content" :style="screenBackground">
|
<div v-else class="screen-content" :style="screenBackground">
|
||||||
<p v-if="mediaError" class="media-error">{{ mediaError }}</p>
|
<p v-if="mediaError" class="media-error">{{ mediaError }}</p>
|
||||||
<div v-if="screenMode === 'SCREEN_MODE_INTRO' && state.introAudio" class="screen-media">
|
<div v-if="state.introAudio" v-show="screenMode === 'SCREEN_MODE_INTRO'" class="screen-media">
|
||||||
<audio ref="introAudioElement" :src="introAudio" :muted="!state.soundEnabled" controls />
|
<audio ref="introAudioElement" :src="introAudio" :muted="!state.soundEnabled" controls />
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_CONCLUSION' && state.conclusionVideo" class="conclusion-screen">
|
<div v-if="state.conclusionVideo" v-show="screenMode === 'SCREEN_MODE_CONCLUSION'" class="conclusion-screen">
|
||||||
<video ref="conclusionVideoElement" :src="conclusionVideo" :muted="!state.soundEnabled" playsinline />
|
<video ref="conclusionVideoElement" :src="conclusionVideo" :muted="!state.soundEnabled" playsinline />
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_CONCLUSION'" class="screen-message">Видео закрывашки не задано</div>
|
<div v-if="screenMode === 'SCREEN_MODE_CONCLUSION' && !state.conclusionVideo" class="screen-message">Видео закрывашки не задано</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_INTRO_DONE'" class="screen-message">Успехов</div>
|
<div v-if="screenMode === 'SCREEN_MODE_INTRO_DONE'" class="screen-message">Успехов</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_CONCLUSION_DONE'" class="screen-message">Спасибо за игру!</div>
|
<div v-if="screenMode === 'SCREEN_MODE_CONCLUSION_DONE'" class="screen-message">Спасибо за игру!</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_TEXT'" class="screen-message">{{ state.text }}</div>
|
<div v-if="screenMode === 'SCREEN_MODE_TEXT'" class="screen-message">{{ state.text }}</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_TIMER'" class="timer-screen">
|
<div v-if="screenMode === 'SCREEN_MODE_TIMER'" class="timer-screen">
|
||||||
<h1 class="timer-label">{{ state.timerLabel || 'Перерыв' }}</h1>
|
<h1 class="timer-label">{{ state.timerLabel || 'Перерыв' }}</h1>
|
||||||
<div class="timer-value">{{ timerDisplay }}</div>
|
<div class="timer-value">{{ timerDisplay }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="screenMode === 'SCREEN_MODE_RESULTS'" ref="resultsContainer" class="results-screen">
|
<div v-if="screenMode === 'SCREEN_MODE_RESULTS'" ref="resultsContainer" class="results-screen">
|
||||||
<h1>Результаты</h1>
|
<h1>Результаты</h1>
|
||||||
<table>
|
<table>
|
||||||
<thead><tr><th>Место</th><th>Команда</th><th v-for="question in resultQuestions" :key="question.code">{{ question.code }}</th><th>Сумма</th><th>Ходы</th></tr></thead>
|
<thead><tr><th>Место</th><th>Команда</th><th v-for="question in resultQuestions" :key="question.code">{{ question.code }}</th><th>Сумма</th><th>Ходы</th></tr></thead>
|
||||||
@@ -303,7 +316,7 @@ onUnmounted(() => {
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="screen-cover">
|
<div v-if="screenMode === 'SCREEN_MODE_COVER'" class="screen-cover">
|
||||||
<img v-if="state.coverImage" :src="state.coverImage" class="cover-image" alt="Обложка дела" />
|
<img v-if="state.coverImage" :src="state.coverImage" class="cover-image" alt="Обложка дела" />
|
||||||
<div v-if="!prepared" class="cover-controls">
|
<div v-if="!prepared" class="cover-controls">
|
||||||
<n-button type="primary" @click="prepareScreen">Подготовить экран</n-button>
|
<n-button type="primary" @click="prepareScreen">Подготовить экран</n-button>
|
||||||
|
|||||||
Reference in New Issue
Block a user