feat: 新增设置页面,包含通用、安全、数据管理功能,并引入相关类型定义。

This commit is contained in:
2026-02-02 11:03:37 +08:00
parent 81ea0e1889
commit a959080a01
2 changed files with 36 additions and 0 deletions

View File

@@ -455,6 +455,40 @@ function Settings() {
/> />
</div> </div>
</div> </div>
<div className="settings-item">
<div className="settings-item-info">
<label className="settings-item__label"></label>
<p className="settings-item__description"></p>
</div>
<CustomSelect
className="settings-custom-select"
value={userSettings?.notificationChannel || 'sms'}
onChange={(value) => handleUserSettingChange('notificationChannel', value)}
options={[
{ value: 'sms', label: '仅短信' },
{ value: 'email', label: '仅邮件' },
{ value: 'both', label: '短信和邮件' },
{ value: 'none', label: '不通知' },
]}
/>
</div>
<div className="settings-item">
<div className="settings-item-info">
<label className="settings-item__label"></label>
<p className="settings-item__description"></p>
</div>
<div className="settings-input-container">
<input
type="email"
className="settings-text-input"
placeholder="请输入邮箱"
value={userSettings?.email || ''}
onChange={(e) => handleUserSettingChange('email', e.target.value)}
/>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>

View File

@@ -78,6 +78,8 @@ export interface UserSettings {
defaultExpenseAccount?: Account | null; defaultExpenseAccount?: Account | null;
defaultIncomeAccount?: Account | null; defaultIncomeAccount?: Account | null;
phone?: string; phone?: string;
email?: string;
notificationChannel?: 'sms' | 'email' | 'both' | 'none';
} }
// Tag Interface // Tag Interface