# GeminiWX

GeminiWX 是一个基于 RBAC (Role-Based Access Control) 模型权限控制的中小型应用基础开发平台。项目采用前后端分离架构，集成了 Web 管理端、后端 API 服务以及移动端（微信小程序/H5），提供了一套功能完善、易于扩展的后台管理系统解决方案。

## 📖 项目概述

本项目旨在为中小型应用提供快速开发的基础平台，核心功能包括：
- **Web 管理端**: 基于 Vue.js + Element UI 的现代化后台管理界面。
- **后端 API 服务**: 基于 Django + DRF 的 RESTful API 服务，支持异步任务和完善的权限控制。
- **移动端**: 支持微信小程序及 H5。

## � 运行环境与版本要求

为了确保项目能够正常运行，请确保您的开发环境满足以下版本要求：

### 后端环境 (Server)
- **Python**: 3.8+ (推荐 3.8/3.9/3.10)
- **Redis**: 5.0+
- **Database**:
  - 开发环境: SQLite 3 (默认)
  - 生产环境: PostgreSQL 12+ (推荐)

### 前端环境 (Web Client)
- **Node.js**:
  - 推荐版本: 14.x 或 16.x (LTS)
  - 兼容版本: 17+ (需要设置 `NODE_OPTIONS=--openssl-legacy-provider`，本项目 `package.json` 脚本中已预置该配置)
- **npm**: 6.x+

### 移动端环境 (Mobile)
- **HBuilderX**: 最新稳定版 (用于 Uni-app 开发)
- **微信开发者工具**: 最新稳定版

## �🛠 技术栈

### 后端 (Server)
- **核心框架**: Django 3.2.23
- **API 框架**: Django REST Framework (DRF) 3.12.4
- **异步任务**: Celery 5.2.7 + Redis
- **认证机制**: JWT (djangorestframework-simplejwt)
- **接口文档**: Swagger (drf-yasg)
- **数据库**: SQLite (默认/开发) / PostgreSQL (生产建议)

### 前端 (Web Client)
- **核心框架**: Vue.js 2.6.10
- **UI 组件库**: Element UI 2.15.14
- **状态管理**: Vuex 3.1.0
- **路由管理**: Vue Router 3.0.6
- **工具**: Axios, D3.js, xlsx

### 移动端 (Mobile)
- **框架**: Uni-app (基于 Vue.js) / 原生微信小程序
- **UI 库**: uView UI

## ✨ 核心功能

- **系统管理**: 
  - 组织架构、用户、角色、岗位管理
  - 菜单及按钮级别的功能权限控制
  - 灵活的数据权限控制
  - 数据字典与文件管理
- **客户关系管理 (CRM)**: 客户、商机等基础 CRM 功能。
- **工作流 (Workflow)**: 基于 loonflow 引擎简化的工作流，支持自定义流程定义与流转。
- **系统监控**: 服务状态监控、Celery 定时任务管理、审计日志记录。

## 📂 目录结构

```text
geminiWX/
├── admin/
│   ├── client/          # Web 前端项目源码 (Vue + ElementUI)
│   ├── server/          # 后端项目源码 (Django)
│   └── ...
├── wechat-mini-program/ # 微信小程序源码
├── INTERFACE_CONFIG.md  # 接口配置文档
├── PROJECT_INTRODUCTION.md # 项目详细介绍
├── STARTUP.md           # 启动指南
└── README.md            # 项目说明文档
```

## 🚀 快速开始

### 1. 启动后端服务 (Django)

1.  进入 `admin/server` 目录。
2.  建议使用项目自带的虚拟环境（如果存在）或创建新的虚拟环境。
    *   **使用自带环境 (Windows)**:
        ```powershell
        .\admin\server\.venv\Scripts\python.exe admin/server/manage.py runserver 0.0.0.0:8000
        ```
    *   **手动配置环境**:
        ```bash
        cd admin/server
        # 创建并激活虚拟环境
        python -m venv venv
        # Windows 激活
        .\venv\Scripts\activate
        # 安装依赖
        pip install -r requirements.txt
        # 迁移数据库
        python manage.py migrate
        # 启动服务
        python manage.py runserver 0.0.0.0:8000
        ```
3.  访问 `http://localhost:8000/` 确认服务运行正常。

### 2. 启动管理后台 (Vue.js)

1.  进入前端目录：
    ```bash
    cd admin/client
    ```
2.  安装依赖：
    ```bash
    npm install
    # 如果遇到依赖冲突，尝试使用:
    # npm install --legacy-peer-deps
    ```
3.  启动开发服务器：
    *   **Windows (PowerShell)**:
        ```powershell
        # 如果 Node 版本 >= 17，需要设置 NODE_OPTIONS
        $env:NODE_OPTIONS="--openssl-legacy-provider"
        npm run dev
        ```
    *   **Linux / macOS**:
        ```bash
        # 如果 Node 版本 >= 17
        export NODE_OPTIONS=--openssl-legacy-provider
        npm run dev
        ```
    *   **通用**:
        ```bash
        npm run dev
        ```
4.  启动完成后，浏览器会自动打开 `http://localhost:9528`。

### 3. 启动微信小程序

1.  下载并安装 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)。
2.  打开工具，选择“导入项目”。
3.  选择项目根目录下的 `wechat-mini-program` 文件夹。
4.  设置 AppID（或使用测试号），编译并预览。

## 📄 相关文档

更多详细信息请参考以下文档：
- **[项目介绍 (PROJECT_INTRODUCTION.md)](./PROJECT_INTRODUCTION.md)**: 详细的技术架构、功能模块说明。
- **[启动文档 (STARTUP.md)](./STARTUP.md)**: 详细的安装和启动步骤。
- **[接口配置 (INTERFACE_CONFIG.md)](./INTERFACE_CONFIG.md)**: 接口相关配置说明。

## 📄 许可证

本项目遵循 MIT 许可证。
