Files
ledgerly/frontend/src/views/Settings.vue
T
rosercode 1f520f4376 feat: 用户级偏好配置与外观设置,枚举统一抽取与账单类型后端下发
- 新增用户偏好表 t_user_preference 与进程内缓存,账单来源统计默认值由全局改为按用户存储(/api/setting)
- 新增外观设置:不计入统计记录支持删除线与灰色标签两种展示样式
- 抽取 ChannelType / TransactionType / StatisticsScope 枚举,替换各处硬编码的渠道、类型与统计口径
- BillType 内聚各来源扩展名,新增 /transaction/import/types 接口,前端改为按后端下发渲染
- 仪表盘趋势图支持点击柱子跳转收支记录并带入筛选条件
- 布局内容区按路由记忆滚动位置;已登录访问登录/注册页自动跳转
2026-09-21 10:51:15 +08:00

42 lines
1.2 KiB
Vue

<script setup lang="ts">
// 系统设置页:上下分区展示数据库配置、注册设置、账单来源统计、AI 模型配置与定时通知
import { useI18n } from 'vue-i18n'
import DatabaseConfigPanel from '../components/DatabaseConfigPanel.vue'
import RegistrationConfigPanel from '../components/RegistrationConfigPanel.vue'
import BillSourceStatsPanel from '../components/BillSourceStatsPanel.vue'
import DisplayConfigPanel from '../components/DisplayConfigPanel.vue'
import AiConfigPanel from '../components/AiConfigPanel.vue'
import NotificationConfigPanel from '../components/NotificationConfigPanel.vue'
const { t } = useI18n()
</script>
<template>
<div class="settings-page">
<h2 class="page-title">{{ t('settings.title') }}</h2>
<DatabaseConfigPanel />
<RegistrationConfigPanel />
<BillSourceStatsPanel />
<DisplayConfigPanel />
<AiConfigPanel />
<NotificationConfigPanel />
</div>
</template>
<style scoped>
.settings-page {
max-width: 860px;
display: flex;
flex-direction: column;
gap: 20px;
}
.page-title {
margin: 0;
}
.settings-page > :deep(.n-card) {
border: 1px solid #efeff5;
border-radius: 12px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
</style>