# 项目介绍文档

## 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)
