Files
urbanLifeline/urbanLifelineServ/.bin/database/postgres/sql/admin_routes_architecture.md
2025-12-13 15:56:12 +08:00

7.4 KiB
Raw Blame History

管理后台路由架构说明

三层架构设计

第一层:外层主 Sidebar (platform 服务)

显示在平台主界面的侧边栏,包含用户应用和管理后台入口。

布局: SidebarLayout
服务: platform

用户应用入口

  • 泰豪AI助手 (/aichat)
  • 全部应用 (/agents)
  • 智能体编排 (/app/workflow) - iframe
  • 招标助手 (/app/bidding) - iframe
  • 泰豪小电 (/app/workcase) - iframe

管理后台入口iframe类型

  1. 平台管理后台 (/admin/platform)

    • iframe_url: /platform/admin
    • 权限: perm_platform_admin
  2. 智能标书管理后台 (/admin/bidding)

    • iframe_url: /bidding/admin
    • 权限: perm_bidding_admin
  3. 泰豪小电管理后台 (/admin/workcase)

    • iframe_url: /workcase/admin
    • 权限: perm_workcase_admin

第二层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 字段匹配当前服务
  • 检查用户是否拥有关联的权限

迁移说明

如果从旧的单层架构迁移到三层架构:

  1. 视图迁移

    • 将原 platform 的管理视图改为 layout='AdminSidebarLayout'
    • URL 统一改为 /admin/* 格式
    • 在 platform 主侧边栏添加 iframe 入口
  2. 权限迁移

    • 保留原有权限定义
    • 新增管理后台入口权限(如 perm_platform_admin
    • 更新视图权限关联
  3. 前端组件

    • 创建 AdminSidebarLayout 组件(参考 workcase 实现)
    • 更新 platform 路由配置支持 /admin/* 路径
    • 配置 iframe 路由指向各服务管理后台

总结

这个三层架构设计实现了:

  • 统一入口: 所有管理后台统一在 platform 主侧边栏
  • 独立管理: 各服务管理后台相互独立,便于维护
  • 权限细分: 入口权限 + 功能权限双重控制
  • 灵活扩展: 新增服务只需添加 iframe 入口和内部视图
  • 用户体验: 统一的导航风格,清晰的层级结构