feat: 实现应用设置页面,包含通用偏好、安全、数据管理及默认账户配置。

This commit is contained in:
2026-01-29 23:03:59 +08:00
parent e781525d65
commit bc3b21ebd6

View File

@@ -5,10 +5,9 @@ import AppLockSettings from '../../components/settings/AppLockSettings';
import { CapsuleSelector } from '../../components/common/CapsuleSelector/CapsuleSelector'; import { CapsuleSelector } from '../../components/common/CapsuleSelector/CapsuleSelector';
import { CustomSelect } from '../../components/common/CustomSelect/CustomSelect'; import { CustomSelect } from '../../components/common/CustomSelect/CustomSelect';
import { getSupportedCurrencies } from '../../services/exchangeRateService'; import { getSupportedCurrencies } from '../../services/exchangeRateService';
import { getSupportedCurrencies } from '../../services/exchangeRateService'; import { updateSettings, updateDefaultAccounts, getSettingsWithDefaults } from '../../services/settingsService';
import { getSettings, updateSettings, updateDefaultAccounts } from '../../services/settingsService';
import { getAccounts } from '../../services/accountService'; import { getAccounts } from '../../services/accountService';
import type { UserSettings, Account } from '../../types'; import type { UserSettings, UserSettingsWithDefaults, Account } from '../../types';
import { Icon } from '@iconify/react'; import { Icon } from '@iconify/react';
import { ThemePicker } from '../../components/settings/ThemePicker/ThemePicker'; import { ThemePicker } from '../../components/settings/ThemePicker/ThemePicker';
import './Settings.css'; import './Settings.css';
@@ -39,7 +38,7 @@ function Settings() {
dateFormat: localStorage.getItem('dateFormat') || 'YYYY-MM-DD', dateFormat: localStorage.getItem('dateFormat') || 'YYYY-MM-DD',
firstDayOfWeek: parseInt(localStorage.getItem('firstDayOfWeek') || '1'), firstDayOfWeek: parseInt(localStorage.getItem('firstDayOfWeek') || '1'),
}); });
const [userSettings, setUserSettings] = useState<UserSettings | null>(null); const [userSettings, setUserSettings] = useState<UserSettingsWithDefaults | null>(null);
const [accounts, setAccounts] = useState<Account[]>([]); const [accounts, setAccounts] = useState<Account[]>([]);
const [saveMessage, setSaveMessage] = useState<string>(''); const [saveMessage, setSaveMessage] = useState<string>('');
@@ -55,7 +54,7 @@ function Settings() {
const loadUserSettings = async () => { const loadUserSettings = async () => {
try { try {
const data = await getSettings(); const data = await getSettingsWithDefaults();
setUserSettings(data); setUserSettings(data);
} catch (err) { } catch (err) {
console.error('Failed to load user settings:', err); console.error('Failed to load user settings:', err);