feat(log-center): v0.96 日志库/查询页数据源打通 + AgentCLI 输入修复 + AI助手按钮去重
This commit is contained in:
1 parent
ba8a4b5f19
commit
8dd5a07b70
4 files changed
+53
-32
No files matched your search
@@ -4,7 +4,7 @@ import { Navigate, useParams } from 'react-router-dom';
|
||||
import { ScrollText } from 'lucide-react';
|
||||
import { LogQueryProvider } from './LogQueryContext';
|
||||
import { UnifiedQueryPanel } from './UnifiedQueryPanel';
|
||||
import { LogLibraryPage } from './LogLibraryPage';
|
||||
import { LogDatasourcePage } from './LogDatasourcePage';
|
||||
import { LogAlertsPanel } from './LogAlertsPanel';
|
||||
import type { LogEngine } from './types-v3';
|
||||
|
||||
@@ -42,7 +42,7 @@ export default function LogCenter() {
|
||||
{(tab === 'loki' || tab === 'es') && meta.engine && (
|
||||
<UnifiedQueryPanel engine={meta.engine} onRuleCreated={() => setAlertReloadKey(k => k + 1)} />
|
||||
)}
|
||||
{tab === 'datasources' && <LogLibraryPage />}
|
||||
{tab === 'datasources' && <LogDatasourcePage />}
|
||||
{tab === 'alerts' && <LogAlertsPanel key={alertReloadKey} />}
|
||||
</div>
|
||||
</LogQueryProvider>
|
||||
|
||||
@@ -53,19 +53,26 @@ export const STATUS_CONFIG: Record<string, StatusConfigItem> = {
|
||||
untested: { color: 'var(--dg-text-muted)', label: '未测试', dot: '#94a3b8' },
|
||||
};
|
||||
|
||||
/** Mock 数据源 */
|
||||
/** Mock 数据源(仅演示用 — demo-loki / demo-es 各一个) */
|
||||
export const MOCK_DATASOURCES: LogDatasource[] = [
|
||||
{ id: 1, engine: 'loki', name: 'prod-loki', url: 'http://loki.prod.local:3100', status: 'connected', description: '生产环境 Loki', isDefault: true, auth: null },
|
||||
{ id: 2, engine: 'loki', name: 'dev-loki', url: 'http://loki.dev.local:3100', status: 'connected', description: '开发环境 Loki', isDefault: false, auth: null },
|
||||
{ id: 3, engine: 'elasticsearch', name: 'prod-es', url: 'http://es.prod.local:9200', status: 'connected', description: '生产环境 ES', isDefault: true, auth: null },
|
||||
{ id: 4, engine: 'elasticsearch', name: 'dev-es', url: 'http://es.dev.local:9200', status: 'error', description: '开发环境 ES', isDefault: false, auth: null },
|
||||
{ id: 1, engine: 'loki', name: 'demo-loki', url: '', status: 'connected', description: 'Loki 模拟数据', isDefault: true, auth: null },
|
||||
{ id: 2, engine: 'elasticsearch', name: 'demo-es', url: '', status: 'connected', description: 'ES 模拟数据', isDefault: true, auth: null },
|
||||
];
|
||||
|
||||
/** 从 localStorage 加载数据源 */
|
||||
/** 从 localStorage 加载数据源(迁移旧数据自动清理) */
|
||||
export function loadDatasources(): LogDatasource[] {
|
||||
try {
|
||||
const raw = localStorage.getItem(STORAGE_KEY);
|
||||
if (raw) return JSON.parse(raw);
|
||||
if (raw) {
|
||||
const list: LogDatasource[] = JSON.parse(raw);
|
||||
// 版本迁移:旧数据(含 prod-loki / dev-loki 等)强制重置为 demo
|
||||
const oldNames = list.map((d) => d.name);
|
||||
if (oldNames.includes('prod-loki') || oldNames.includes('dev-es') || oldNames.includes('prod-es') || oldNames.includes('dev-loki')) {
|
||||
localStorage.removeItem(STORAGE_KEY);
|
||||
return [...MOCK_DATASOURCES];
|
||||
}
|
||||
return list;
|
||||
}
|
||||
} catch { /* ignore */ }
|
||||
return [...MOCK_DATASOURCES];
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user