2026-05-20 21:39:12 +08:00

62 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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]] — 数据源管理菜单和配置页