# 项目介绍文档 ## 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. 项目结构说明 ```text 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) 1. 进入 `admin/server` 目录。 2. 创建并激活虚拟环境: ```bash python -m venv venv .\venv\scripts\activate ``` 3. 安装依赖: `pip install -r requirements.txt` 4. 配置数据库: 复制 `conf_e.py` 为 `conf.py` 并配置数据库连接(默认可使用 SQLite)。 5. 初始化数据库: ```bash python manage.py migrate python manage.py loaddata db.json # 导入初始数据 ``` 6. 创建超级用户: `python manage.py createsuperuser` 7. 启动服务: `python manage.py runserver 8000` 8. 接口文档地址: `http://localhost:8000/api/swagger/` ### 5.2 前端启动 1. 进入 `admin/client` 目录。 2. 安装依赖: `npm install --registry=https://registry.npmmirror.com` 3. 启动开发服务: `npm run dev` 4. 访问地址: `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](https://github.com/caoqianming/xt_server)