From c0d2dcce3df6d8679dc75774e73713c9076e67d8 Mon Sep 17 00:00:00 2001 From: chenhao Date: Fri, 12 Jun 2026 17:45:04 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E5=8F=82?= =?UTF-8?q?=E4=B8=8E=E8=80=85=E5=88=97=E8=A1=A8=E7=94=9F=E6=88=90=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 `MeetingPreviewView.tsx` 中更新 `participants` 的生成逻辑,当 `meeting?.participants` 为空时,从 `transcripts` 中提取唯一发言人并生成列表 --- .../src/components/preview/MeetingPreviewView.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/imeeting-h5/src/components/preview/MeetingPreviewView.tsx b/imeeting-h5/src/components/preview/MeetingPreviewView.tsx index bac65f9..08c9165 100644 --- a/imeeting-h5/src/components/preview/MeetingPreviewView.tsx +++ b/imeeting-h5/src/components/preview/MeetingPreviewView.tsx @@ -180,7 +180,19 @@ export default function MeetingPreviewView({ () => buildMeetingAnalysis(meeting?.analysis, meeting?.summaryContent, meeting?.tags || ""), [meeting?.analysis, meeting?.summaryContent, meeting?.tags], ); - const participants = useMemo(() => splitDisplayItems(meeting?.participants), [meeting?.participants]); + const participants = useMemo(() => { + const list = splitDisplayItems(meeting?.participants); + if (list.length > 0) return list; + + const uniqueSpeakers = new Set(); + for (const item of transcripts) { + const speakerKey = item.speakerName || item.speakerLabel || item.speakerId; + if (speakerKey) { + uniqueSpeakers.add(speakerKey); + } + } + return Array.from(uniqueSpeakers); + }, [meeting?.participants, transcripts]); const tags = useMemo(() => splitDisplayItems(meeting?.tags), [meeting?.tags]); const playbackAudioUrl = useMemo(() => resolveMeetingPlaybackAudioUrl(meeting), [meeting]); const statusMeta = STATUS_META[meeting?.status || 0] || {