From d334a214a452c013329b8251de2485d11a4e4144 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Fri, 6 Feb 2026 23:53:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=A4=E8=81=8A=E6=96=B0=E5=A2=9E=E7=BE=A4?= =?UTF-8?q?=E8=81=8A=E5=88=86=E6=9E=90=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ChatPage.tsx | 20 +++++++++++++++++- src/pages/GroupAnalyticsPage.tsx | 35 +++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/pages/ChatPage.tsx b/src/pages/ChatPage.tsx index 691b048..c5d40a7 100644 --- a/src/pages/ChatPage.tsx +++ b/src/pages/ChatPage.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react' -import { Search, MessageSquare, AlertCircle, Loader2, RefreshCw, X, ChevronDown, Info, Calendar, Database, Hash, Play, Pause, Image as ImageIcon, Link, Mic, CheckCircle, Copy, Check, Download } from 'lucide-react' +import { Search, MessageSquare, AlertCircle, Loader2, RefreshCw, X, ChevronDown, Info, Calendar, Database, Hash, Play, Pause, Image as ImageIcon, Link, Mic, CheckCircle, Copy, Check, Download, BarChart3 } from 'lucide-react' import { useNavigate } from 'react-router-dom' import { createPortal } from 'react-dom' import { useChatStore } from '../stores/chatStore' @@ -1257,6 +1257,15 @@ function ChatPage(_props: ChatPageProps) { }) }, [currentSessionId, navigate]) + const handleGroupAnalytics = useCallback(() => { + if (!currentSessionId || !isGroupChat(currentSessionId)) return + navigate('/group-analytics', { + state: { + preselectGroupIds: [currentSessionId] + } + }) + }, [currentSessionId, navigate]) + // 确认批量转写 const confirmBatchTranscribe = useCallback(async () => { if (!currentSessionId) return @@ -1477,6 +1486,15 @@ function ChatPage(_props: ChatPageProps) { )}
+ {isGroupChat(currentSession.username) && ( + + )}