From 01d261e893ccc187332dc08355e9e341865eec9b Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Sat, 1 Aug 2026 11:40:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E5=85=AC=E5=B1=8F?= =?UTF-8?q?=E5=8F=AB=E5=8F=B7=E9=BB=98=E8=AE=A4=E6=92=AD=E6=94=BE=E5=B9=B6?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A3=B0=E9=9F=B3=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 需求:服务端下发音频已验证可用,公屏无需再显示开启声音按钮和状态提示。 实现:移除声音控制组件与首次点击门槛,新叫号到达后直接播放内置音频队列。 验证:前端 65 项测试通过,生产构建通过。 --- web/public/audio/queue-voice/ready.wav | Bin 62340 -> 0 bytes web/src/components/AudioControl.tsx | 37 ---------------- web/src/hooks/useAudioAnnouncements.ts | 41 +++++------------- web/src/pages/DisplayPage.test.tsx | 13 ++---- web/src/pages/DisplayPage.tsx | 5 +-- .../pages/PublicDisplayCenterPage.test.tsx | 13 ++---- web/src/pages/PublicDisplayCenterPage.tsx | 5 +-- 7 files changed, 22 insertions(+), 92 deletions(-) delete mode 100644 web/public/audio/queue-voice/ready.wav delete mode 100644 web/src/components/AudioControl.tsx diff --git a/web/public/audio/queue-voice/ready.wav b/web/public/audio/queue-voice/ready.wav deleted file mode 100644 index 671c4384086539df9e0a987e311365b1a51e5902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62340 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 R)H*-DCg7;$; - status: AudioAnnouncementStatus; - onEnable: () => void; -} - -export function AudioControl({ audioRef, status, onEnable }: AudioControlProps) { - return ( - <> -
- +
{resource.offline ? "连接已中断" : "数据更新延迟"} diff --git a/web/src/pages/PublicDisplayCenterPage.test.tsx b/web/src/pages/PublicDisplayCenterPage.test.tsx index c1a844b..7df2327 100644 --- a/web/src/pages/PublicDisplayCenterPage.test.tsx +++ b/web/src/pages/PublicDisplayCenterPage.test.tsx @@ -1,4 +1,4 @@ -import { act, fireEvent, render, screen } from "@testing-library/react"; +import { fireEvent, render, screen } from "@testing-library/react"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; const { displayOverview, pollingResource } = vi.hoisted(() => ({ @@ -63,7 +63,7 @@ describe("PublicDisplayCenterPage", () => { expect(screen.queryByRole("navigation", { name: "管理任务" })).not.toBeInTheDocument(); }); - it("新叫号批次出现时只用内置音频连续三次播报号码", async () => { + it("新叫号批次出现时无需人工开启即可连续三次播报号码", () => { const playedSources: string[] = []; vi.spyOn(HTMLMediaElement.prototype, "pause").mockImplementation(() => undefined); vi.spyOn(HTMLMediaElement.prototype, "play").mockImplementation(function (this: HTMLMediaElement) { @@ -72,13 +72,8 @@ describe("PublicDisplayCenterPage", () => { }); const { container, rerender } = render(); - await act(async () => { - fireEvent.click(screen.getByRole("button", { name: "开启叫号声音" })); - await Promise.resolve(); - }); - expect(screen.getByText("叫号声音已开启")).toBeVisible(); - expect(playedSources).toEqual(["/audio/queue-voice/ready.wav"]); - playedSources.length = 0; + expect(screen.queryByRole("button", { name: "开启叫号声音" })).not.toBeInTheDocument(); + expect(screen.queryByText("叫号声音已开启")).not.toBeInTheDocument(); pollingResource.data = { ...pollingResource.data, diff --git a/web/src/pages/PublicDisplayCenterPage.tsx b/web/src/pages/PublicDisplayCenterPage.tsx index 1892663..2f087bf 100644 --- a/web/src/pages/PublicDisplayCenterPage.tsx +++ b/web/src/pages/PublicDisplayCenterPage.tsx @@ -1,6 +1,5 @@ import { useEffect, useRef } from "react"; import { api } from "../api"; -import { AudioControl } from "../components/AudioControl"; import { FeedbackBanner, FreshnessBanner, LoadingState } from "../components/Feedback"; import { useAudioAnnouncements } from "../hooks/useAudioAnnouncements"; import { usePollingResource } from "../hooks/usePollingResource"; @@ -13,7 +12,7 @@ function projectCurrentBatch(value: unknown): CallBatchDto | null { } export function PublicDisplayCenterPage() { - const { announce, audioRef, enable: enableAudio, status: audioStatus } = useAudioAnnouncements(); + const { announce, audioRef } = useAudioAnnouncements(); const resource = usePollingResource((signal) => api.displayOverview(signal), { intervalMs: 5_000 }); const data = resource.data; const stale = Boolean(data) && isTimestampStale(resource.lastClientSuccessAt, 30_000); @@ -38,7 +37,7 @@ export function PublicDisplayCenterPage() { return (