diff --git a/web/src/admin/components/system/ImageUploadField.vue b/web/src/admin/components/system/ImageUploadField.vue index 43c885c..65b5180 100644 --- a/web/src/admin/components/system/ImageUploadField.vue +++ b/web/src/admin/components/system/ImageUploadField.vue @@ -3,8 +3,8 @@ import { computed, onBeforeUnmount, ref, watch } from 'vue' import MxIcon from '../MxIcon.vue' import { adminApi } from '../../api/client' import { useToastStore } from '../../stores/toast' +import { resolveAssetUrl } from '@/shared' import { describeError } from './systemApi' -import { resolveAssetUrl } from './imagePath' /** * 图片字段:文本框(可手填 / 粘贴路径)+ 上传按钮 + 缩略图预览。 diff --git a/web/src/display/components/TopBar.vue b/web/src/display/components/TopBar.vue index 4f079fd..16eb28a 100644 --- a/web/src/display/components/TopBar.vue +++ b/web/src/display/components/TopBar.vue @@ -2,6 +2,7 @@ import { computed, onUnmounted, ref } from 'vue' import { formatClock } from '@/shared' import { useScoreboard } from '../useScoreboard' +import { isWindowed } from '../windowed' import OfflineBadge from './OfflineBadge.vue' const { settings, options } = useScoreboard() @@ -19,7 +20,18 @@ const subtitle = computed(() => display.value?.subtitle?.trim() ?? '') const host = computed(() => settings.value?.event.host?.trim() || '主办方待配置') const logo = computed(() => display.value?.logo?.trim() || '') const clock = computed(() => formatClock(now.value)) +// 单屏窗口化时用来分辨「这块屏是哪个实例」;现场展示(kiosk,或窗口化后按 F11 全屏)都不该出现。 +// 监听在 setup 阶段就挂上,onUnmounted 里摘掉,不引入额外 import。 +const fullscreen = ref(document.fullscreenElement !== null) +function onFullscreenChange(): void { + fullscreen.value = document.fullscreenElement !== null +} +document.addEventListener('fullscreenchange', onFullscreenChange) +onUnmounted(() => document.removeEventListener('fullscreenchange', onFullscreenChange)) + +// 实例/屏号都缺失时返回空串,模板的 v-if 顺带挡掉空元素。 const identity = computed(() => { + if (!isWindowed() || fullscreen.value) return '' const parts: string[] = [] if (options.value.instance !== null) parts.push(`实例 ${options.value.instance}`) if (options.value.screen !== null) parts.push(`屏 ${options.value.screen}`) diff --git a/web/src/display/components/pages/StandingsPage.vue b/web/src/display/components/pages/StandingsPage.vue index 0b22418..7e5305d 100644 --- a/web/src/display/components/pages/StandingsPage.vue +++ b/web/src/display/components/pages/StandingsPage.vue @@ -1,6 +1,6 @@