From 6c3da7769330c5899ed4d80adfa2569f3a6dcdf6 Mon Sep 17 00:00:00 2001
From: lyf <2514544224@qq.com>
Date: Wed, 15 Jul 2026 01:35:22 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=B2=A4=E8=AF=AD=E9=9F=B3?=
=?UTF-8?q?=E9=A2=91=E9=87=8D=E5=A4=8D=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/exhibit/detail.vue | 3 ---
tests/unit/ExhibitDetailAudioFirst.spec.ts | 22 ++++++++++++++++++++++
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/pages/exhibit/detail.vue b/src/pages/exhibit/detail.vue
index 07341f0..e65e01b 100644
--- a/src/pages/exhibit/detail.vue
+++ b/src/pages/exhibit/detail.vue
@@ -106,9 +106,6 @@
{{ detailLoadingMessage }}
-
- {{ audioAvailabilityMessage }}
-
diff --git a/tests/unit/ExhibitDetailAudioFirst.spec.ts b/tests/unit/ExhibitDetailAudioFirst.spec.ts
index 60f40db..fe45994 100644
--- a/tests/unit/ExhibitDetailAudioFirst.spec.ts
+++ b/tests/unit/ExhibitDetailAudioFirst.spec.ts
@@ -144,4 +144,26 @@ describe('讲解详情音频优先布局', () => {
language: 'en-US'
}), expect.objectContaining({ displayMode: 'mini' }))
})
+
+ it('音频不可用时只在音频控制区显示一次提示', async () => {
+ mocks.enterExplainDetail.mockResolvedValue({
+ ...exhibit,
+ audioUrl: undefined,
+ audioDuration: undefined,
+ audioStatus: 'MISSING',
+ audioLanguage: 'yue-HK',
+ audioUnavailableReason: '当前语言暂无语音讲解。'
+ })
+
+ const wrapper = mount(ExhibitDetail, {
+ global: { stubs: { GuidePageFrame: GuidePageFrameStub } }
+ })
+
+ await mocks.onLoadHandler?.({ id: exhibit.id, lang: 'yue-HK', targetType: 'STOP', targetId: 'stop-1' })
+ await flushPromises()
+
+ expect(wrapper.find('.detail-audio-unavailable').text()).toBe('当前语言暂无语音讲解。')
+ expect(wrapper.find('.audio-status-hint').exists()).toBe(false)
+ expect(wrapper.findAll('.section-hint')).toHaveLength(0)
+ })
})