# tao-admin
**Repository Path**: htttaozi/tao-admin
## Basic Information
- **Project Name**: tao-admin
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-05
- **Last Updated**: 2026-01-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 Tao Admin
### 沃兹基德管理系统
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
[](https://www.mysql.com/)
[](LICENSE)
---
## ✨ 核心功能
### 🎯 智能上传引擎
- **秒传检测** - 基于文件哈希的极速秒传,服务器已存在文件直接返回结果,零等待
- **分片上传** - 大文件智能分片处理,支持自定义分片大小,稳定高效
- **断点续传** - 精准记录上传进度,网络中断或浏览器刷新后自动续传,永不丢失
- **并发控制** - 智能并发队列管理,同时上传 3-5 个分片,动态补充,最大化带宽利用
- **进度可视化** - 实时监听分片状态,精确计算整体进度,流畅的用户体验
### 👤 用户管理系统
- 完善的用户注册与登录机制
- 全面的用户信息管理功能
- 精细的权限控制体系(管理员/普通用户)
- 头像上传与智能缩略图生成
### 📁 文件管理
- 直观的文件列表展示
- 详细的文件信息查看
- 流畅的图片预览体验
### 📷 图片压缩
- **批量压缩** - 支持多图同时压缩,高效处理大量图片
- **智能压缩** - 自动检测文件大小,超过阈值自动启用压缩
- **并发处理** - 可配置并发数量,最大化利用系统资源
- **Web Worker** - 后台线程处理,避免阻塞主线程,保持界面流畅
- **格式转换** - 支持 JPEG、PNG、WebP 格式互转
- **参数可调** - 自定义压缩质量、目标大小、最大宽高等参数
- **对比预览** - 实时对比压缩前后效果,所见即所得
- **进度显示** - 实时显示压缩进度和压缩率
- **EXIF 保留** - 智能保留图片元数据信息
- **缩略图生成** - 大图自动生成缩略图,优化列表展示性能
### 🏷️ 3D 词云图
- **3D 球形布局** - 采用球形分布算法,标签在三维空间中均匀分布
- **交互式旋转** - 支持鼠标拖拽和滚轮缩放,流畅的 3D 交互体验
- **智能权重** - 根据标签权重自动调整字体大小和颜色,突出重要内容
- **高亮效果** - 多种高亮方式(轮廓、颜色、大小、块状),鼠标悬停时突出显示
- **响应式设计** - 自适应容器大小,ResizeObserver 监听窗口变化自动重绘
- **自定义配置** - 丰富的配置选项,支持自定义字体、颜色、形状、速度等
- **五分位分级** - 基于数据分布自动计算五分位数,智能分配标签等级
- **音频支持** - 支持为标签添加音频,鼠标悬停时播放提示音
- **提示框** - 支持原生提示和自定义 div 提示框
- **脉冲动画** - 高亮标签支持呼吸效果,增强视觉反馈
---
## 🛠 技术栈
### 前端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Vue | 3.4+ | 渐进式 JavaScript 框架 |
| TypeScript | 5.x | JavaScript 的超集 |
| Vite | 6.x | 下一代前端构建工具 |
| Element Plus | 2.13+ | Vue 3 组件库 |
| Pinia | 3.x | Vue 状态管理库 |
| Vue Router | 4.x | Vue 官方路由 |
| Tailwind CSS | 3.x | 原子化 CSS 框架 |
| Axios | 1.x | HTTP 客户端 |
| Spark MD5 | 3.x | 文件哈希计算 |
| browser-image-compression | 2.0.2 | 图片压缩 |
### 后端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Node.js | 20+ | JavaScript 运行时 |
| Express | 4.x | Web 应用框架 |
| TypeScript | 5.x | 类型安全的 JavaScript |
| MySQL | 8.0 | 关系型数据库 |
| Multer | 1.x | 文件上传中间件 |
| JWT | 9.x | 身份认证 |
| Bcrypt | 6.x | 密码加密 |
| Sharp | 0.x | 图像处理 |
| node-schedule | 2.x | 定时任务 |
### 开发工具
| 工具 | 版本 | 说明 |
|------|------|------|
| pnpm | 10.12.1 | 快速、节省磁盘空间的包管理器 |
| Turbo | 2.x | 高性能构建系统 |
| ESLint | 9.x | 代码质量检查 |
| tsx | 4.x | TypeScript 执行器 |
---
## 📦 项目结构
```
root/
├── backend/ # 后端服务
│ ├── src/
│ │ ├── controllers/ # 控制器层
│ │ ├── middleware/ # 中间件
│ │ ├── routes/ # 路由定义
│ │ ├── services/ # 业务逻辑层
│ │ └── utils/ # 工具函数
│ └── package.json
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── apis/ # API 接口
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 公共组件
│ │ ├── layouts/ # 布局组件
│ │ ├── network/ # 网络请求
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # 状态管理
│ │ ├── styles/ # 样式文件
│ │ ├── utils/ # 工具函数
│ │ └── views/ # 页面组件
│ └── package.json
├── common/ # 公共代码
├── interface/ # TypeScript 类型定义
├── database/ # 数据库脚本
│ └── init.sql # 初始化脚本
├── package.json # 根目录配置
├── pnpm-workspace.yaml # pnpm 工作区配置
└── turbo.json # Turbo 配置
```
---
## 🚀 快速开始
### 环境要求
- Node.js >= 20.18.0
- pnpm >= 10.12.1
- MySQL >= 8.0
### 安装依赖
```bash
pnpm install
```
### 数据库配置
1. 创建数据库并执行初始化脚本:
```bash
mysql -u root -p < database/init.sql
```
2. 配置数据库连接信息(在 `backend/.env` 文件中):
```env
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=tao_admin
JWT_SECRET=your_jwt_secret
```
### 启动开发服务
```bash
# 同时启动前后端
pnpm dev
# 仅启动后端
pnpm backend:dev
# 仅启动前端
pnpm frontend:dev
```
### 构建生产版本
```bash
pnpm build
```
---
## 📝 核心实现
### 秒传检测原理
1. 前端使用 Spark MD5 计算文件哈希值
2. 发送哈希值到服务器查询文件是否存在
3. 如果存在,直接返回文件信息,跳过上传
### 分片上传流程
1. 前端根据文件大小计算分片数量
2. 将文件切割成固定大小的分片(默认 5MB)
3. 并发上传分片到服务器
4. 服务器接收分片并存储到临时目录
5. 所有分片上传完成后,合并为完整文件
### 断点续传机制
1. 前端记录已上传的分片索引
2. 上传前查询服务器已接收的分片
3. 只上传未完成的分片
4. 支持浏览器刷新后继续上传
### 图片压缩原理
1. **文件检测** - 根据配置的阈值自动判断是否需要压缩
2. **Web Worker** - 使用浏览器后台线程处理压缩,避免阻塞主线程
3. **并发队列** - 支持多张图片同时压缩,可配置并发数量
4. **参数优化** - 根据目标大小、最大宽高等参数智能调整压缩质量
5. **格式转换** - 支持将图片转换为 JPEG、PNG、WebP 等格式
6. **元数据保留** - 智能保留 EXIF 等图片元数据信息
7. **缩略图生成** - 使用 OffscreenCanvas 生成小尺寸缩略图,优化性能
---
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
---
## 📄 许可证
[MIT](LICENSE)
---
**Made with ❤️ by Tao Team**