FileNest 是一个现代化的文件管理系统,提供直观的用户界面和强大的文件管理功能。
- 📁 文件浏览:支持列表视图和网格视图
- 🔍 文件搜索:快速查找文件和文件夹
- 📊 文件统计:显示文件夹大小、文件数量等信息
- ⭐ 收藏夹:支持将常用文件和文件夹添加到收藏夹
- 📥 文件上传:支持拖拽上传和进度显示
- 📤 文件下载:支持单文件下载
- 📂 文件管理:创建文件夹、删除文件等基本操作
- 前端框架:Vue 3
- 状态管理:Pinia
- UI 组件:Naive UI
- HTTP 客户端:Axios
- 构建工具:Vite
- 开发语言:TypeScript
web/
├── src/
│ ├── api/ # API 接口定义
│ ├── assets/ # 静态资源
│ ├── components/ # 通用组件
│ │ ├── file/ # 文件相关组件
│ │ └── home/ # 主页相关组件
│ ├── stores/ # Pinia 状态管理
│ ├── utils/ # 工具函数
│ └── views/ # 页面视图
├── public/ # 公共资源
└── package.json # 项目配置
HomeView
: 主页视图,包含文件列表和操作界面FileItem
: 文件项组件,支持列表和网格两种显示模式HomeHeader
: 顶部操作栏,包含搜索、视图切换等功能FileStats
: 文件统计信息显示
- Node.js >= 16
- pnpm >= 7
pnpm install
pnpm dev
pnpm build
GET /api/file/list
- 获取文件列表POST /api/file/create-folder
- 创建文件夹DELETE /api/file/delete
- 删除文件GET /api/file/download
- 下载文件POST /api/file/upload
- 上传文件GET /api/file/stats
- 获取文件统计信息GET /api/file/search
- 搜索文件
GET /api/file/favorites
- 获取收藏列表POST /api/file/favorite
- 添加收藏DELETE /api/file/favorite
- 移除收藏
使用 Pinia 进行状态管理,主要包含:
fileStore
: 处理文件列表、当前路径等状态- 支持文件操作的异步动作
- 提供计算属性用于文件排序和过滤
使用封���的 request
工具进行 API 调用:
- 统一的错误处理
- 请求/响应拦截
- 支持 TypeScript 类型
- 专门的文件下载处理
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/xxx
- 提交更改:
git commit -m 'Add xxx'
- 推送分支:
git push origin feature/xxx
- 提交 Pull Request