Project Portal 是一个基于 Vue 3 + Flask 的项目动态管理系统,具备完整的 RBAC 权限管理、多项目管理、图片上传管理和 S3 存储集成等功能。
功能点:
前端实现: frontend/src/views/admin/RoleList.vue
后端 API: /api/roles
数据库表: roles(角色表)、 role_menus(角色菜单关联表)
功能点:
前端实现: frontend/src/views/admin/UserList.vue
后端 API: /api/users
数据库表: users(用户表)
功能点:
前端实现: frontend/src/views/admin/MenuList.vue、 frontend/src/views/admin/MenuAuthModal.vue
数据库表: menus(菜单表)
功能点:
前端实现: frontend/src/views/admin/ProjectList.vue、 frontend/src/views/admin/ProjectForm.vue
后端 API: /api/projects
数据库表: projects(项目表)
功能点:
前端实现:内嵌在 ProjectForm.vue 中
数据库表: project_members(项目成员表)
功能点:
前端实现: frontend/src/components/ImageSelector.vue
组件: frontend/src/components/DirectoryTreeNode.vue(目录树节点)
后端 API: /api/s3/images
功能点:
前端实现: frontend/src/views/admin/NewsForm.vue
架构:独立的 Flask 服务(端口 5050)
功能点:
实现文件: backend/s3/s3_server.py
认证模块: backend/s3/auth.py
认证配置: backend/s3/auth.json
上传接口: /api/upload/image
功能点:
/api/s3-image/{object_key}功能点:
前端实现: frontend/src/views/admin/NewsList.vue、 frontend/src/views/admin/NewsForm.vue
后端 API: /api/news
数据库表: news(动态表)
功能点:
前端实现: frontend/src/views/admin/CategoryList.vue
数据库表: categories(分类表)
功能点:
前端实现: frontend/src/views/admin/Settings.vue
数据库表: settings(设置表)
功能点:
前端实现: frontend/src/views/admin/LogList.vue
数据库表: operation_logs(操作日志表)、 login_logs(登录日志表)
实现方式:
前端实现: frontend/src/views/Login.vue
路由守卫: frontend/src/router/index.js
实现方式:
权限数据:存储在 roles 表的 permissions 字段
/api/api/news/*/api/categories/*/api/projects/*/api/users/*/api/roles/*/api/menus/*/api/settings/*/api/logs/*/api/upload/*/api/s3/*存储扩展:支持阿里云 OSS、腾讯云 COS 等云存储
消息通知:集成邮件、短信通知功能
工作流:添加审批流程
数据分析:增加数据报表和统计功能
移动端:开发移动端适配或小程序
性能优化: