135 lines
3.0 KiB
Markdown
135 lines
3.0 KiB
Markdown
# Mini RBAC 系统
|
||
`Python(FastAPI)`、`VUE3`实现,仅保留核心权限控制的极简后台管理。
|
||
![index](./imgs/index.png)
|
||
|
||
相关视频:[https://www.bilibili.com/video/BV1mP411H7PL/](https://www.bilibili.com/video/BV1mP411H7PL/)
|
||
|
||
## 项目说明文档
|
||
|
||
## 1. 数据库模型
|
||
|
||
### 1.1 用户表 (sys_user)
|
||
- username: 账号 (唯一)
|
||
- nickname: 姓名
|
||
- password: 密码
|
||
|
||
### 1.2 角色表 (sys_role)
|
||
- name: 角色名称
|
||
- remark: 角色描述
|
||
|
||
### 1.3 菜单表 (sys_menu)
|
||
- name: 名称
|
||
- icon: 菜单图标
|
||
- path: 菜单url
|
||
- type: 菜单类型 (0目录 1组件 2按钮 3数据)
|
||
- component: 组件地址
|
||
- pid: 父id
|
||
- identifier: 权限标识 (如user:add)
|
||
- api: 接口地址
|
||
- method: 接口请求方式
|
||
|
||
### 1.4 关系表
|
||
- 用户角色关系表 (sys_user_role)
|
||
- uid: 用户id
|
||
- rid: 角色id
|
||
|
||
- 角色菜单关系表 (sys_role_menu)
|
||
- rid: 角色id
|
||
- mid: 菜单id
|
||
|
||
## 2. API接口
|
||
|
||
### 2.1 认证相关
|
||
- POST /login 用户登录
|
||
- GET /ws WebSocket系统信息
|
||
|
||
### 2.2 用户管理
|
||
- GET /user 用户列表
|
||
- POST /user/query 用户查询
|
||
- POST /user 用户新增
|
||
- DELETE /user/{pk} 用户删除
|
||
- GET /user/{pk} 用户信息
|
||
- PUT /user/{pk} 用户更新
|
||
- PUT /user/role/{rid} 用户切换角色
|
||
|
||
### 2.3 角色管理
|
||
- GET /role 角色列表
|
||
- POST /role/query 角色查询
|
||
- POST /role 角色新增
|
||
- GET /role/{rid}/menu 查询角色权限
|
||
- DELETE /role/{pk} 角色删除
|
||
- PUT /role/{pk} 角色更新
|
||
|
||
### 2.4 菜单管理
|
||
- POST /menu 菜单新增
|
||
- GET /menu 菜单列表
|
||
- DELETE /menu/{pk} 菜单删除
|
||
- PUT /menu/{pk} 菜单更新
|
||
|
||
## 3. 技术栈
|
||
|
||
### 3.1 后端
|
||
- Python 3.x
|
||
- FastAPI (Web框架)
|
||
- Tortoise ORM (ORM框架)
|
||
- Uvicorn (ASGI服务器)
|
||
- Gunicorn (WSGI服务器)
|
||
- bcrypt (密码加密)
|
||
- python-jose (JWT认证)
|
||
|
||
### 3.2 前端
|
||
- Vue 3 (前端框架)
|
||
- Pinia (状态管理)
|
||
- Vue Router (路由管理)
|
||
- Ant Design Vue (UI组件库)
|
||
- ECharts (图表库)
|
||
- Vite (构建工具)
|
||
- Axios (HTTP客户端)
|
||
|
||
## 4. 网页页面
|
||
|
||
### 4.1 主要页面结构
|
||
- 登录页 (login)
|
||
- 主页面 (main)
|
||
- 仪表盘 (dashboard)
|
||
- 系统管理
|
||
- 用户管理 (user)
|
||
- 角色管理 (role)
|
||
- 菜单管理 (menu)
|
||
- 测试页面 (test)
|
||
|
||
### 4.2 页面功能
|
||
- 登录认证
|
||
- 用户管理:增删改查、角色分配
|
||
- 角色管理:增删改查、权限分配
|
||
- 菜单管理:增删改查
|
||
- 仪表盘:系统信息展示
|
||
- WebSocket实时数据更新
|
||
|
||
### 4.3权限控制
|
||
- 前端菜单权限控制
|
||
- 前端路由权限控制
|
||
- 前端按钮权限控制
|
||
- 后端接口权限控制
|
||
|
||
|
||
## 备注
|
||
原项目地址:[https://github.com/zy7y/mini-rbac](https://github.com/zy7y/mini-rbac)
|
||
|
||
本人学习全栈项目时clone了这个项目作为参考,同时优化了readme文件,未违反mit开源协议
|
||
|
||
## 图片展示
|
||
|
||
### 页面
|
||
|
||
![login](./imgs/login.png)
|
||
![change](./imgs//select.png)
|
||
![user](./imgs/useradd.png)
|
||
![role](./imgs/menuadd.png)
|
||
![menu](./imgs/roleadd.png)
|
||
|
||
### 接口
|
||
|
||
![user-api](./imgs/user-api.png)
|
||
![role-menu](./imgs/role-menu-api.png)
|