# 管理助手 **Repository Path**: zenglinapp/management-assistant ## Basic Information - **Project Name**: 管理助手 - **Description**: 智能文件管理助手源码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-09 - **Last Updated**: 2026-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能文件管理助手 (Smart File Management Assistant) > 企业级文件管理系统 · 安全 · 高效 · 跨平台 [![Vue](https://img.shields.io/badge/Vue-3.5-4FC08D?logo=vue.js)](https://vuejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.6-3178C6?logo=typescript)](https://www.typescriptlang.org/) [![Element Plus](https://img.shields.io/badge/Element_Plus-2.8-409EFF)](https://element-plus.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?logo=fastapi)](https://fastapi.tiangolo.com/) [![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?logo=mysql)](https://www.mysql.com/) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) --- ## 📖 项目简介 智能文件管理助手(SFMA)是一款面向企业的全栈文件管理解决方案,提供文件上传、下载、预览、分类、搜索、分享、回收站、权限管理等完整功能。前端基于 Vue 3 + TypeScript + Element Plus,后端基于 FastAPI + SQLAlchemy + MySQL 8,支持响应式布局与中英双语。 ## ✨ 核心特性 - **📤 文件上传**:拖拽 + 选择,分片 + 断点续传 + 暂停/继续,单文件 100MB 上限 - **📥 文件下载**:单文件 + 批量 ZIP,断点续传,限速,历史记录 - **👁️ 文件预览**:图片(缩放/旋转/全屏)/ PDF(翻页/缩放)/ 文本(语法高亮)/ Office(docx/xlsx/pptx)/ 音视频 - **🗂️ 分类管理**:多级文件夹树,拖拽归类,数量统计,面包屑 - **🔍 搜索筛选**:文件名 + 内容模糊搜索,防抖 300ms,高亮显示,按类型/日期/相关性排序 - **🗑️ 回收站**:软删除,30 天保留,批量恢复与永久删除 - **✏️ 重命名**:右键 + F2 + 双击,合法性校验,历史记录 - **🌐 双语**:中英切换 - **🌓 主题**:light / dark 切换,持久化 - **📱 响应式**:桌面 / 平板 / 移动,移动端长按触发菜单 - **🔐 安全**:JWT 认证 + RBAC + bcrypt + CSRF + XSS 过滤 + 限速 + 每日自动备份 ## 🛠️ 技术栈 ### 前端 - **框架**:Vue 3.5 + TypeScript 5.6 + Vite 5 - **UI**:Element Plus 2.8 + Tailwind CSS + Sass - **状态**:Pinia 2 - **路由**:Vue Router 4(动态导入 + 权限守卫) - **HTTP**:Axios 1.7(拦截器 + Token 注入) - **预览**:vue-files-preview + vue-office(docx/xlsx/pptx) + highlight.js - **拖拽**:Sortable.js + HTML5 Drag & Drop - **图表**:ECharts 5 - **i18n**:vue-i18n 9 - **测试**:Jest 29 + @vue/test-utils ### 后端 - **框架**:FastAPI 0.115 + Uvicorn - **ORM**:SQLAlchemy 2 + Alembic - **数据库**:MySQL 8(utf8mb4,pool_size=20) - **缓存/限流**:Redis 7 - **认证**:python-jose(JWT) + passlib(bcrypt) - **异步任务**:APScheduler(每日 3:00 自动备份) - **日志**:loguru - **测试**:pytest + httpx + Locust ## 🚀 快速开始 ### 1. 环境要求 | 工具 | 版本 | |------|------| | Node.js | ≥ 18.0.0 | | Python | ≥ 3.10 | | MySQL | ≥ 8.0 | | Redis | ≥ 7.0 | ### 2. 克隆项目 ```bash git clone cd 智能文件管理助手2 ``` ### 3. 数据库初始化 ```bash # 登录 MySQL mysql -u root -p # 创建数据库 CREATE DATABASE smart_file_management_assistant CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE smart_file_management_assistant_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; EXIT; ``` ### 4. 后端启动 ```bash cd backend # 创建虚拟环境 python -m venv venv .\venv\Scripts\activate # Windows # source venv/bin/activate # Linux/macOS # 安装依赖 pip install -r requirements.txt # 或 pip install -e . # 配置环境变量 cp .env.example .env # 编辑 .env 填入数据库密码、Redis、JWT Secret 等 # 初始化数据库迁移 alembic upgrade head # 启动开发服务器 uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` 访问: - API 文档: - 健康检查: ### 5. 前端启动 ```bash cd frontend # 安装依赖 npm install # 或 pnpm install # 启动开发服务器 npm run dev ``` 访问: ### 6. 默认账号 首次启动时,执行 `python -m app.db.init_db` 创建超级管理员: ``` 用户名: admin 密码: Admin@123456 ``` ## 🐳 Docker 一键启动 ```bash docker-compose up -d ``` 服务清单: - frontend(Nginx 代理 Vite 产物) - backend(FastAPI) - mysql(MySQL 8) - redis(Redis 7) ## 📁 项目结构 ``` 智能文件管理助手2/ ├── frontend/ # 前端 │ ├── src/ │ │ ├── api/ # API 封装 │ │ ├── components/ # 通用 + 业务组件 │ │ ├── composables/ # 组合式函数 │ │ ├── layouts/ # 布局 │ │ ├── locales/ # i18n │ │ ├── router/ # 路由 │ │ ├── stores/ # Pinia │ │ ├── styles/ # 全局样式 │ │ ├── types/ # TS 类型 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面 │ ├── tests/ # Jest 测试 │ ├── package.json │ └── vite.config.ts ├── backend/ # 后端 │ ├── app/ │ │ ├── api/v1/ # 路由 │ │ ├── core/ # 配置/安全/限流 │ │ ├── db/ # 数据库 │ │ ├── models/ # ORM 模型 │ │ ├── schemas/ # Pydantic │ │ ├── services/ # 业务逻辑 │ │ ├── scheduler/ # APScheduler │ │ └── utils/ # 工具 │ ├── migrations/ # Alembic │ ├── tests/ # pytest + Locust │ ├── pyproject.toml │ └── requirements.txt ├── docs/ # 文档 ├── docker-compose.yml └── README.md ``` ## 📜 脚本命令 ### 前端 | 命令 | 说明 | |------|------| | `npm run dev` | 启动开发服务器 | | `npm run build` | 生产构建 | | `npm run preview` | 预览构建产物 | | `npm run lint` | ESLint 检查 | | `npm run format` | Prettier 格式化 | | `npm test` | 运行 Jest 测试 | | `npm run test:coverage` | 生成覆盖率报告 | ### 后端 | 命令 | 说明 | |------|------| | `uvicorn app.main:app --reload` | 启动开发服务 | | `alembic upgrade head` | 应用迁移 | | `alembic revision --autogenerate -m "msg"` | 生成迁移 | | `pytest` | 运行测试 | | `pytest --cov=app` | 覆盖率 | | `locust -f tests/locustfile.py` | 压测 | ## 🤝 贡献 欢迎 PR 和 Issue。 ## 📄 许可证 MIT License © 2026 Smart File Management Assistant