4.9 KiB
4.9 KiB
项目介绍文档
1. 项目概述
本项目是一个基于 RBAC (Role-Based Access Control) 模型权限控制的中小型应用基础开发平台。项目采用前后端分离架构,旨在提供一套功能完善、易于扩展的后台管理系统解决方案。
项目包含三个主要部分:
- Web 管理端:提供完整的后台管理界面。
- 后端 API 服务:提供 RESTful API 接口及业务逻辑处理。
- 移动端:支持微信小程序及 H5,方便移动办公。
2. 技术栈
2.1 后端 (Server)
- 核心框架: Django 3.2.23
- API 框架: Django REST Framework (DRF) 3.12.4
- 异步任务: Celery 5.2.7 + Redis (用于定时任务、异步操作)
- 认证机制: JWT (JSON Web Token) - djangorestframework-simplejwt
- 接口文档: Swagger (drf-yasg)
- 数据库:
- 开发环境默认使用 SQLite
- 生产环境及工作流模块建议使用 PostgreSQL
- 其他特性:
- 支持 CORS 跨域
- 使用 django-simple-history 实现审计/历史记录功能
2.2 前端 (Web Client)
- 核心框架: Vue.js 2.6.10
- UI 组件库: Element UI 2.15.14
- 路由管理: Vue Router 3.0.6
- 状态管理: Vuex 3.1.0
- HTTP 请求: Axios
- 图表/可视化: D3.js, Dagre-D3 (用于工作流展示等)
- 工具组件:
- vue-treeselect (树形选择)
- xlsx (Excel 导入导出)
2.3 移动端 (Mobile Client)
- 框架: Uni-app (基于 Vue.js)
- UI 库: uView UI
- 发布目标: 微信小程序, H5
3. 核心功能模块
3.1 系统管理 (System)
- 组织架构管理: 支持多级组织机构管理。
- 用户管理: 用户的增删改查,支持分配角色和岗位。
- 角色管理: 基于 RBAC 的角色管理,支持功能权限分配。
- 岗位管理: 用户的职位/岗位管理。
- 菜单/权限管理:
- 功能权限: 控制到每一个 API 接口的访问权限。
- 数据权限: 支持全部、本级及以下、同级及以下、本人等多种数据可见范围控制。
- 数据字典: 系统通用的字典数据管理。
- 文件库: 统一的文件上传和管理。
3.2 客户关系管理 (CRM)
- 包含基本的 CRM 功能模块(具体业务逻辑见
apps/crm)。
3.3 工作流 (Workflow)
- 基于
loonflow引擎简化的工作流实现。 - 支持工作流定义、状态流转。
- 注意: 后端代码位于
apps/wf,建议配合 PostgreSQL 使用以获得完整支持(SQLite 可能不支持部分 JSON 查询)。
3.4 系统监控 (Monitor)
- 服务监控: 监控服务器状态、服务运行情况。
- 定时任务: 基于 Celery Beat 的定时任务管理。
- 审计日志: 记录用户操作历史。
4. 项目结构说明
root/
├── admin/
│ ├── client/ # Web 前端项目源码 (Vue + ElementUI)
│ ├── client_mp/ # 移动端项目源码 (Uni-app + uView)
│ └── server/ # 后端项目源码 (Django)
│ ├── apps/ # 业务应用模块 (crm, monitor, system, wf)
│ ├── server/ # Django 项目配置 (settings, urls)
│ ├── utils/ # 通用工具类
│ └── manage.py # Django 管理脚本
├── wechat-mini-program/ # 原生微信小程序代码 (可能为旧版或独立模块)
└── docker-compose.yml # Docker 部署配置
5. 快速开始
5.1 后端启动 (Windows)
- 进入
admin/server目录。 - 创建并激活虚拟环境:
python -m venv venv .\venv\scripts\activate - 安装依赖:
pip install -r requirements.txt - 配置数据库: 复制
conf_e.py为conf.py并配置数据库连接(默认可使用 SQLite)。 - 初始化数据库:
python manage.py migrate python manage.py loaddata db.json # 导入初始数据 - 创建超级用户:
python manage.py createsuperuser - 启动服务:
python manage.py runserver 8000 - 接口文档地址:
http://localhost:8000/api/swagger/
5.2 前端启动
- 进入
admin/client目录。 - 安装依赖:
npm install --registry=https://registry.npmmirror.com - 启动开发服务:
npm run dev - 访问地址:
http://localhost:9528
6. 部署建议
- 生产环境: 建议前后端分离部署,使用 Nginx 进行反向代理。
- 后端: 使用 Gunicorn 或 uWSGI 运行 Django 服务,配合 Supervisor 进行进程守护。
- 前端: 运行
npm run build:prod打包生成静态文件,由 Nginx 托管。 - WebSocket: 如需支持 WebSocket 功能,需配置 Daphne 并通过 Supervisor 运行。
7. 参考资料
- 更多复杂功能参考原仓库: https://github.com/caoqianming/xt_server