7.4 KiB
7.4 KiB
管理后台路由架构说明
三层架构设计
第一层:外层主 Sidebar (platform 服务)
显示在平台主界面的侧边栏,包含用户应用和管理后台入口。
布局: SidebarLayout
服务: platform
用户应用入口
- 泰豪AI助手 (
/aichat) - 全部应用 (
/agents) - 智能体编排 (
/app/workflow) - iframe - 招标助手 (
/app/bidding) - iframe - 泰豪小电 (
/app/workcase) - iframe
管理后台入口(iframe类型)
-
平台管理后台 (
/admin/platform)- iframe_url:
/platform/admin - 权限:
perm_platform_admin
- iframe_url:
-
智能标书管理后台 (
/admin/bidding)- iframe_url:
/bidding/admin - 权限:
perm_bidding_admin
- iframe_url:
-
泰豪小电管理后台 (
/admin/workcase)- iframe_url:
/workcase/admin - 权限:
perm_workcase_admin
- iframe_url:
第二层:AdminSidebarLayout (各服务内部)
每个管理后台的内部二级菜单,使用 AdminSidebarLayout 布局。
布局: AdminSidebarLayout
类型: route(非 iframe)
Platform 管理后台(第二层)
服务: platform
布局: AdminSidebarLayout
视图列表
| 序号 | 视图名称 | URL | 组件路径 | 权限 |
|---|---|---|---|---|
| 1 | 数据概览 | /admin/overview |
admin/overview/OverviewView.vue |
perm_platform_admin_overview |
| 2 | 用户管理 | /admin/user |
admin/user/UserView.vue |
perm_platform_admin_user |
| 3 | 知识库 | /admin/knowledge |
admin/knowledge/KnowledgeView.vue |
perm_platform_admin_knowledge |
| 4 | 系统配置 | /admin/config |
admin/config/ConfigView.vue |
perm_platform_admin_config |
权限配置
-- 管理后台入口权限
PERM-0601: perm_platform_admin (platform:admin:view)
-- 内部功能权限
PERM-0602: perm_platform_admin_overview (platform:admin:overview)
PERM-0603: perm_platform_admin_user (platform:admin:user)
PERM-0604: perm_platform_admin_knowledge (platform:admin:knowledge)
PERM-0605: perm_platform_admin_config (platform:admin:config)
Bidding 管理后台(第二层)
服务: bidding
布局: AdminSidebarLayout
权限配置
-- 管理后台入口权限
PERM-0611: perm_bidding_admin (bidding:admin:view)
注: bidding 管理后台的具体视图需要后续配置
Workcase 管理后台(第二层)
服务: workcase
布局: AdminSidebarLayout
视图列表
| 序号 | 视图名称 | URL | 组件路径 | 权限 |
|---|---|---|---|---|
| 1 | 数据概览 | /admin/overview |
admin/overview/OverviewView.vue |
perm_workcase_overview |
| 2 | 知识库管理 | /admin/knowledge |
admin/knowledge/KnowLedgeView.vue |
perm_workcase_knowledge |
| 3 | 工单管理 | /admin/workcase |
admin/workcase/WorkcaseView.vue |
perm_workcase_tickets |
| 4 | 对话数据 | /admin/customerChat |
admin/customerChat/CustomerChatView.vue |
perm_workcase_conversation |
| 5 | 智能体管理 | /admin/agent |
admin/agent/AgentView.vue |
perm_workcase_agent |
| 6 | 日志管理 | /admin/log |
(目录) | perm_workcase_log |
| 6.1 | └ 知识库日志 | /admin/log/knowledge |
admin/log/knowledgeLog/KnowledgeLogView.vue |
perm_workcase_log |
| 6.2 | └ 工单日志 | /admin/log/workcase |
admin/log/workcaseLog/WorkcaseLogView.vue |
perm_workcase_log |
| 6.3 | └ 系统日志 | /admin/log/system |
admin/log/systemLog/SystemLogView.vue |
perm_workcase_log |
权限配置
-- 管理后台入口权限
PERM-0621: perm_workcase_admin (workcase:admin:view)
-- 内部功能权限
PERM-0622: perm_workcase_overview (workcase:overview:view)
PERM-0623: perm_workcase_knowledge (workcase:knowledge:view)
PERM-0624: perm_workcase_tickets (workcase:tickets:view)
PERM-0625: perm_workcase_conversation (workcase:conversation:view)
PERM-0626: perm_workcase_agent (workcase:agent:view)
PERM-0627: perm_workcase_log (workcase:log:view)
路由过滤规则
外层主 Sidebar (platform/SidebarLayout)
显示所有 service='platform' 且 layout='SidebarLayout' 的视图:
- 用户应用入口(普通路由和iframe)
- 管理后台入口(iframe类型)
内层 AdminSidebarLayout
各服务内部,显示 layout='AdminSidebarLayout' 且 url.startsWith('/admin') 的视图:
Platform AdminSidebar
service === 'platform' &&
layout === 'AdminSidebarLayout' &&
url.startsWith('/admin')
Bidding AdminSidebar
service === 'bidding' &&
layout === 'AdminSidebarLayout' &&
url.startsWith('/admin')
Workcase AdminSidebar
service === 'workcase' &&
layout === 'AdminSidebarLayout' &&
url.startsWith('/admin')
数据库表关系
视图类型说明
| type | view_type | 说明 | 示例 |
|---|---|---|---|
| 1 | route | 普通路由视图 | 数据概览、用户管理 |
| 1 | iframe | iframe嵌入视图 | 管理后台入口、Dify编排 |
| 0 | route | 目录(不可点击) | 日志管理 |
| 3 | route | 默认首页(隐藏) | 智能客服首页 |
视图权限关联
每个视图通过 tb_sys_view_permission 表关联到对应权限:
- 一个视图可以关联多个权限(AND 逻辑)
- 用户需要拥有所有关联权限才能访问该视图
角色权限继承
- 超级管理员: 自动拥有所有权限
- 系统管理员: 拥有所有 module 的管理权限(除删除外)
- 普通用户: 基础查看权限 + 平台基础菜单访问
- 访客: 仅查看权限 + 部分平台菜单访问
前端实现注意事项
1. Layout 组件
- SidebarLayout: 外层主侧边栏(platform 主界面)
- AdminSidebarLayout: 内层管理侧边栏(各管理后台内部)
- BlankLayout: 空白布局(如智能客服首页)
2. iframe 嵌套
- 外层 platform 的 iframe 菜单 → 加载各服务的管理后台
- 各服务内部使用 AdminSidebarLayout 渲染二级菜单
- iframe_url 必须正确指向实际服务地址
3. 路由配置
所有 /admin/* 路径统一用于管理后台:
- platform:
/admin/overview,/admin/user等 - bidding:
/admin/*(待定义) - workcase:
/admin/overview,/admin/knowledge等
4. 权限验证
前端需要根据 loginDomain.userViews 动态渲染菜单:
- 检查
layout字段匹配当前布局 - 检查
service字段匹配当前服务 - 检查用户是否拥有关联的权限
迁移说明
如果从旧的单层架构迁移到三层架构:
-
视图迁移
- 将原 platform 的管理视图改为
layout='AdminSidebarLayout' - URL 统一改为
/admin/*格式 - 在 platform 主侧边栏添加 iframe 入口
- 将原 platform 的管理视图改为
-
权限迁移
- 保留原有权限定义
- 新增管理后台入口权限(如
perm_platform_admin) - 更新视图权限关联
-
前端组件
- 创建 AdminSidebarLayout 组件(参考 workcase 实现)
- 更新 platform 路由配置支持
/admin/*路径 - 配置 iframe 路由指向各服务管理后台
总结
这个三层架构设计实现了:
- ✅ 统一入口: 所有管理后台统一在 platform 主侧边栏
- ✅ 独立管理: 各服务管理后台相互独立,便于维护
- ✅ 权限细分: 入口权限 + 功能权限双重控制
- ✅ 灵活扩展: 新增服务只需添加 iframe 入口和内部视图
- ✅ 用户体验: 统一的导航风格,清晰的层级结构