120 lines
4.9 KiB
Markdown
120 lines
4.9 KiB
Markdown
# 项目介绍文档
|
||
|
||
## 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)
|