From 70e6e0cac6288d255a0a8458d5723540d7bb463e Mon Sep 17 00:00:00 2001 From: dengqichen Date: Tue, 30 Dec 2025 16:28:24 +0800 Subject: [PATCH] 1.45 --- .../components/LogViewer/LogStreamViewer.tsx | 6 ++-- .../LogViewer/WebSocketLogSource.ts | 20 ++++++------- .../Terminal/TerminalWindowManager.tsx | 16 +++++------ .../Dashboard/components/LogWindowManager.tsx | 28 +++++++++---------- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/frontend/src/components/LogViewer/LogStreamViewer.tsx b/frontend/src/components/LogViewer/LogStreamViewer.tsx index 28e51a81..851f9208 100644 --- a/frontend/src/components/LogViewer/LogStreamViewer.tsx +++ b/frontend/src/components/LogViewer/LogStreamViewer.tsx @@ -24,7 +24,7 @@ export const LogStreamViewer: React.FC = ({ // 注册日志接收回调 useEffect(() => { - console.log('[LogStreamViewer] useEffect triggered, connecting...'); + if (import.meta.env.DEV) console.log('[LogStreamViewer] useEffect triggered, connecting...'); dataSource.onLog((logText) => { if (logViewerApiRef.current) { @@ -41,7 +41,7 @@ export const LogStreamViewer: React.FC = ({ dataSource.connect(); return () => { - console.log('[LogStreamViewer] useEffect cleanup, disconnecting...'); + if (import.meta.env.DEV) console.log('[LogStreamViewer] useEffect cleanup, disconnecting...'); dataSource.cleanup(); }; }, [dataSource]); @@ -70,7 +70,7 @@ export const LogStreamViewer: React.FC = ({ // CONNECTING状态下不显示错误(可能是临时的连接问题) const shouldShowError = error && !isConnecting; - console.log('[LogStreamViewer] Render - status:', currentStatus, 'error:', error, 'shouldShowError:', shouldShowError, 'isConnecting:', isConnecting); + if (import.meta.env.DEV) console.log('[LogStreamViewer] Render - status:', currentStatus, 'error:', error, 'shouldShowError:', shouldShowError, 'isConnecting:', isConnecting); return (
diff --git a/frontend/src/components/LogViewer/WebSocketLogSource.ts b/frontend/src/components/LogViewer/WebSocketLogSource.ts index 32ec301d..260634e7 100644 --- a/frontend/src/components/LogViewer/WebSocketLogSource.ts +++ b/frontend/src/components/LogViewer/WebSocketLogSource.ts @@ -22,10 +22,10 @@ export class WebSocketLogSource implements LogDataSource { } connect(): void { - console.log('[WebSocketLogSource] connect() called, current readyState:', this.ws?.readyState); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] connect() called, current readyState:', this.ws?.readyState); if (this.ws?.readyState === WebSocket.OPEN) { - console.log('[WebSocketLogSource] Already connected, skipping'); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] Already connected, skipping'); return; } @@ -37,12 +37,12 @@ export class WebSocketLogSource implements LogDataSource { this.isManualDisconnect = false; try { - console.log('[WebSocketLogSource] Creating new WebSocket:', this.config.url); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] Creating new WebSocket:', this.config.url); this.ws = new WebSocket(this.config.url); - console.log('[WebSocketLogSource] WebSocket created, readyState:', this.ws.readyState); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] WebSocket created, readyState:', this.ws.readyState); this.ws.onopen = () => { - console.log('[WebSocketLogSource] onopen triggered! readyState:', this.ws?.readyState); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] onopen triggered! readyState:', this.ws?.readyState); this.reconnectAttempts = 0; this.hasConnected = true; this.updateStatus(LogStreamStatus.CONNECTED); @@ -55,7 +55,7 @@ export class WebSocketLogSource implements LogDataSource { // 处理 STATUS 消息 if (message.type === 'STATUS' && message.data?.response?.status) { const newStatus = message.data.response.status as LogStreamStatus; - console.log('[WebSocketLogSource] Received STATUS:', newStatus); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] Received STATUS:', newStatus); this.updateStatus(newStatus); return; } @@ -85,7 +85,7 @@ export class WebSocketLogSource implements LogDataSource { }; this.ws.onclose = (event) => { - console.log('[WebSocketLogSource] onclose triggered, code:', event.code, 'reason:', event.reason); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] onclose triggered, code:', event.code, 'reason:', event.reason); if (event.code === 1006) { this.updateError('无法连接到服务器,请检查网络连接'); @@ -110,12 +110,12 @@ export class WebSocketLogSource implements LogDataSource { } disconnect(): void { - console.log('[WebSocketLogSource] disconnect() called'); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] disconnect() called'); this.isManualDisconnect = true; this.clearReconnectTimer(); if (this.ws) { - console.log('[WebSocketLogSource] Closing WebSocket, readyState:', this.ws.readyState); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] Closing WebSocket, readyState:', this.ws.readyState); this.ws.close(); this.ws = null; } @@ -154,7 +154,7 @@ export class WebSocketLogSource implements LogDataSource { } cleanup(): void { - console.log('[WebSocketLogSource] cleanup() called'); + if (import.meta.env.DEV) console.log('[WebSocketLogSource] cleanup() called'); this.disconnect(); this.logCallback = null; this.statusCallback = null; diff --git a/frontend/src/components/Terminal/TerminalWindowManager.tsx b/frontend/src/components/Terminal/TerminalWindowManager.tsx index b2495bbc..4649035b 100644 --- a/frontend/src/components/Terminal/TerminalWindowManager.tsx +++ b/frontend/src/components/Terminal/TerminalWindowManager.tsx @@ -79,12 +79,12 @@ export function TerminalWindowManager({ setActiveWindowId(windowId); onOpenWindow?.(windowId); - console.log(`✅ 打开${type.toUpperCase()}窗口: ${getWindowTitle(resource)} (${windowId})`); + if (import.meta.env.DEV) console.log(`✅ 打开${type.toUpperCase()}窗口: ${getWindowTitle(resource)} (${windowId})`); }, [windows.length, type, getWindowTitle, getResourceId, onOpenWindow]); // 真正关闭窗口 const actuallyCloseWindow = useCallback((windowId: string) => { - console.log(`❌ 真正关闭窗口: ${windowId}`); + if (import.meta.env.DEV) console.log(`❌ 真正关闭窗口: ${windowId}`); setWindows(prev => prev.filter(w => w.id !== windowId)); if (activeWindowId === windowId) { setActiveWindowId(null); @@ -93,15 +93,15 @@ export function TerminalWindowManager({ // 关闭窗口(优雅关闭) const closeWindow = useCallback((windowId: string) => { - console.log(`🚪 准备关闭窗口: ${windowId}`); + if (import.meta.env.DEV) console.log(`🚪 准备关闭窗口: ${windowId}`); // 调用优雅关闭方法 const closeMethod = (window as any)[`__closeSSH_${windowId}`]; if (closeMethod && typeof closeMethod === 'function') { - console.log('✅ 调用优雅关闭方法'); + if (import.meta.env.DEV) console.log('✅ 调用优雅关闭方法'); closeMethod(); } else { - console.warn('⚠️ 未找到优雅关闭方法,直接关闭窗口'); + if (import.meta.env.DEV) console.warn('⚠️ 未找到优雅关闭方法,直接关闭窗口'); actuallyCloseWindow(windowId); } }, [actuallyCloseWindow]); @@ -113,7 +113,7 @@ export function TerminalWindowManager({ w.id === windowId ? { ...w, isMinimized: true } : w ) ); - console.log(`➖ 最小化窗口: ${windowId}`); + if (import.meta.env.DEV) console.log(`➖ 最小化窗口: ${windowId}`); }, []); // 恢复窗口 @@ -124,7 +124,7 @@ export function TerminalWindowManager({ ) ); setActiveWindowId(windowId); - console.log(`⬆️ 恢复窗口: ${windowId}`); + if (import.meta.env.DEV) console.log(`⬆️ 恢复窗口: ${windowId}`); // 触发resize事件,确保终端正确调整尺寸 // 延迟100ms等待DOM更新完成 @@ -186,7 +186,7 @@ export function TerminalWindowManager({ const globalKey = `__open${typeName}Window`; (window as any)[globalKey] = openWindow; - console.log(`✅ 注册全局方法: ${globalKey}`); + if (import.meta.env.DEV) console.log(`✅ 注册全局方法: ${globalKey}`); return () => { delete (window as any)[globalKey]; diff --git a/frontend/src/pages/Dashboard/components/LogWindowManager.tsx b/frontend/src/pages/Dashboard/components/LogWindowManager.tsx index f2eb090f..ccaad3f9 100644 --- a/frontend/src/pages/Dashboard/components/LogWindowManager.tsx +++ b/frontend/src/pages/Dashboard/components/LogWindowManager.tsx @@ -165,9 +165,9 @@ const LogViewerContent: React.FC<{ // 控制按钮处理函数 const handleStart = useCallback(() => { - console.log('[LogWindowManager] handleStart called, controlApiRef:', !!controlApiRef.current); + if (import.meta.env.DEV) console.log('[LogWindowManager] handleStart called, controlApiRef:', !!controlApiRef.current); if (!controlApiRef.current) { - console.log('[LogWindowManager] controlApiRef is null, cannot send START'); + if (import.meta.env.DEV) console.log('[LogWindowManager] controlApiRef is null, cannot send START'); return; } @@ -183,7 +183,7 @@ const LogViewerContent: React.FC<{ }, }; - console.log('[LogWindowManager] Sending START message:', startMessage); + if (import.meta.env.DEV) console.log('[LogWindowManager] Sending START message:', startMessage); controlApiRef.current.send(JSON.stringify(startMessage)); setStatus(LogStreamStatus.STREAMING); }, [lines, app.runtimeType, podName]); @@ -212,7 +212,7 @@ const LogViewerContent: React.FC<{ return; } - console.log('[LogWindowManager] Pod changed from', prevPodNameRef.current, 'to', podName, '- restarting stream'); + if (import.meta.env.DEV) console.log('[LogWindowManager] Pod changed from', prevPodNameRef.current, 'to', podName, '- restarting stream'); // 更新引用 prevPodNameRef.current = podName; @@ -241,7 +241,7 @@ const LogViewerContent: React.FC<{ }, }, }; - console.log('[LogWindowManager] Sending START with new pod:', startMessage); + if (import.meta.env.DEV) console.log('[LogWindowManager] Sending START with new pod:', startMessage); controlApiRef.current.send(JSON.stringify(startMessage)); setStatus(LogStreamStatus.STREAMING); } @@ -251,7 +251,7 @@ const LogViewerContent: React.FC<{ // 创建WebSocket数据源 const dataSource = useMemo(() => { - console.log('[LogWindowManager] Creating new dataSource for app:', app.teamApplicationId, app.runtimeType); + if (import.meta.env.DEV) console.log('[LogWindowManager] Creating new dataSource for app:', app.teamApplicationId, app.runtimeType); const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const host = window.location.host; @@ -283,19 +283,19 @@ const LogViewerContent: React.FC<{ // 注册状态变化回调 source.onStatusChange((newStatus) => { - console.log('[LogWindowManager] Status changed to:', newStatus); + if (import.meta.env.DEV) console.log('[LogWindowManager] Status changed to:', newStatus); setStatus(newStatus); // 收到CONNECTED状态后自动发送START消息 if (newStatus === LogStreamStatus.CONNECTED) { // K8S应用需要等待Pod列表加载完成 if (app.runtimeType === 'K8S' && loadingPodsRef.current) { - console.log('[LogWindowManager] K8S waiting for pods, skip START'); + if (import.meta.env.DEV) console.log('[LogWindowManager] K8S waiting for pods, skip START'); return; } // 延迟发送START消息,确保controlApiRef已设置 - console.log('[LogWindowManager] CONNECTED received, sending START in 100ms...'); + if (import.meta.env.DEV) console.log('[LogWindowManager] CONNECTED received, sending START in 100ms...'); setTimeout(() => { handleStartRef.current?.(); }, 100); @@ -614,22 +614,22 @@ const LogViewerContent: React.FC<{ // API就绪后,检查连接状态并自动启动 const currentStatus = controlApi.getStatus(); - console.log('[LogWindowManager] onReady triggered, status:', currentStatus, 'runtimeType:', app.runtimeType); + if (import.meta.env.DEV) console.log('[LogWindowManager] onReady triggered, status:', currentStatus, 'runtimeType:', app.runtimeType); if (currentStatus === LogStreamStatus.CONNECTED) { // K8S应用需要等待Pod列表加载完成 if (app.runtimeType === 'K8S' && loadingPodsRef.current) { - console.log('[LogWindowManager] K8S waiting for pods, skip START'); + if (import.meta.env.DEV) console.log('[LogWindowManager] K8S waiting for pods, skip START'); return; } // 自动发送START消息 - console.log('[LogWindowManager] Sending START message in 100ms...'); + if (import.meta.env.DEV) console.log('[LogWindowManager] Sending START message in 100ms...'); setTimeout(() => { - console.log('[LogWindowManager] Calling handleStart'); + if (import.meta.env.DEV) console.log('[LogWindowManager] Calling handleStart'); handleStartRef.current?.(); }, 100); } else { - console.log('[LogWindowManager] Status is not CONNECTED, current:', currentStatus); + if (import.meta.env.DEV) console.log('[LogWindowManager] Status is not CONNECTED, current:', currentStatus); } }} className="flex-1"