# WNDS-Client **Repository Path**: wisterialee/wnds-client ## Basic Information - **Project Name**: WNDS-Client - **Description**: WNDS (Wisteria Netdisk System · 紫藤网盘系统) — 基于 RuoYi-Vue 框架二次开发的私有云盘系统。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue, HTML, CSS, JavaScript, scss ## README
WNDS Logo

WNDS-Client

Wisteria Netdisk System · 紫藤网盘系统(前端工程)

English | 中文

--- ## 项目简介 **WNDS (Wisteria Netdisk System)** 是一套基于 SpringBoot + Vue3 前后端分离架构的私有云存储解决方案,致力于为个人及小型团队提供安全、高效、便捷的一站式文件资产管理服务。 系统深度整合了现代化的前后端技术栈,着力解决传统文件存储分散、检索困难、传输效率低以及数据安全性难以保障等核心痛点。用户可以轻松实现海量文件的云端上传、下载、分类管理与精细化回收站防误删功能,随时随地访问个人数据资产。
名称 Gitee Github
WNDS-Server https://gitee.com/wisterialee/wnds-server https://github.com/Wisteria0712/WNDS-Server
WNDS-Client https://gitee.com/wisterialee/wnds-client https://github.com/Wisteria0712/WNDS-Client
--- ## 系统功能 ### 网盘核心功能(用户侧) #### 1. 门户欢迎页 - 现代化 UI 设计,系统品牌 LOGO 展示 - 核心能力动态展示:文件在线预览、智能分类、一键极速分享 - 登录 / 注册快捷入口,已登录用户一键进入网盘 #### 2. 用户账户体系 - **用户登录**:账号 + 密码 + 图片验证码三重校验,支持密码错误 5 次后锁定 10 分钟机制 - **用户注册**:邮箱验证码注册,验证码 15 分钟有效 - **忘记密码**:独立页面 `/forget`,通过绑定邮箱接收验证码 + 重置密码,提供 5 条「收不到验证码」排查建议(核对邮箱、查垃圾箱、等待延迟、检查拦截、更换邮箱) - **个人中心**:修改个人头像、编辑基本资料、重置登录密码 #### 3. 文件管理中心 - **文件目录树**:支持多级文件夹结构,面包屑导航快速跳转 - **新建文件夹**:在当前目录下快速创建新目录 - **文件上传**:集成 MD5 秒传 + 断点续传 + 批量上传引擎,多文件同时上传,实时进度条显示 - **文件下载**:服务端生成一次性下载码(5 分钟有效),安全高速下载至本地 - **文件重命名**:在线即时修改文件 / 文件夹名称 - **移动文件**:单文件移动 + 批量移动(BatchMoveVo),灵活整理目录结构 - **批量删除**:多选后批量移入回收站 - **智能分类视图**(按 FileCategoryEnums / FileTypeEnums): - 全部:展示所有层级的文件与文件夹 - 视频:自动聚合 .mp4 / .avi / .mkv 等格式 - 音频:集中展示 .mp3 / .flac / .wav 等资源 - 图片:汇集 .jpg / .png / .gif 等,支持缩略图预览 - 文档:筛选 .pdf / .doc / .xlsx / .txt / 代码等办公文档 - 其他:归档压缩包及未分类格式 #### 4. 文件在线预览 - **视频预览**:支持 HLS (M3U8) 流媒体在线播放,DPlayer + hls.js,H.265 自动转 H.264 兼容浏览器 - **音频预览**:内置音乐播放器,支持列表播放 - **图片预览**:大图浏览、缩放、切换 - **PDF 预览**:基于 PDF.js / vue3-pdfjs 的在线 PDF 阅读器 - **Excel 预览**:在线查看表格数据(@vue-office/excel) - **Word / Docx 预览**:在线文档渲染(@vue-office/docx) - **代码 / 文本预览**:语法高亮展示代码与文本文件 #### 5. 文件分享功能 - **灵活有效期**:按 ShareValidTypeEnums 支持 1 天 / 7 天 / 30 天 / 永久有效 4 种选择 - **安全提取码**:自定义 5 位提取码或一键随机生成 - **一键复制**:自动生成访问链接、提取码,使用 clipboard.js 复制到剪贴板 - **提取码校验页**(`/webShareCheck/:shareId`):独立页面,分享链接头 + 分享者信息卡 + 提取码输入 + 过期错误页 - **匿名分享浏览页**(`/webShare/:shareId`):独立头部 LOGO + 分享者信息栏(头像、昵称、分享时间)+ 面包屑 + 文件列表(含多选下载)+ 嵌入 FilePreview 在线预览 #### 6. 分享管理中心 - 查看全部历史分享记录(文件名、提取码、有效期、失效时间、分享时间) - 支持按有效期字典 / 分享时间双条件筛选 - 链接状态实时监控(正常 / 已过期 / 已取消),字典标签渲染 - **分享信息弹窗**:一键查看分享链接 + 提取码,一键复制 - 单条取消分享 / 批量取消分享(链接立即失效) #### 7. 回收站机制 - 删除文件自动移入回收站,默认保留 **30 天** - **有效天数列**:剩余天数 ≤10 天高亮红色警示(warning-text 样式) - 10 种文件专用图标(文件夹 / 视频 / 音频 / 图片 / PDF / DOC / EXCEL / TXT / CODE / ZIP / OTHER) - 顶部操作区:还原 / 批量彻底删除 / 清空回收站 3 个按钮 - **文件还原**:一键恢复至删除前的原始路径(单条 / BatchRestoreVo 批量) - **彻底删除**:物理销毁文件并释放空间(BatchDeleteVo 二次确认,不可恢复) - **清空回收站**:一键清空所有内容(二次确认) #### 8. 存储空间扩容 - 实时查看个人存储空间使用情况(已用 / 剩余 / 总容量) - **兑换码扩容**:输入有效兑换码一键升级存储空间 #### 9. 通知公告 - 查看系统发布的各类公告与通知消息 - 未读 / 已读状态标识 --- ### 系统管理功能(管理员侧) #### 1. 用户管理 - 系统全量用户查询与管理 - 重置用户密码、禁用 / 启用账号 - 删除无效或违规用户账户 #### 2. 邮箱验证码管理 - 查看每条验证码的生成时间、接收邮箱、使用状态 - 支持导出全部验证码记录 Excel #### 3. 文件管理(全局) - 支持按 用户ID / 文件名称 / 文件类型(文件夹/文件)/ 文件分类(10 种类型)4 条件组合筛选 - 查看系统内所有用户上传的文件信息 - 删除标记列:显示正常(2) / 回收站(1) / 彻底删除(-1),字典标签渲染 - 一键导出文件管理 Excel(v-hasPermi `file:file:export`) #### 4. 空间管理 - 查看全部用户的存储空间使用详情 - 动态分配 / 调整用户存储容量配额 - 导出空间使用统计数据 #### 5. 兑换码管理 - 新增兑换码(可指定容量大小、数量) - 查看兑换码总览:使用状态、使用者、生成 / 使用时间 - 单条删除 / 批量删除兑换码 - 导出兑换码记录 #### 6. 通知公告管理 - 新增、编辑、删除系统公告 - 控制公告发布状态(正常 / 关闭) - 批量删除操作 --- ### 若依框架基础功能(简化说明) | 模块 | 功能简述 | |----------|----------------------------------------------------------------| | **角色管理** | 角色菜单权限分配、数据范围权限划分 | | **菜单管理** | 系统菜单配置、操作权限与按钮权限标识 | | **部门管理** | 系统组织机构(公司、部门、小组)树状结构 | | **岗位管理** | 系统用户所属职务配置 | | **字典管理** | 维护系统中固定类型数据(valid_type / folder_type / file_type / del_flag 等) | | **参数设置** | 系统动态参数配置管理 | | **操作日志** | 系统正常操作与异常信息日志记录查询 | | **登录日志** | 用户登录日志查询(含异常登录) | | **在线用户** | 当前系统活跃用户状态实时监控 | | **定时任务** | 在线增删改任务调度,含执行日志(系统内置回收站自动清理、过期分享清理、新年祝福邮件等任务) | | **服务监控** | CPU、内存、磁盘、堆栈等系统资源实时监视 | | **缓存监控** | Redis 缓存信息查询与命令统计 | | **代码生成** | 一键生成前后端 CRUD 代码(Java / Vue / XML / SQL) | | **系统接口** | Swagger 自动生成的 API 接口文档 | --- ## 技术栈 ### 前端技术栈 | 技术 | 版本 | 说明 | |---------------------------------------------|---------|-----------------------| | **Vue** | 3.4.31 | 渐进式 JavaScript 框架 | | **Vite** | 5.3.2 | 下一代前端构建工具 | | **Element Plus** | 2.7.6 | 基于 Vue 3 的企业级组件库 | | **Pinia** | 2.1.7 | Vue 官方状态管理库 | | **Vue Router** | 4.4.0 | Vue.js 官方路由管理器 | | **Axios** | 0.28.1 | Promise 风格 HTTP 网络请求库 | | **ECharts** | 5.5.1 | 数据可视化图表库 | | **@vue-office/docx** | ^1.6.3 | Docx 文档在线预览 | | **@vue-office/excel** | ^1.7.14 | Excel 表格在线预览 | | **@vue-office/pdf** | ^2.0.10 | PDF 文档在线预览 | | **pdfjs-dist / vue-pdf-embed / vue3-pdfjs** | - | PDF 渲染增强(字体、分页、缩放) | | **DPlayer** | ^1.27.1 | 视频播放器(支持弹幕、HLS 流媒体) | | **hls.min.js** | - | HLS (M3U8) 流媒体播放支持 | | **vue-audio-better** | ^3.0.1 | 音频播放器组件(列表 / 进度控制) | | **vue-cropper** | 1.1.1 | 头像 / 图片裁剪上传组件 | | **spark-md5** | ^3.0.2 | 文件 MD5 计算(秒传判定) | | **clipboard** | - | 分享链接 / 提取码一键复制到剪贴板 | | **file-saver** | 2.0.5 | 浏览器文件下载保存 | | **jsencrypt** | 3.3.2 | RSA 前端密码加密传输 | | **js-cookie** | 3.0.5 | 浏览器 Cookie 轻量操作 | | **NProgress** | 0.2.0 | 页面切换顶部进度条 | | **Fuse.js** | 6.6.2 | 前端模糊搜索 | | **SortableJS / Vuedraggable** | - | 列表拖拽排序 | | **@vueuse/core** | 10.11.0 | Vue 组合式 API 工具集 | | **Sass** | 1.77.5 | CSS 预处理器 | --- ## 快速开始 ### 环境要求 - Node.js >= 16.x - 包管理器:推荐 pnpm / npm / yarn ### 安装与运行 ```bash # 进入项目目录 cd WNDS-Client # 安装依赖 pnpm install # 或使用 npm npm install # 或使用 yarn yarn install # 启动开发服务器(默认端口参考 vite.config.js) pnpm dev # 或 npm run dev # 构建生产环境 pnpm build:prod # 或 npm run build:prod # 构建测试环境 pnpm build:stage # 本地预览构建结果 pnpm preview ``` ### 默认账号 | 角色 | 用户名 | 密码 | |-----|-------|----------| | 管理员 | admin | admin123 | > 提示:后端服务默认运行在 4399 端口,前端代理配置请参考 `.env.development` 与 `vite.config.js`。 --- ## 重要说明 ### 关于 FFmpeg 本系统的视频转码、切片(M3U8)、封面提取等功能由后端通过 **JavaCV (FFmpeg)** 实现。前端视频预览依赖后端转码生成的 HLS 流,DPlayer + hls.js 组合播放。确保后端项目中 `javacv-platform` 依赖正确加载,系统无需单独安装 FFmpeg 命令行工具(JavaCV 已内置全平台二进制)。 ### 配套项目 - 后端仓库:`../WNDS-Server` - 数据库脚本:位于后端项目 `sql/wnds.sql` --- ## 系统效果图
--- ## 关于若依框架 本项目基于 **若依 (RuoYi) v3.8.9** 开源快速开发框架修改而来: - 前端基础框架:RuoYi-Vue3(Vue3 + Vite + Element Plus) - 后端基础框架:RuoYi-Vue(Spring Boot + Spring Security + MyBatis) - 框架官网:[http://www.ruoyi.vip](http://www.ruoyi.vip) - 开源地址:[https://gitee.com/y_project/RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 感谢若依团队提供如此优秀的开源框架!