const STATUS_COLORS = { active: '#4fc3f7', waiting: '#ffa726', done: '#66bb6a' }; const STATUS_LABELS = { active: '执行中', waiting: '等待中', done: '已完成' }; function renderSystemStatus(data) { const c = document.getElementById('sys-status'); if (!c) return; c.innerHTML = `
🟢${data.system_status === 'running' ? '运行中' : '异常'}系统状态
⏱️${data.uptime}运行时长
📡${data.api_calls_today}今日API调用
👥${data.active_developers}活跃开发者
🚀${data.version}版本
📦${data.last_deploy}最后部署
`; } function renderDevelopers(data) { const c = document.getElementById('dev-list'); if (!c) return; let html = ''; for (let i = 0; i < data.length; i++) { const d = data[i]; const color = STATUS_COLORS[d.status] || '#78909c'; html += `
${d.id} ${d.name} ${STATUS_LABELS[d.status] || d.status}
${d.module} · ${d.phase}
${d.progress}%
`; } c.innerHTML = html; } function renderBroadcasts(data) { const c = document.getElementById('bc-list'); if (!c) return; let html = ''; for (let i = 0; i < data.length; i++) { const b = data[i]; let cls = 'wait'; if (b.status === '已完成' || b.status === 'done') cls = 'done'; else if (b.status === '执行中' || b.status === 'active') cls = 'active'; html += `
${b.id} ${b.dev || ''} ${b.module} · ${b.phase} ${b.status} ${b.time}
`; } c.innerHTML = html; } function updateConnStatus(isLive) { const el = document.getElementById('conn-status'); if (!el) return; el.innerHTML = isLive ? ' 已连接 guanghulab.com' : ' 离线模式(模拟数据)'; } async function refreshDashboard() { try { const result = await loadAllData(); renderSystemStatus(result.status); renderDevelopers(result.developers); renderBroadcasts(result.broadcasts); updateConnStatus(result.isLive); } catch (err) { console.error('[HoloLake] 刷新失败:', err); updateConnStatus(false); } } document.addEventListener('DOMContentLoaded', function() { refreshDashboard(); setInterval(refreshDashboard, API_CONFIG.REFRESH_INTERVAL); });