根据用户反馈,个人设置和系统设置功能存在重叠和混淆。采用方案A,将所有设置合并到一个统一的设置页面。
在 router/index.ts 中,/settings 路由被定义了两次(第 222 行和第 427 行),导致路由冲突。
- 个人设置 (
/settings):包含用户级配置和系统级配置 - 系统管理 (
/system):包含系统级管理功能 - 功能边界不清晰,用户容易混淆
Settings/index.vue的页面标题是"系统设置"- 路由的 meta.title 是"个人设置"
- 侧边栏显示的是"个人设置"
用户需要在两个不同的菜单项之间切换才能完成所有设置操作。
设置 (/settings)
├─ 个人设置
│ ├─ 通用设置(用户名、邮箱、语言、时区)
│ ├─ 外观设置(主题、字体、布局)
│ ├─ 分析偏好(默认市场、分析深度)
│ ├─ 通知设置(邮件、系统通知)
│ └─ 安全设置(密码、API密钥)
│
├─ 系统配置
│ ├─ 配置管理(LLM、数据源、市场分类)
│ └─ 缓存管理(缓存清理、过期数据)
│
├─ 系统管理
│ ├─ 数据库管理(连接、备份、恢复)
│ ├─ 操作日志(审计记录)
│ └─ 多数据源同步(同步配置和状态)
│
└─ 关于系统(版本信息、系统状态)
删除:router/index.ts 第 427-456 行的重复 /settings 路由
修改前:
// 个人设置
{
path: '/settings',
children: [
{ path: '', component: Settings },
{ path: 'config', component: ConfigManagement }
]
}
// 系统管理
{
path: '/system',
children: [
{ path: 'database', component: DatabaseManagement },
{ path: 'logs', component: OperationLogs },
{ path: 'sync', component: MultiSourceSync }
]
}修改后:
// 统一的设置
{
path: '/settings',
name: 'Settings',
meta: {
title: '设置',
icon: 'Setting'
},
children: [
{ path: '', name: 'SettingsHome', component: Settings },
{ path: 'config', name: 'ConfigManagement', component: ConfigManagement },
{ path: 'database', name: 'DatabaseManagement', component: DatabaseManagement },
{ path: 'logs', name: 'OperationLogs', component: OperationLogs },
{ path: 'sync', name: 'MultiSourceSync', component: MultiSourceSync },
{ path: 'cache', name: 'CacheManagement', component: CacheManagement }
]
}<el-menu>
<!-- 个人设置 -->
<el-sub-menu index="personal">
<template #title>
<el-icon><User /></el-icon>
<span>个人设置</span>
</template>
<el-menu-item index="general">通用设置</el-menu-item>
<el-menu-item index="appearance">外观设置</el-menu-item>
<el-menu-item index="analysis">分析偏好</el-menu-item>
<el-menu-item index="notifications">通知设置</el-menu-item>
<el-menu-item index="security">安全设置</el-menu-item>
</el-sub-menu>
<!-- 系统配置 -->
<el-sub-menu index="system-config">
<template #title>
<el-icon><Tools /></el-icon>
<span>系统配置</span>
</template>
<el-menu-item index="config">配置管理</el-menu-item>
<el-menu-item index="cache">缓存管理</el-menu-item>
</el-sub-menu>
<!-- 系统管理 -->
<el-sub-menu index="system-admin">
<template #title>
<el-icon><Monitor /></el-icon>
<span>系统管理</span>
</template>
<el-menu-item index="database">数据库管理</el-menu-item>
<el-menu-item index="logs">操作日志</el-menu-item>
<el-menu-item index="sync">多数据源同步</el-menu-item>
</el-sub-menu>
<!-- 关于 -->
<el-menu-item index="about">
<el-icon><InfoFilled /></el-icon>
<span>关于系统</span>
</el-menu-item>
</el-menu>对于系统配置和系统管理的功能,在设置页面中显示导航按钮:
<!-- 配置管理 -->
<el-card v-show="activeTab === 'config'">
<el-alert
title="配置管理"
description="管理 LLM 配置、数据源配置和市场分类配置"
/>
<el-button type="primary" @click="goToConfigManagement">
进入配置管理
</el-button>
</el-card>
<!-- 数据库管理 -->
<el-card v-show="activeTab === 'database'">
<el-alert
title="数据库管理"
description="管理数据库连接、备份和恢复"
/>
<el-button type="primary" @click="goToDatabaseManagement">
进入数据库管理
</el-button>
</el-card>const goToConfigManagement = () => {
router.push('/settings/config')
}
const goToCacheManagement = () => {
router.push('/settings/cache')
}
const goToDatabaseManagement = () => {
router.push('/settings/database')
}
const goToOperationLogs = () => {
router.push('/settings/logs')
}
const goToMultiSourceSync = () => {
router.push('/settings/sync')
}-
✅ 统一入口
- 所有设置在一个地方,用户不需要在多个菜单项之间切换
-
✅ 清晰分组
- 使用子菜单将功能分为:个人设置、系统配置、系统管理
- 功能边界清晰,易于理解
-
✅ 减少菜单项
- 侧边栏菜单更简洁
- 减少一个顶级菜单项(系统管理)
-
✅ 避免路由冲突
- 删除重复的路由定义
- 所有设置相关路由统一在
/settings下
-
✅ 更好的扩展性
- 未来添加新的设置功能,只需在对应分组下添加菜单项
- 不需要考虑应该放在"个人设置"还是"系统管理"
| 方面 | 调整前 | 调整后 |
|---|---|---|
| 菜单项数量 | 2个(个人设置 + 系统管理) | 1个(设置) |
| 功能查找 | 需要在两个菜单间切换 | 在一个页面内切换 |
| 功能分组 | 不清晰 | 清晰(3个子菜单) |
| 路由冲突 | 存在重复定义 | 无冲突 |
| 命名一致性 | 不一致 | 统一为"设置" |
| 文件 | 修改内容 |
|---|---|
frontend/src/router/index.ts |
✅ 删除重复的 /settings 路由定义✅ 合并 /system 路由到 /settings✅ 添加缓存管理路由 |
frontend/src/views/Settings/index.vue |
✅ 更新页面标题为"设置" ✅ 重构菜单结构(使用子菜单) ✅ 添加系统配置和系统管理面板 ✅ 添加导航函数 ✅ 更新图标导入 |
frontend/src/components/Layout/SidebarMenu.vue |
✅ 删除"个人设置"菜单项 ✅ 删除"系统管理"子菜单 ✅ 添加统一的"设置"菜单项 |
- 访问
/settings- ✅ 显示统一的设置页面
- 访问
/settings/config- ✅ 显示配置管理页面
- 访问
/settings/database- ✅ 显示数据库管理页面
- 访问
/settings/logs- ✅ 显示操作日志页面
- 访问
/settings/sync- ✅ 显示多数据源同步页面
- 访问
/settings/cache- ✅ 显示缓存管理页面
- 访问
/system- ❌ 路由不存在(已删除)
- 打开设置页面
- 验证左侧菜单显示3个子菜单:
- ✅ 个人设置(5个子项)
- ✅ 系统配置(2个子项)
- ✅ 系统管理(3个子项)
- 点击各个菜单项
- ✅ 右侧显示对应的设置面板
- 点击"进入XXX管理"按钮
- ✅ 跳转到对应的管理页面
- 查看侧边栏
- ✅ 只显示一个"设置"菜单项
- ❌ 不显示"系统管理"菜单项(已删除)
- 点击"设置"菜单项
- ✅ 跳转到设置页面
验证所有原有功能都可以访问:
- ✅ 通用设置
- ✅ 外观设置
- ✅ 分析偏好
- ✅ 通知设置
- ✅ 安全设置
- ✅ 配置管理
- ✅ 缓存管理
- ✅ 数据库管理
- ✅ 操作日志
- ✅ 多数据源同步
- ✅ 关于系统
侧边栏菜单:
├─ 仪表板
├─ 单股分析
├─ 批量分析
├─ 股票筛选
├─ 分析报告
├─ 个人设置 ❌
│ ├─ 通用设置
│ ├─ 外观设置
│ ├─ 分析偏好
│ ├─ 通知设置
│ ├─ 安全设置
│ └─ 配置管理
└─ 系统管理 ❌
├─ 数据库管理
├─ 操作日志
└─ 多数据源同步
侧边栏菜单:
├─ 仪表板
├─ 单股分析
├─ 批量分析
├─ 股票筛选
├─ 分析报告
└─ 设置 ✅
├─ 个人设置
│ ├─ 通用设置
│ ├─ 外观设置
│ ├─ 分析偏好
│ ├─ 通知设置
│ └─ 安全设置
├─ 系统配置
│ ├─ 配置管理
│ └─ 缓存管理
├─ 系统管理
│ ├─ 数据库管理
│ ├─ 操作日志
│ └─ 多数据源同步
└─ 关于系统
为不同的设置项添加权限控制:
- 个人设置:所有用户可访问
- 系统配置:管理员可访问
- 系统管理:超级管理员可访问
添加设置搜索功能,快速定位需要的设置项。
在仪表板或其他页面添加常用设置的快捷入口。
支持设置的导出和导入,方便在不同环境间同步配置。