diff --git a/README.md b/README.md index e7d54d1..6e41a6b 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,29 @@ # Mini RBAC -仅保留核心权限控制的极简后台管理系统。 -## 进度 -## 权限控制 +`Python(FastAPI)`、`VUE3`实现,仅保留核心权限控制的极简后台管理。 +![index](./imgs/index.png) +## 功能 +### 权限控制 - [x] 前端菜单权限控制 - [x] 前端路由权限控制 - [x] 前端按钮权限控制 - [x] 后端接口权限控制 +### 业务功能 +- [x] 登录、退出、切换角色 +- [x] 用户管理 -> 新增、编辑、删除、查询 +- [x] 角色管理 -> 新增、编辑、删除、查询 +- [x] 菜单管理 -> 新增、编辑、删除、查询 -## 功能导向 -- [x] 登录、退出 -- [ ] 用户管理 -- [ ] 角色管理 -- [ ] 菜单管理 -# 技术实现 + +# 使用框架&工具 ## 前端 `node 16.15 LTS` ```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", @@ -31,8 +36,27 @@ bcrypt==4.0.0 fastapi==0.82.0 passlib==1.7.4 +pytest==7.1.3 python-jose==3.3.0 -tomli==2.0.1 -tortoise-orm==0.19.2 +requests==2.28.1 uvicorn==0.18.3 +tortoise-orm==0.19.2 +websockets==10.3 ``` + + + +
+更多图片 + +### 页面 +![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) + +
\ No newline at end of file diff --git a/backend/mini.db-shm b/backend/mini.db-shm index 975cdd3..d7e2633 100644 Binary files a/backend/mini.db-shm and b/backend/mini.db-shm differ diff --git a/frontend/.env.development b/frontend/.env.development index 44a6eff..1b9f964 100644 --- a/frontend/.env.development +++ b/frontend/.env.development @@ -1,2 +1,2 @@ VITE_BASE_URL = /api -VITE_WEBSOCKET = /socket +VITE_WS = ws://localhost:8000/ws diff --git a/frontend/src/views/main/dashboard/index/index.vue b/frontend/src/views/main/dashboard/index/index.vue index 10f5baa..3a67bf7 100644 --- a/frontend/src/views/main/dashboard/index/index.vue +++ b/frontend/src/views/main/dashboard/index/index.vue @@ -5,7 +5,7 @@ import EachartView from '@/components/echart/eachart-view.vue' import MarkdownView from '@/components/markdown/preview-view.vue' /** websocket */ -let ws = new WebSocket('ws://localhost:8000/ws') +let ws = new WebSocket(import.meta.env.VITE_WS) // 响应式数据 const data = reactive({ diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 130fb3e..27f9626 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -25,10 +25,6 @@ export default defineConfig({ target: 'http://localhost:8000', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') - }, - '/socket': { - target: 'ws://localhost:8000/ws', - ws: true } } } diff --git a/imgs/index.png b/imgs/index.png new file mode 100644 index 0000000..698333c Binary files /dev/null and b/imgs/index.png differ diff --git a/imgs/login.png b/imgs/login.png new file mode 100644 index 0000000..db5a14d Binary files /dev/null and b/imgs/login.png differ diff --git a/imgs/menuadd.png b/imgs/menuadd.png new file mode 100644 index 0000000..977a8e2 Binary files /dev/null and b/imgs/menuadd.png differ diff --git a/imgs/role-menu-api.png b/imgs/role-menu-api.png new file mode 100644 index 0000000..2ee6f20 Binary files /dev/null and b/imgs/role-menu-api.png differ diff --git a/imgs/roleadd.png b/imgs/roleadd.png new file mode 100644 index 0000000..0f0cc0c Binary files /dev/null and b/imgs/roleadd.png differ diff --git a/imgs/select.png b/imgs/select.png new file mode 100644 index 0000000..8618c7a Binary files /dev/null and b/imgs/select.png differ diff --git a/imgs/user-api.png b/imgs/user-api.png new file mode 100644 index 0000000..bade1ea Binary files /dev/null and b/imgs/user-api.png differ diff --git a/imgs/useradd.png b/imgs/useradd.png new file mode 100644 index 0000000..4fae241 Binary files /dev/null and b/imgs/useradd.png differ