// ============================================================ // DNF90 GM 工具 — 应用初始化与路由 // ============================================================ const PAGE_TITLES = { dashboard: ['控制台', '/ 服务端总览'], characters: ['角色管理', '/ 查询与编辑角色'], items: ['道具发放', '/ 搜索并发放道具'], mail: ['邮件系统', '/ 发送系统邮件'], inventory: ['背包装备', '/ 查看与清理背包'], quests: ['任务管理', '/ 查询与操作任务'], dungeons: ['副本控制', '/ 副本状态与回城'], wallet: ['钱包点券', '/ 钱包与黑钻'], gameplay: ['玩法配置', '/ 掉率与倍率'], channels: ['频道管理', '/ 频道列表与热重载'], settings: ['连接设置', '/ 服务端连接'], }; let currentPage = 'dashboard'; function renderPage(page) { currentPage = page; const [title, crumb] = PAGE_TITLES[page] || [page, '']; document.getElementById('pageTitle').textContent = title; document.getElementById('pageCrumb').textContent = crumb; document.querySelectorAll('.nav-item').forEach(n => n.classList.toggle('active', n.dataset.page === page)); const content = document.getElementById('content'); if (Pages[page]) { Pages[page](content); } else { content.innerHTML = '
页面不存在
'; } } function renderCurrentPage() { renderPage(currentPage); } // ---------- 导航绑定 ---------- document.querySelectorAll('.nav-item').forEach(item => { item.addEventListener('click', () => renderPage(item.dataset.page)); }); // ---------- 顶部按钮 ---------- document.getElementById('btnRefresh').addEventListener('click', () => renderCurrentPage()); document.getElementById('btnDiscover').addEventListener('click', doDiscover); // ---------- 启动 ---------- async function boot() { // 尝试自动连接 try { const health = await API.get('/api/health'); if (health.base_url) { CONN.connected = true; CONN.base_url = health.base_url; } } catch (e) { /* 忽略 */ } // 尝试自动发现(若未连接) if (!CONN.connected) { try { const r = await API.get('/api/discover'); if (r.ok) { CONN.connected = true; CONN.base_url = r.base_url; } } catch (e) { /* 忽略 */ } } updateConnDot(); renderPage('dashboard'); } boot();