2025-12-13 15:56:12 +08:00
|
|
|
|
# 管理后台路由架构说明
|
|
|
|
|
|
|
|
|
|
|
|
## 三层架构设计
|
|
|
|
|
|
|
|
|
|
|
|
### 第一层:外层主 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`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2025-12-17 15:32:58 +08:00
|
|
|
|
### 第二层:SubSidebarLayout (各服务内部)
|
|
|
|
|
|
每个管理后台的内部二级菜单,使用 `SubSidebarLayout` 布局。
|
2025-12-13 15:56:12 +08:00
|
|
|
|
|
2025-12-17 15:32:58 +08:00
|
|
|
|
**布局**: `SubSidebarLayout`
|
2025-12-13 15:56:12 +08:00
|
|
|
|
**类型**: `route`(非 iframe)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Platform 管理后台(第二层)
|
|
|
|
|
|
|
|
|
|
|
|
**服务**: `platform`
|
2025-12-17 15:32:58 +08:00
|
|
|
|
**布局**: `SubSidebarLayout`
|
2025-12-13 15:56:12 +08:00
|
|
|
|
|
|
|
|
|
|
### 视图列表
|
|
|
|
|
|
|
|
|
|
|
|
| 序号 | 视图名称 | 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` |
|
|
|
|
|
|
|
|
|
|
|
|
### 权限配置
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- 管理后台入口权限
|
|
|
|
|
|
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`
|
2025-12-17 15:32:58 +08:00
|
|
|
|
**布局**: `SubSidebarLayout`
|
2025-12-13 15:56:12 +08:00
|
|
|
|
|
|
|
|
|
|
### 权限配置
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- 管理后台入口权限
|
|
|
|
|
|
PERM-0611: perm_bidding_admin (bidding:admin:view)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
*注: bidding 管理后台的具体视图需要后续配置*
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Workcase 管理后台(第二层)
|
|
|
|
|
|
|
|
|
|
|
|
**服务**: `workcase`
|
2025-12-17 15:32:58 +08:00
|
|
|
|
**布局**: `SubSidebarLayout`
|
2025-12-13 15:56:12 +08:00
|
|
|
|
|
|
|
|
|
|
### 视图列表
|
|
|
|
|
|
|
|
|
|
|
|
| 序号 | 视图名称 | 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` |
|
|
|
|
|
|
|
|
|
|
|
|
### 权限配置
|
|
|
|
|
|
```sql
|
|
|
|
|
|
-- 管理后台入口权限
|
|
|
|
|
|
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类型)
|
|
|
|
|
|
|
2025-12-17 15:32:58 +08:00
|
|
|
|
### 内层 SubSidebarLayout
|
|
|
|
|
|
各服务内部,显示 `layout='SubSidebarLayout'` 且 `url.startsWith('/admin')` 的视图:
|
2025-12-13 15:56:12 +08:00
|
|
|
|
|
|
|
|
|
|
#### Platform AdminSidebar
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
service === 'platform' &&
|
2025-12-17 15:32:58 +08:00
|
|
|
|
layout === 'SubSidebarLayout' &&
|
2025-12-13 15:56:12 +08:00
|
|
|
|
url.startsWith('/admin')
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### Bidding AdminSidebar
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
service === 'bidding' &&
|
2025-12-17 15:32:58 +08:00
|
|
|
|
layout === 'SubSidebarLayout' &&
|
2025-12-13 15:56:12 +08:00
|
|
|
|
url.startsWith('/admin')
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### Workcase AdminSidebar
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
service === 'workcase' &&
|
2025-12-17 15:32:58 +08:00
|
|
|
|
layout === 'SubSidebarLayout' &&
|
2025-12-13 15:56:12 +08:00
|
|
|
|
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 主界面)
|
2025-12-17 15:32:58 +08:00
|
|
|
|
- **SubSidebarLayout**: 内层管理侧边栏(各管理后台内部)
|
2025-12-13 15:56:12 +08:00
|
|
|
|
- **BlankLayout**: 空白布局(如智能客服首页)
|
|
|
|
|
|
|
|
|
|
|
|
### 2. iframe 嵌套
|
|
|
|
|
|
- 外层 platform 的 iframe 菜单 → 加载各服务的管理后台
|
2025-12-17 15:32:58 +08:00
|
|
|
|
- 各服务内部使用 SubSidebarLayout 渲染二级菜单
|
2025-12-13 15:56:12 +08:00
|
|
|
|
- iframe_url 必须正确指向实际服务地址
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 路由配置
|
|
|
|
|
|
所有 `/admin/*` 路径统一用于管理后台:
|
|
|
|
|
|
- platform: `/admin/overview`, `/admin/user` 等
|
|
|
|
|
|
- bidding: `/admin/*` (待定义)
|
|
|
|
|
|
- workcase: `/admin/overview`, `/admin/knowledge` 等
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 权限验证
|
|
|
|
|
|
前端需要根据 `loginDomain.userViews` 动态渲染菜单:
|
|
|
|
|
|
- 检查 `layout` 字段匹配当前布局
|
|
|
|
|
|
- 检查 `service` 字段匹配当前服务
|
|
|
|
|
|
- 检查用户是否拥有关联的权限
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 迁移说明
|
|
|
|
|
|
|
|
|
|
|
|
如果从旧的单层架构迁移到三层架构:
|
|
|
|
|
|
|
|
|
|
|
|
1. **视图迁移**
|
2025-12-17 15:32:58 +08:00
|
|
|
|
- 将原 platform 的管理视图改为 `layout='SubSidebarLayout'`
|
2025-12-13 15:56:12 +08:00
|
|
|
|
- URL 统一改为 `/admin/*` 格式
|
|
|
|
|
|
- 在 platform 主侧边栏添加 iframe 入口
|
|
|
|
|
|
|
|
|
|
|
|
2. **权限迁移**
|
|
|
|
|
|
- 保留原有权限定义
|
|
|
|
|
|
- 新增管理后台入口权限(如 `perm_platform_admin`)
|
|
|
|
|
|
- 更新视图权限关联
|
|
|
|
|
|
|
|
|
|
|
|
3. **前端组件**
|
2025-12-17 15:32:58 +08:00
|
|
|
|
- 创建 SubSidebarLayout 组件(参考 workcase 实现)
|
2025-12-13 15:56:12 +08:00
|
|
|
|
- 更新 platform 路由配置支持 `/admin/*` 路径
|
|
|
|
|
|
- 配置 iframe 路由指向各服务管理后台
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 总结
|
|
|
|
|
|
|
|
|
|
|
|
这个三层架构设计实现了:
|
|
|
|
|
|
- ✅ **统一入口**: 所有管理后台统一在 platform 主侧边栏
|
|
|
|
|
|
- ✅ **独立管理**: 各服务管理后台相互独立,便于维护
|
|
|
|
|
|
- ✅ **权限细分**: 入口权限 + 功能权限双重控制
|
|
|
|
|
|
- ✅ **灵活扩展**: 新增服务只需添加 iframe 入口和内部视图
|
|
|
|
|
|
- ✅ **用户体验**: 统一的导航风格,清晰的层级结构
|