启动器:游戏更新入口移到开始旁,移除设置页面

- 侧边栏顺序调整为 开始 → 游戏更新 → GM工具 → 一键换装 → 游戏设置
- 删除「设置」页面(侧边栏入口 + page-settings section)
- shell.js 移除 loadSettings 函数及 setRefresh 事件监听
- shell.css 清理 .settings-* 相关样式(明暗主题两套)
This commit is contained in:
hanfuit committed 2026-11-04 20:38:22 +08:00
1 parent 0ced464168
commit c58168406b
3 files changed
+3 -42

No files matched your search

+1 -16
View File
@@ -26,12 +26,11 @@
</div> </div>
<nav class="shell-nav"> <nav class="shell-nav">
<button class="shell-nav-item active" data-shell-page="start"><span class="nav-ico">▶</span>开始</button> <button class="shell-nav-item active" data-shell-page="start"><span class="nav-ico">▶</span>开始</button>
<button class="shell-nav-item" data-shell-page="changelog"><span class="nav-ico">📜</span>游戏更新</button>
<button class="shell-nav-item" data-shell-page="gm"><span class="nav-ico">⚙</span>GM工具</button> <button class="shell-nav-item" data-shell-page="gm"><span class="nav-ico">⚙</span>GM工具</button>
<button class="shell-nav-item" data-shell-page="loadout"><span class="nav-ico">🔄</span>一键换装</button> <button class="shell-nav-item" data-shell-page="loadout"><span class="nav-ico">🔄</span>一键换装</button>
<button class="shell-nav-item" data-shell-page="gamesettings"><span class="nav-ico">🎮</span>游戏设置</button> <button class="shell-nav-item" data-shell-page="gamesettings"><span class="nav-ico">🎮</span>游戏设置</button>
<div class="shell-nav-gap"></div> <div class="shell-nav-gap"></div>
<button class="shell-nav-item" data-shell-page="settings"><span class="nav-ico">⚙</span>设置</button>
<button class="shell-nav-item" data-shell-page="changelog"><span class="nav-ico">📜</span>游戏更新</button>
</nav> </nav>
<div class="shell-win-controls"> <div class="shell-win-controls">
<button class="tb-btn" id="shellWinMin" title="最小化">—</button> <button class="tb-btn" id="shellWinMin" title="最小化">—</button>
@@ -109,20 +108,6 @@
</div> </div>
</section> </section>
<section class="shell-page" id="page-settings">
<div class="page-pad">
<div class="page-heading"><div><h2>设置</h2><p class="muted">当前启动器实际绑定的服务端、数据库和游戏端。</p></div><button class="shell-btn" id="setRefresh">刷新</button></div>
<div class="settings-grid">
<div class="settings-card"><div class="settings-label">服务端根目录</div><div class="settings-value" id="setServerRoot">—</div></div>
<div class="settings-card"><div class="settings-label">服务端控制</div><div class="settings-value" id="setControl">—</div></div>
<div class="settings-card"><div class="settings-label">数据库</div><div class="settings-value" id="setDb">—</div></div>
<div class="settings-card"><div class="settings-label">游戏客户端</div><div class="settings-value" id="setClient">—</div></div>
<div class="settings-card"><div class="settings-label">服务端状态</div><div class="settings-value" id="setRun">—</div></div>
<div class="settings-card"><div class="settings-label">Native API</div><div class="settings-value" id="setNative">—</div></div>
</div>
</div>
</section>
<section class="shell-page" id="page-gamesettings"> <section class="shell-page" id="page-gamesettings">
<div class="page-pad"> <div class="page-pad">
<div class="page-heading"><div><h2>游戏设置</h2><p class="muted">调整服务端频道与活动;改动实时生效,无需重启。</p></div><button class="shell-btn" id="gsRefresh">刷新</button></div> <div class="page-heading"><div><h2>游戏设置</h2><p class="muted">调整服务端频道与活动;改动实时生效,无需重启。</p></div><button class="shell-btn" id="gsRefresh">刷新</button></div>
-10
View File
@@ -38,10 +38,6 @@ button,input,select{font:inherit}
padding:0 18px;border-bottom:1px solid #14291f;color:var(--muted);font-size:12px; padding:0 18px;border-bottom:1px solid #14291f;color:var(--muted);font-size:12px;
cursor:move;user-select:none} cursor:move;user-select:none}
.shell-topbar button,.shell-topbar select,.shell-topbar input{cursor:pointer} .shell-topbar button,.shell-topbar select,.shell-topbar input{cursor:pointer}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px;margin-top:14px}
.settings-card{border:1px solid #1d3a2d;background:#0b1712;padding:12px 14px;border-radius:4px}
.settings-label{font-size:11px;color:#83a393;margin-bottom:5px}
.settings-value{font:11px/1.6 Consolas,"Microsoft YaHei",monospace;color:#d5e8de;word-break:break-all}
.shell-top-actions{display:flex;gap:8px;align-items:center} .shell-top-actions{display:flex;gap:8px;align-items:center}
.shell-top-actions select{background:#0c1b16;border:1px solid #25483a;color:#bfe4d2;padding:4px 8px;border-radius:2px} .shell-top-actions select{background:#0c1b16;border:1px solid #25483a;color:#bfe4d2;padding:4px 8px;border-radius:2px}
.tb-btn{width:28px;height:24px;border:1px solid #25483a;background:#0c1b16;color:#a8c7b6;cursor:pointer} .tb-btn{width:28px;height:24px;border:1px solid #25483a;background:#0c1b16;color:#a8c7b6;cursor:pointer}
@@ -261,8 +257,6 @@ button,input,select{font:inherit}
.shell-statusbar{background:#08080f;border-top-color:rgba(255,255,255,.08);color:#7d8198} .shell-statusbar{background:#08080f;border-top-color:rgba(255,255,255,.08);color:#7d8198}
.shell-statusbar b{color:#b8bcd0} .shell-statusbar b{color:#b8bcd0}
#page-gm #gmView{background:#0b0b14} #page-gm #gmView{background:#0b0b14}
.settings-card{background:rgba(20,20,36,.55);border-color:rgba(255,255,255,.09);border-radius:10px}
.settings-label{color:#8d91a8}.settings-value{color:#e2e4f2}
/* ================= 字号整体 +2,间距放宽 ================= */ /* ================= 字号整体 +2,间距放宽 ================= */
body{font-size:16px} body{font-size:16px}
@@ -328,10 +322,6 @@ body{font-size:16px}
.lo-slot{font-size:13px;padding:9px} .lo-slot{font-size:13px;padding:9px}
.lo-slot b{font-size:13px} .lo-slot b{font-size:13px}
.shell-statusbar{height:34px;font-size:13px;gap:22px;padding:0 18px} .shell-statusbar{height:34px;font-size:13px;gap:22px;padding:0 18px}
.settings-grid{gap:14px;margin-top:18px}
.settings-card{padding:16px 18px}
.settings-label{font-size:13px}
.settings-value{font-size:13px;line-height:1.7}
@media (max-width:1100px){ @media (max-width:1100px){
.stat-grid{grid-template-columns:repeat(2,1fr)} .stat-grid{grid-template-columns:repeat(2,1fr)}
.hero-actions{flex-wrap:wrap;gap:10px} .hero-actions{flex-wrap:wrap;gap:10px}
+2 -16
View File
@@ -1,13 +1,13 @@
/* 90轮回启动器 · 单窗口页面与工具整合 */ /* 90轮回启动器 · 单窗口页面与工具整合 */
(function () { (function () {
const $ = (id) => document.getElementById(id); const $ = (id) => document.getElementById(id);
const pages = ['start','gm','loadout','gamesettings','settings','changelog']; const pages = ['start','changelog','gm','loadout','gamesettings'];
let shellGmInit = false; let shellGmInit = false;
let loConfig = null, loPage = 0, loScheme = -1; let loConfig = null, loPage = 0, loScheme = -1;
let loCooldownUntil = 0, loCooldownCharacter = '', loCooldownTimer = null; let loCooldownUntil = 0, loCooldownCharacter = '', loCooldownTimer = null;
let hotkeyCapture = false; let hotkeyCapture = false;
const crumb = {start:'开始 / 本地服务端',gm:'GM工具',loadout:'工具 / 一键换装',gamesettings:'工具 / 游戏设置',settings:'设置',changelog:'更新日志'}; const crumb = {start:'开始 / 本地服务端',changelog:'游戏更新',gm:'GM工具',loadout:'工具 / 一键换装',gamesettings:'工具 / 游戏设置'};
function shellGo(page) { function shellGo(page) {
if (!pages.includes(page)) page = 'start'; if (!pages.includes(page)) page = 'start';
@@ -17,7 +17,6 @@
if (page === 'start') loadStart(); if (page === 'start') loadStart();
if (page === 'loadout') loadLoadout(); if (page === 'loadout') loadLoadout();
if (page === 'gamesettings') loadGameSettings(); if (page === 'gamesettings') loadGameSettings();
if (page === 'settings') loadSettings();
if (page === 'changelog') loadChangelog(); if (page === 'changelog') loadChangelog();
if (page === 'gm') { if (page === 'gm') {
// 进入 GM:GM 覆盖整个窗口(隐藏顶部导航/面包屑/底部状态栏),并铺满工作区 // 进入 GM:GM 覆盖整个窗口(隐藏顶部导航/面包屑/底部状态栏),并铺满工作区
@@ -476,19 +475,6 @@
saveLoadout(); saveLoadout();
}); });
async function loadSettings() {
try {
const s = await api('/api/status');
$('setServerRoot').textContent = s.server_root || '未绑定';
$('setControl').textContent = s.control_exists ? '已找到 DNF90Control.exe' : '缺失';
$('setDb').textContent = s.db || '未找到';
$('setClient').textContent = s.client_dir || '未找到';
$('setRun').textContent = s.server_running ? '运行中' : '未运行';
$('setNative').textContent = s.native_available ? '可用' : '不可用';
} catch (e) { /* ignore */ }
}
$('setRefresh').addEventListener('click', loadSettings);
// ==================== 游戏设置(频道开关 / 活动开关) ==================== // ==================== 游戏设置(频道开关 / 活动开关) ====================
let gsCurrentTab = 'channels'; let gsCurrentTab = 'channels';
const gsToast = (msg, type = 'info') => { const gsToast = (msg, type = 'info') => {