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