// 全局变量 let currentPage = 'dashboard'; let currentNodesPage = 1; let currentResultsPage = 1; let currentNotificationsPage = 1; // API基础URL const API_BASE = '/api'; // 页面加载完成后初始化 document.addEventListener('DOMContentLoaded', function() { initializeApp(); }); // 初始化应用 async function initializeApp() { try { // 设置导航事件 setupNavigation(); // 加载仪表板数据 await loadDashboard(); // 设置定时刷新 setInterval(loadDashboard, 30000); // 每30秒刷新一次 // 设置实时搜索 setupRealTimeSearch(); console.log('应用初始化完成'); } catch (error) { console.error('应用初始化失败:', error); showError('应用初始化失败: ' + error.message); } } // 设置导航 function setupNavigation() { const navLinks = document.querySelectorAll('[data-page]'); navLinks.forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); const page = this.getAttribute('data-page'); showPage(page); }); }); } // 显示页面 async function showPage(pageName) { // 隐藏所有页面 document.querySelectorAll('.page-content').forEach(page => { page.style.display = 'none'; }); // 移除所有导航激活状态 document.querySelectorAll('.nav-link').forEach(link => { link.classList.remove('active'); }); // 激活当前导航 document.querySelector(`[data-page="${pageName}"]`).classList.add('active'); // 显示目标页面 const targetPage = document.getElementById(pageName + '-page'); if (targetPage) { targetPage.style.display = 'block'; targetPage.classList.add('fade-in'); } // 加载页面数据 switch (pageName) { case 'dashboard': await loadDashboard(); break; case 'nodes': await loadNodes(); break; case 'speed-test': await loadTestResults(); break; case 'notifications': await loadNotifications(); break; case 'settings': await loadSettings(); break; } currentPage = pageName; } // 加载仪表板 async function loadDashboard() { try { showLoading(); // 加载统计信息 const statsResponse = await fetch(`${API_BASE}/stats`); const statsData = await statsResponse.json(); if (statsData.success) { updateDashboardStats(statsData.data); } // 加载最近测速结果 const resultsResponse = await fetch(`${API_BASE}/test/results?limit=5`); const resultsData = await resultsResponse.json(); if (resultsData.success) { updateRecentResults(resultsData.data.results); } hideLoading(); } catch (error) { console.error('加载仪表板失败:', error); hideLoading(); showError('加载仪表板失败: ' + error.message); } } // 更新仪表板统计 function updateDashboardStats(stats) { document.getElementById('total-nodes').textContent = stats.nodes.total; document.getElementById('online-nodes').textContent = stats.nodes.online; document.getElementById('success-rate').textContent = stats.tests.successRate + '%'; document.getElementById('today-tests').textContent = stats.tests.recent24h; } // 更新最近测速结果 function updateRecentResults(results) { const container = document.getElementById('recent-results'); if (results.length === 0) { container.innerHTML = '
名称: | ${node.name} |
类型: | ${node.type} |
服务器: | ${node.server} |
端口: | ${node.port} |
状态: | ${node.status === 'online' ? '在线' : '离线'} |