diff --git a/src/components/audio/GlobalAudioPlayerHost.vue b/src/components/audio/GlobalAudioPlayerHost.vue index d354765..48d7d6e 100644 --- a/src/components/audio/GlobalAudioPlayerHost.vue +++ b/src/components/audio/GlobalAudioPlayerHost.vue @@ -69,15 +69,21 @@ const handleToggle = () => { } const applyHostDisplayMode = () => { - if (!hasAudio.value || currentDisplayMode.value === 'expanded') { + if (!hasAudio.value) { return } - if (props.displayMode === 'mini' || props.displayMode === 'floating') { + if (currentDisplayMode.value !== props.displayMode) { player.setDisplayMode(props.displayMode) } } +const isCurrentH5Route = (route: string) => { + if (typeof window === 'undefined') return false + + return window.location.hash.replace(/^#/, '') === route +} + const handleStop = () => { player.stop() } @@ -109,6 +115,10 @@ const handleExpand = () => { return } + if (isCurrentH5Route(route)) { + return + } + uni.navigateTo({ url: route }) diff --git a/src/pages/exhibit/detail.vue b/src/pages/exhibit/detail.vue index 65f5e76..7202efd 100644 --- a/src/pages/exhibit/detail.vue +++ b/src/pages/exhibit/detail.vue @@ -301,7 +301,7 @@ const showAudioPlayer = computed(() => ( )) const isDetailAudioDockVisible = computed(() => ( exhibit.value.audio.status === 'playable' - && !showAudioPlayer.value + && !isCurrentDetailAudio.value && !detailAudioDockDismissed.value )) const audioDockTitle = computed(() => (