release:公开仓库

This commit is contained in:
zy7y 2022-09-19 22:59:27 +08:00
parent 5566e6693b
commit ebf5b77788
13 changed files with 37 additions and 17 deletions

View File

@ -1,24 +1,29 @@
# Mini RBAC # Mini RBAC
仅保留核心权限控制的极简后台管理系统。 `Python(FastAPI)`、`VUE3`实现,仅保留核心权限控制的极简后台管理。
## 进度 ![index](./imgs/index.png)
## 权限控制 ## 功能
### 权限控制
- [x] 前端菜单权限控制 - [x] 前端菜单权限控制
- [x] 前端路由权限控制 - [x] 前端路由权限控制
- [x] 前端按钮权限控制 - [x] 前端按钮权限控制
- [x] 后端接口权限控制 - [x] 后端接口权限控制
### 业务功能
- [x] 登录、退出、切换角色
- [x] 用户管理 -> 新增、编辑、删除、查询
- [x] 角色管理 -> 新增、编辑、删除、查询
- [x] 菜单管理 -> 新增、编辑、删除、查询
## 功能导向
- [x] 登录、退出 # 使用框架&工具
- [ ] 用户管理
- [ ] 角色管理
- [ ] 菜单管理
# 技术实现
## 前端 `node 16.15 LTS` ## 前端 `node 16.15 LTS`
```json ```json
{ {
"@kangc/v-md-editor": "^2.3.15",
"ant-design-vue": "^3.2.12", "ant-design-vue": "^3.2.12",
"axios": "^0.27.2", "axios": "^0.27.2",
"echarts": "^5.3.3",
"moment": "^2.29.4", "moment": "^2.29.4",
"normalize.css": "^8.0.1",
"pinia": "^2.0.21", "pinia": "^2.0.21",
"pinia-plugin-persistedstate": "^2.2.0", "pinia-plugin-persistedstate": "^2.2.0",
"vue": "^3.2.38", "vue": "^3.2.38",
@ -31,8 +36,27 @@
bcrypt==4.0.0 bcrypt==4.0.0
fastapi==0.82.0 fastapi==0.82.0
passlib==1.7.4 passlib==1.7.4
pytest==7.1.3
python-jose==3.3.0 python-jose==3.3.0
tomli==2.0.1 requests==2.28.1
tortoise-orm==0.19.2
uvicorn==0.18.3 uvicorn==0.18.3
tortoise-orm==0.19.2
websockets==10.3
``` ```
<details>
<summary>更多图片</summary>
### 页面
![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)
</details>

Binary file not shown.

View File

@ -1,2 +1,2 @@
VITE_BASE_URL = /api VITE_BASE_URL = /api
VITE_WEBSOCKET = /socket VITE_WS = ws://localhost:8000/ws

View File

@ -5,7 +5,7 @@ import EachartView from '@/components/echart/eachart-view.vue'
import MarkdownView from '@/components/markdown/preview-view.vue' import MarkdownView from '@/components/markdown/preview-view.vue'
/** websocket */ /** websocket */
let ws = new WebSocket('ws://localhost:8000/ws') let ws = new WebSocket(import.meta.env.VITE_WS)
// //
const data = reactive({ const data = reactive({

View File

@ -25,10 +25,6 @@ export default defineConfig({
target: 'http://localhost:8000', target: 'http://localhost:8000',
changeOrigin: true, changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '') rewrite: (path) => path.replace(/^\/api/, '')
},
'/socket': {
target: 'ws://localhost:8000/ws',
ws: true
} }
} }
} }

BIN
imgs/index.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
imgs/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
imgs/menuadd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
imgs/role-menu-api.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
imgs/roleadd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
imgs/select.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
imgs/user-api.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
imgs/useradd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB