This commit is contained in:
Baobhan Sith
2025-04-26 20:51:31 +08:00
parent 70749a2112
commit 2544bc9646
9 changed files with 126 additions and 35 deletions
+13 -2
View File
@@ -44,6 +44,7 @@ interface SettingsState {
fileManagerRowSizeMultiplier?: string; // NEW: 文件管理器行大小乘数 (e.g., '1.0')
fileManagerColWidths?: string; // NEW: 文件管理器列宽 JSON 字符串 (e.g., '{"name": 300, "size": 100}')
commandInputSyncTarget?: 'quickCommands' | 'commandHistory' | 'none'; // NEW: 命令输入同步目标
timezone?: string; // NEW: 时区设置 (e.g., 'Asia/Shanghai', 'UTC')
// Add other general settings keys here as needed
[key: string]: string | undefined; // Allow other string settings
}
@@ -206,6 +207,10 @@ export const useSettingsStore = defineStore('settings', () => {
if (settings.value.commandInputSyncTarget === undefined) {
settings.value.commandInputSyncTarget = 'none'; // 默认不同步
}
// NEW: Timezone default
if (settings.value.timezone === undefined) {
settings.value.timezone = 'UTC'; // 默认 UTC
}
// --- 语言设置 ---
const langFromSettings = settings.value.language;
@@ -282,7 +287,8 @@ export const useSettingsStore = defineStore('settings', () => {
'sidebarPaneWidths', // +++ 添加侧边栏宽度对象键 +++
'fileManagerRowSizeMultiplier', // +++ 添加文件管理器行大小键 +++
'fileManagerColWidths', // +++ 添加文件管理器列宽键 +++
'commandInputSyncTarget' // +++ 添加命令输入同步目标键 +++
'commandInputSyncTarget', // +++ 添加命令输入同步目标键 +++
'timezone' // NEW: 添加时区键
];
if (!allowedKeys.includes(key)) {
console.error(`[SettingsStore] 尝试更新不允许的设置键: ${key}`);
@@ -323,7 +329,8 @@ export const useSettingsStore = defineStore('settings', () => {
'sidebarPaneWidths', // +++ 添加侧边栏宽度对象键 +++
'fileManagerRowSizeMultiplier', // +++ 添加文件管理器行大小键 +++
'fileManagerColWidths', // +++ 添加文件管理器列宽键 +++
'commandInputSyncTarget' // +++ 添加命令输入同步目标键 +++
'commandInputSyncTarget', // +++ 添加命令输入同步目标键 +++
'timezone' // NEW: 添加时区键
];
const filteredUpdates: Partial<SettingsState> = {};
let languageUpdate: string | undefined = undefined; // Use string type
@@ -547,6 +554,9 @@ export const useSettingsStore = defineStore('settings', () => {
return 'none'; // Default to 'none' if invalid or not set
});
// NEW: Getter for timezone setting
const timezone = computed(() => settings.value.timezone || 'UTC'); // Fallback to UTC
// --- CAPTCHA Getters (Public Only) ---
const isCaptchaEnabled = computed(() => captchaSettings.value?.enabled ?? false);
const captchaProvider = computed(() => captchaSettings.value?.provider ?? 'none');
@@ -584,5 +594,6 @@ export const useSettingsStore = defineStore('settings', () => {
updateSidebarPaneWidth, // +++ 暴露更新特定面板宽度的 action +++
updateFileManagerLayoutSettings, // +++ 暴露更新文件管理器布局的 action +++
commandInputSyncTarget, // +++ 暴露命令输入同步目标 getter +++
timezone, // NEW: 暴露时区 getter
};
});