Files
2026-06-08 18:14:59 +08:00

340 lines
9.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# zq-platform(芷青开发平台)
[English](./README.md) | 简体中文
<div align="center">
一个现代化的企业级后台管理系统,基于 Django + Vue3 + Element Plus 构建
[![Django](https://img.shields.io/badge/Django-5.2.7-green.svg)](https://www.djangoproject.com/)
[![Vue](https://img.shields.io/badge/Vue-3.x-brightgreen.svg)](https://vuejs.org/)
[![Element Plus](https://img.shields.io/badge/Element%20Plus-latest-blue.svg)](https://element-plus.org/)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
</div>
## 演示链接
[https://django-ninja.zq-platform.cn](https://django-ninja.zq-platform.cn/)
## 📖 项目简介
zq-platform 是一个功能完善的企业级后台管理系统解决方案,采用前后端分离架构。后端使用 Django 5.2 + Django Ninja 构建高性能 RESTful API,前端基于 Vue 3 + Vben Admin + Element Plus 打造现代化的管理界面。
### ✨ 核心特性
- 🎯 **完整的 RBAC 权限系统** - 用户、角色、权限、部门、岗位多维度权限控制
- 🔐 **JWT 认证机制** - 安全的 Token 认证,支持 Access Token 和 Refresh Token
- 📊 **系统监控** - 服务器监控、Redis 监控、数据库监控,实时掌握系统状态
- 📁 **文件管理** - 完善的文件上传、下载、预览功能
- 📝 **操作日志** - 详细的登录日志和操作审计
- 🗂️ **数据字典** - 灵活的字典管理,支持多级分类
-**任务调度** - 基于 APScheduler 的定时任务管理
- 🔌 **WebSocket 支持** - 实时通信能力
- 🌐 **多数据库支持** - MySQL、PostgreSQL、SQL Server、SQLite
- 🎨 **现代化 UI** - 响应式设计,支持暗黑模式
- 📦 **Monorepo 架构** - 基于 pnpm workspace 的前端工程化方案
## 🏗️ 技术栈
### 后端技术
- **核心框架**: Django 5.2.7
- **API 框架**: Django Ninja 1.4.5 (高性能 API 框架)
- **认证**: PyJWT 2.8.0
- **异步任务**: Celery 5.4.0 + Django Celery Beat
- **任务调度**: APScheduler 3.10.4
- **缓存**: Redis + django-redis
- **WebSocket**: Django Channels 4.2
- **数据库驱动**: psycopg2-binary, pymysql, pyodbc
- **服务器**: Uvicorn 0.38.0 / Gunicorn 23.0.0
- **其他**: openpyxl, geoip2, psutil, cryptography
### 前端技术
- **核心框架**: Vue 3.x
- **构建工具**: Vite 5.x
- **UI 组件库**: Element Plus
- **状态管理**: Pinia
- **路由**: Vue Router
- **HTTP 客户端**: Axios
- **工具库**: VueUse, dayjs, lodash-es
- **代码规范**: ESLint, Prettier, Stylelint
- **包管理**: pnpm 10.14.0
- **Monorepo**: Turbo
## 📁 项目结构
```
zq-platform/
├── backend-django/ # Django 后端
│ ├── application/ # 项目配置
│ ├── core/ # 核心业务模块
│ │ ├── auth/ # 认证授权
│ │ ├── user/ # 用户管理
│ │ ├── role/ # 角色管理
│ │ ├── permission/ # 权限管理
│ │ ├── dept/ # 部门管理
│ │ ├── post/ # 岗位管理
│ │ ├── menu/ # 菜单管理
│ │ ├── dict/ # 字典管理
│ │ ├── login_log/ # 登录日志
│ │ ├── file_manager/ # 文件管理
│ │ ├── server_monitor/ # 服务器监控
│ │ ├── redis_monitor/ # Redis 监控
│ │ ├── redis_manager/ # Redis 管理
│ │ ├── database_monitor/ # 数据库监控
│ │ └── database_manager/ # 数据库管理
│ ├── scheduler/ # 任务调度模块
│ ├── common/ # 公共模块
│ ├── env/ # 环境配置
│ ├── requirements.txt # Python 依赖
│ └── manage.py # Django 管理脚本
└── web/ # Vue 前端 (Monorepo)
├── apps/
│ └── web-ele/ # Element Plus 版本主应用
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── views/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ └── store/ # 状态管理
│ └── package.json
├── packages/ # 共享包
│ ├── @core/ # 核心包
│ ├── effects/ # 副作用包
│ ├── hooks/ # Hooks
│ ├── icons/ # 图标
│ ├── locales/ # 国际化
│ ├── stores/ # 状态管理
│ └── utils/ # 工具函数
├── internal/ # 内部工具
└── package.json # 根配置
```
## 🚀 快速开始
### 环境要求
- **后端**
- Python >= 3.10
- MySQL >= 5.7 / PostgreSQL >= 12 / SQL Server / SQLite
- Redis >= 5.0
- **前端**
- Node.js >= 20.10.0
- pnpm >= 9.12.0
### 后端安装
1. **克隆项目**
```bash
git clone https://github.com/jiangzhikj/zq-platform.git
cd zq-platform/backend-django
```
2. **创建虚拟环境**
```bash
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
```
3. **安装依赖**
```bash
pip install -r requirements.txt
```
4. **配置环境变量**
```bash
cp env
# 编辑 .env 文件,配置数据库、Redis、JWT 密钥等
```
主要配置项:
```env
# JWT 密钥
JWT_ACCESS_SECRET_KEY=your-jwt-access-secret
JWT_REFRESH_SECRET_KEY=your-jwt-refresh-secret
# 数据库配置
DATABASE_TYPE=MYSQL # MYSQL/POSTGRESQL/SQLSERVER/SQLITE3
DATABASE_HOST=127.0.0.1
DATABASE_PORT=3306
DATABASE_USER=root
DATABASE_PASSWORD=password
DATABASE_NAME=zq_admin
# Redis 配置
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=2
```
5. **数据库迁移**
```bash
python manage.py makemigrations core scheduler
python manage.py migrate
```
6. **初始化数据**
```bash
python manage.py loaddata db_init.json
```
7. **启动服务**
```bash
# 开发环境
python manage.py runserver 0.0.0.0:8000
```
8. **启动任务调度器(可选)**
```bash
# 生产环境
python start_scheduler.py
```
### 前端安装
1. **进入前端目录**
```bash
cd zq-platform/web
```
2. **安装依赖**
```bash
pnpm install
```
3. **配置环境变量**
```bash
cd apps/web-ele
cp .env.development .env
# 编辑 .env 文件,配置后端 API 地址
```
4. **启动开发服务器**
```bash
# 在 web 根目录下
pnpm dev
```
5. **构建生产版本**
```bash
pnpm build:ele
```
## 📝 默认账号
初始化数据后,可使用以下账号登录:
- 账号: `superadmin`
- 密码: 请查看 `123456` 或联系管理员
## 🔧 主要功能模块
### 系统管理
- **用户管理**: 用户的增删改查、密码重置、状态管理
- **角色管理**: 角色权限分配、数据权限控制
- **权限管理**: 接口权限、按钮权限细粒度控制
- **部门管理**: 树形部门结构管理
- **岗位管理**: 岗位信息维护
- **菜单管理**: 动态菜单配置、路由管理
- **字典管理**: 系统字典维护
### 系统监控
- **服务器监控**: CPU、内存、磁盘、网络实时监控
- **Redis 监控**: Redis 性能指标、键值管理
- **数据库监控**: 数据库连接、性能监控
- **登录日志**: 用户登录记录、IP 地理位置
### 任务调度
- **定时任务**: Cron 表达式配置
- **任务日志**: 执行历史、结果查看
- **任务管理**: 启动、停止、立即执行
### 文件管理
- **文件上传**: 支持多文件上传
- **文件预览**: 图片、文档在线预览
- **文件下载**: 批量下载功能
## 🔐 API 文档
后端启动后,访问以下地址查看 API 文档:
- Swagger UI: `http://localhost:8000/api/docs`
- ReDoc: `http://localhost:8000/api/redoc`
## 🛠️ 开发指南
### 后端开发
1. **添加新模块**
-`core/` 或创建新 app
- 定义 models、schemas、services、api
- 在 router 中注册路由
2. **API 开发规范**
- 使用 Django Ninja 装饰器
- 统一返回格式
- 异常处理
- 权限验证
### 前端开发
1. **添加新页面**
-`src/views/` 创建页面组件
-`src/router/routes/modules/` 添加路由
-`src/api/` 添加接口定义
2. **组件开发规范**
- 使用 Element Plus 组件
- 优先使用 Tailwind CSS
- 支持暗黑模式
- 图标从 `@vben/icons` 导入
## 📦 部署
1. **后端部署**
- 使用 Gunicorn + Nginx
- 配置 Supervisor 进程守护
- 配置 SSL 证书
2. **前端部署**
- 执行 `pnpm build` 构建
-`dist` 目录部署到 Nginx
- 配置反向代理
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 🙏 致谢
- [Django](https://www.djangoproject.com/) - 强大的 Python Web 框架
- [Django Ninja](https://django-ninja.rest-framework.com/) - 快速的 Django REST 框架
- [Vue Vben Admin](https://github.com/vbenjs/vue-vben-admin) - 优秀的 Vue3 后台管理模板
- [Element Plus](https://element-plus.org/) - 基于 Vue 3 的组件库
## 📞 联系方式
如有问题或建议,请通过以下方式联系:
- Issue: [GitHub Issues](../../issues)
- Email: jiangzhikj@outlook.com
---
<div align="center">
Made with ❤️ by ZQ Team
</div>