62 lines
2.2 KiB
Markdown
62 lines
2.2 KiB
Markdown
|
|
---
|
|||
|
|
title: Base 模块
|
|||
|
|
created: 2026-04-13
|
|||
|
|
updated: 2026-05-15
|
|||
|
|
type: entity
|
|||
|
|
tags: [module, auth, backend]
|
|||
|
|
sources: [packages/backend/src/modules/base/]
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Base 模块
|
|||
|
|
|
|||
|
|
系统基础设施模块,提供用户认证、RBAC 权限、菜单管理、部门管理等核心能力。
|
|||
|
|
|
|||
|
|
## 数据模型(11个表)
|
|||
|
|
|
|||
|
|
| 表名 | 用途 |
|
|||
|
|
|------|------|
|
|||
|
|
| `base_sys_user` | 后台管理员 |
|
|||
|
|
| `base_sys_role` | 角色 |
|
|||
|
|
| `base_sys_menu` | 菜单和权限配置(树形) |
|
|||
|
|
| `base_sys_department` | 部门(树形) |
|
|||
|
|
| `base_sys_param` | 系统参数 |
|
|||
|
|
| `base_sys_log` | 操作日志 |
|
|||
|
|
| `base_sys_conf` | 系统配置 |
|
|||
|
|
| `base_sys_user_role` | 用户-角色关联 |
|
|||
|
|
| `base_sys_role_menu` | 角色-菜单关联 |
|
|||
|
|
| `base_sys_role_department` | 角色-部门关联 |
|
|||
|
|
|
|||
|
|
## 认证流程
|
|||
|
|
|
|||
|
|
JWT Token 认证:
|
|||
|
|
1. 登录 → 返回 `token` + `refreshToken`
|
|||
|
|
2. 请求头 `Authorization: Bearer {token}`
|
|||
|
|
3. Token 过期 → 用 refreshToken 刷新
|
|||
|
|
4. 前端拦截器自动处理刷新逻辑
|
|||
|
|
|
|||
|
|
## 菜单驱动路由
|
|||
|
|
|
|||
|
|
前端路由由 `base_sys_menu` 表动态生成:
|
|||
|
|
- `type=0`:目录
|
|||
|
|
- `type=1`:菜单页面(`viewPath` 指向 Vue 组件)
|
|||
|
|
- `type=2`:按钮权限(`perms` 标识如 `project:info:add`)
|
|||
|
|
|
|||
|
|
## 数据源管理菜单
|
|||
|
|
|
|||
|
|
2026-05-15 后,[[mysql-data-source]] 的管理入口放在“系统管理 -> 数据源管理”,路径为 `/sys/data-source`,视图为 `modules/base/views/data-source.vue`。
|
|||
|
|
|
|||
|
|
这个入口不是硬编码在前端静态路由里,而是依赖 Base 模块菜单表:
|
|||
|
|
|
|||
|
|
- `packages/backend/src/modules/base/menu.json` 保存“数据源管理”种子菜单。
|
|||
|
|
- `packages/backend/src/modules/base/event/menu.ts` 在后端启动时同步 `/sys/data-source` 到 `base_sys_menu`,并给 admin 角色补齐菜单权限。
|
|||
|
|
- 前端通过 `/admin/base/comm/permmenu` 获取菜单后动态生成路由;`packages/frontend/src/modules/base/config.ts` 不再重复声明该静态页面。
|
|||
|
|
|
|||
|
|
因此如果页面看不到,优先检查 `base_sys_menu` 和角色菜单关系,而不是只看 Vue 文件是否存在。
|
|||
|
|
|
|||
|
|
## 相关页面
|
|||
|
|
|
|||
|
|
- [[project-overview]] — 项目总览
|
|||
|
|
- [[cool-admin-framework]] — 框架提供自动 CRUD
|
|||
|
|
- [[frontend-architecture]] — 前端动态路由
|
|||
|
|
- [[mysql-data-source]] — 数据源管理菜单和配置页
|