diff --git a/app/globals.css b/app/globals.css index 99dc86f..933ccad 100644 --- a/app/globals.css +++ b/app/globals.css @@ -2093,10 +2093,12 @@ input[type="number"] { flex-shrink: 0; } +/* 亮色主题下,PC 右侧抽屉里的 Switch 拇指使用浅色,以保证对比度 */ [data-theme="light"] .pc-table-setting-drawer .dca-toggle-thumb { background: #fff; } + /* 移动端表格设置底部抽屉 */ .mobile-setting-overlay { position: fixed; @@ -2538,6 +2540,13 @@ input[type="number"] { transition: left 0.2s; } +/* 亮色主题下:所有使用 dca-toggle 的拇指在浅底上统一用白色,保证对比度 + - PC 右侧排序设置抽屉 + - 移动端排序个性化设置 Drawer(以及其它区域) */ +[data-theme="light"] .dca-toggle-thumb { + background: #ffffff; +} + .dca-option-group { background: rgba(0, 0, 0, 0.2); border-radius: 8px; diff --git a/app/page.jsx b/app/page.jsx index d0e25ae..3289009 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -217,12 +217,37 @@ export default function HomePage() { } if (rulesFromSettings && rulesFromSettings.length) { - const merged = DEFAULT_SORT_RULES.map((rule) => { - const found = rulesFromSettings.find((r) => r.id === rule.id); - return found - ? { ...rule, enabled: found.enabled !== false } - : rule; + // 1)先按本地存储的顺序还原(包含 alias、enabled 等字段) + const defaultMap = new Map( + DEFAULT_SORT_RULES.map((rule) => [rule.id, rule]) + ); + const merged = []; + + // 先遍历本地配置,保持用户自定义的顺序和别名/开关 + for (const stored of rulesFromSettings) { + const base = defaultMap.get(stored.id); + if (!base) continue; + merged.push({ + ...base, + // 只用本地的 enabled / alias 等个性化字段,基础 label 仍以内置为准 + enabled: + typeof stored.enabled === "boolean" + ? stored.enabled + : base.enabled, + alias: + typeof stored.alias === "string" && stored.alias.trim() + ? stored.alias.trim() + : base.alias, + }); + } + + // 再把本次版本新增、但本地还没记录过的规则追加到末尾 + DEFAULT_SORT_RULES.forEach((rule) => { + if (!merged.some((r) => r.id === rule.id)) { + merged.push(rule); + } }); + setSortRules(merged); }