fix: 排序别名存储问题

This commit is contained in:
hzm
2026-03-16 19:28:24 +08:00
parent 5d97f8f83e
commit a7eb537e67
2 changed files with 39 additions and 5 deletions

View File

@@ -2093,10 +2093,12 @@ input[type="number"] {
flex-shrink: 0; flex-shrink: 0;
} }
/* 亮色主题下PC 右侧抽屉里的 Switch 拇指使用浅色,以保证对比度 */
[data-theme="light"] .pc-table-setting-drawer .dca-toggle-thumb { [data-theme="light"] .pc-table-setting-drawer .dca-toggle-thumb {
background: #fff; background: #fff;
} }
/* 移动端表格设置底部抽屉 */ /* 移动端表格设置底部抽屉 */
.mobile-setting-overlay { .mobile-setting-overlay {
position: fixed; position: fixed;
@@ -2538,6 +2540,13 @@ input[type="number"] {
transition: left 0.2s; transition: left 0.2s;
} }
/* 亮色主题下:所有使用 dca-toggle 的拇指在浅底上统一用白色,保证对比度
- PC 右侧排序设置抽屉
- 移动端排序个性化设置 Drawer以及其它区域 */
[data-theme="light"] .dca-toggle-thumb {
background: #ffffff;
}
.dca-option-group { .dca-option-group {
background: rgba(0, 0, 0, 0.2); background: rgba(0, 0, 0, 0.2);
border-radius: 8px; border-radius: 8px;

View File

@@ -217,12 +217,37 @@ export default function HomePage() {
} }
if (rulesFromSettings && rulesFromSettings.length) { if (rulesFromSettings && rulesFromSettings.length) {
const merged = DEFAULT_SORT_RULES.map((rule) => { // 1先按本地存储的顺序还原包含 alias、enabled 等字段)
const found = rulesFromSettings.find((r) => r.id === rule.id); const defaultMap = new Map(
return found DEFAULT_SORT_RULES.map((rule) => [rule.id, rule])
? { ...rule, enabled: found.enabled !== false } );
: 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); setSortRules(merged);
} }