From da5ac866d9ac1a6543a28286b7138a4e643a0efd Mon Sep 17 00:00:00 2001 From: carry <2641257231@qq.com> Date: Fri, 17 Jan 2025 01:04:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 154 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 104 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 8504539..6234571 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,124 @@ -# Mini RBAC - +# Mini RBAC 系统 `Python(FastAPI)`、`VUE3`实现,仅保留核心权限控制的极简后台管理。 ![index](./imgs/index.png) -# 本地非 Docker 运行 +相关视频:[https://www.bilibili.com/video/BV1mP411H7PL/](https://www.bilibili.com/video/BV1mP411H7PL/) -[本地运行: https://www.bilibili.com/video/BV1mP411H7PL/](https://www.bilibili.com/video/BV1mP411H7PL/) +## 项目说明文档 -[演示地址-前端: http://49.232.203.244:1856](http://49.232.203.244:1856/login) +## 1. 数据库模型 -[演示地址-接口地址: http://49.232.203.244:1855/docs](http://49.232.203.244:1855/docs) +### 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: 接口请求方式 -- [x] 前端菜单权限控制 -- [x] 前端路由权限控制 -- [x] 前端按钮权限控制 -- [x] 后端接口权限控制 +### 1.4 关系表 +- 用户角色关系表 (sys_user_role) + - uid: 用户id + - rid: 角色id + +- 角色菜单关系表 (sys_role_menu) + - rid: 角色id + - mid: 菜单id -### 业务功能 +## 2. API接口 -- [x] 登录、退出、切换角色 -- [x] 用户管理 -> 新增、编辑、删除、查询 -- [x] 角色管理 -> 新增、编辑、删除、查询 -- [x] 菜单管理 -> 新增、编辑、删除、查询 +### 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} 用户切换角色 -## 前端 `node 16.15 LTS` +### 2.3 角色管理 +- GET /role 角色列表 +- POST /role/query 角色查询 +- POST /role 角色新增 +- GET /role/{rid}/menu 查询角色权限 +- DELETE /role/{pk} 角色删除 +- PUT /role/{pk} 角色更新 -```json -{ - "@kangc/v-md-editor": "^2.3.15", - "ant-design-vue": "^3.2.12", - "axios": "^0.27.2", - "echarts": "^5.3.3", - "moment": "^2.29.4", - "normalize.css": "^8.0.1", - "pinia": "^2.0.21", - "pinia-plugin-persistedstate": "^2.2.0", - "vue": "^3.2.38", - "vue-router": "^4.1.5", - "vite": "^3.0.9" -} -``` +### 2.4 菜单管理 +- POST /menu 菜单新增 +- GET /menu 菜单列表 +- DELETE /menu/{pk} 菜单删除 +- PUT /menu/{pk} 菜单更新 -## 后端 `Python 3.9.7` +## 3. 技术栈 -``` -bcrypt==4.0.0 -fastapi==0.82.0 -passlib==1.7.4 -pytest==7.1.3 -python-jose==3.3.0 -requests==2.28.1 -uvicorn==0.18.3 -tortoise-orm==0.19.2 -websockets==10.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开源协议 + +## 图片展示 ### 页面 @@ -76,5 +132,3 @@ websockets==10.3 ![user-api](./imgs/user-api.png) ![role-menu](./imgs/role-menu-api.png) - -