mini-rbac/README.md
2025-01-17 01:04:12 +08:00

135 lines
3.0 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.

# 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)