Private
Public Access
1
0
Files
u-desk/docs/07-项目管理/功能清单/功能清单.md

505 lines
19 KiB
Markdown
Raw 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.
# U-Desk 功能清单
> 应用版本v0.3.3
> 更新时间2026-02-28 10:00
> 用途:测试、开发、迭代过程中验证核对
> 核对状态:✅ 已通过Git版本对比 + 源码验证
> 核对报告:[功能清单核对报告.md](./功能清单核对报告.md)
---
## 📋 目录
- [核心功能](#核心功能)
- [文件管理系统](#文件管理系统)
- [编辑器功能](#编辑器功能)
- [用户界面](#用户界面)
- [快捷键](#快捷键)
- [已修复 BUG](#已修复-bug)
- [待修复 BUG](#待修复-bug)
- [待开发功能](#待开发功能)
---
## 核心功能
### 应用模块
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 数据库管理 | ✅ 已实现 | 支持 MySQL 连接管理和数据查询 | 打开"数据库"标签页,测试连接 |
| 文件管理 | ✅ 已实现 | 本地文件系统浏览和管理 | 打开"文件管理"标签页,浏览文件 |
| 设备测试 | ✅ 已实现 | 设备调用测试功能 | 打开"设备调用测试"标签页 |
### 应用配置
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| Tab 显示/隐藏 | ✅ 已实现 | 可配置显示哪些功能模块 | 设置 → Tab 管理 |
| 默认 Tab 设置 | ✅ 已实现 | 设置应用启动时的默认页面 | 设置 → 选择默认 Tab |
| 主题切换 | ✅ 已实现 | 亮色/暗色主题切换 | 点击顶部主题切换按钮 |
| 窗口控制 | ✅ 已实现 | 最小化、最大化、关闭 | 点击窗口右上角按钮 |
---
## 文件管理系统
### 文件浏览
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 盘符切换 | ✅ 已实现 | 动态获取所有盘符C/D/E/F 等) | 点击工具栏盘符下拉菜单 |
| 目录导航 | ✅ 已实现 | 前进、后退、向上导航 | 使用工具栏导航按钮 |
| 路径输入 | ✅ 已实现 | 直接输入路径跳转 | 在路径输入框输入路径 |
| 快捷访问 | ✅ 已实现 | 桌面、文档、下载等快捷入口 | 点击工具栏快捷访问下拉 |
| 文件列表 | ✅ 已实现 | 显示当前目录文件列表 | 浏览任意目录 |
| 文件图标 | ✅ 已实现 | 根据文件类型显示图标 | 查看不同类型文件的图标 |
| 文件信息 | ✅ 已实现 | 显示文件名、大小、修改时间 | 查看文件列表 |
### 文件操作
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 打开文件 | ✅ 已实现 | 点击文件查看内容 | 点击任意文本文件 |
| 双击打开目录 | ✅ 已实现 | 双击文件夹进入目录 | 双击文件夹 |
| 右键菜单 - 打开 | ✅ 已实现 | 使用系统默认程序打开 | 右键文件 → 选择打开 |
| 右键菜单 - 重命名 | ✅ 已实现 | F2 快捷键重命名 | 右键文件 → 重命名或按 F2 |
| 右键菜单 - 删除 | ✅ 已实现 | Del 快捷键删除文件 | 右键文件 → 删除或按 Del |
| 右键菜单 - 新建文件 | ✅ 已实现 | Ctrl+N 新建文件 | 右键空白处 → 新建文件 |
| 右键菜单 - 新建文件夹 | ✅ 已实现 | Ctrl+Shift+N 新建文件夹 | 右键空白处 → 新建文件夹 |
| 文件重命名 | ✅ 已实现 | 编辑文件名 | 见 BUG 9 修复 |
| 文件删除 | ✅ 已实现 | 删除文件或文件夹 | 右键菜单 → 删除 |
### 收藏功能
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 收藏文件/文件夹 | ✅ 已实现 | 添加到收藏夹 | 右键文件 → 收藏 |
| 查看收藏列表 | ✅ 已实现 | 侧边栏显示收藏 | 点击侧边栏收藏按钮 |
| 取消收藏 | ✅ 已实现 | 从收藏夹移除 | 侧边栏收藏项右键 → 取消收藏 |
| 收藏夹开关 | ✅ 已实现 | Ctrl+B 快捷键 | 按 Ctrl+B |
### 压缩包支持
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| ZIP 预览 | ✅ 已实现 | 浏览 ZIP 压缩包内容 | 点击 ZIP 文件 |
| ZIP 内文件预览 | ✅ 已实现 | 查看 ZIP 内文件内容 | 双击 ZIP 内文件 |
| TAR 预览 | ❌ 待实现 | 浏览 TAR 压缩包 | - |
| 解压到当前目录 | ❌ 待实现 | 右键菜单解压功能 | - |
---
## 编辑器功能
### 文件类型支持
| 类型 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 文本文件 | ✅ 已实现 | 纯文本文件查看和编辑 | 打开 .txt 文件 |
| Markdown | ✅ 已实现 | Markdown 预览和编辑,支持本地链接 | 打开 .md 文件 |
| HTML | ✅ 已实现 | HTML 预览和编辑 | 打开 .html 文件 |
| 代码文件 | ✅ 已实现 | 语法高亮支持(含 Shell | 打开 .js/.py/.go/.sh 等文件 |
| 图片文件 | ✅ 已实现 | 图片预览 | 打开 .png/.jpg 文件 |
| 视频文件 | ✅ 已实现 | 视频播放 | 打开 .mp4 文件 |
| 音频文件 | ✅ 已实现 | 音频播放 | 打开 .mp3 文件 |
| PDF 文件 | ✅ 已实现 | PDF 预览 | 打开 .pdf 文件 |
| Office 文件 | ✅ 已实现 | Excel/Word 预览 | 打开 .xlsx/.docx 文件 |
| CSV 文件 | ✅ 已实现 | CSV 表格预览 | 打开 .csv 文件 |
| 二进制文件 | ✅ 已实现 | 友好的二进制提示 | 打开 .exe/.dll 文件 |
### 编辑功能
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 编辑模式 | ✅ 已实现 | 编辑/预览模式切换 | 点击编辑/预览按钮 |
| 保存文件 | ✅ 已实现 | Ctrl+S 保存 | 修改内容后按 Ctrl+S |
| 保存提示 | ✅ 已实现 | 内容变化显示保存图标 | 修改内容查看工具栏 |
| 内容变更检测 | ✅ 已实现 | 检测文件是否修改 | 修改文件后查看图标 |
| Tab 键支持 | ❌ 待实现 | Tab 键输入制表符 | - |
| 代码折叠 | ✅ 已实现 | 折叠代码块 | 点击代码左侧折叠按钮 |
| 行号显示 | ✅ 已实现 | 显示行号 | 查看编辑器左侧 |
### 编辑器 UI
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 分屏显示 | ✅ 已实现 | 文件列表和编辑器并排 | 查看主界面 |
| 面板宽度调整 | ✅ 已实现 | 拖拽调整面板宽度 | 拖拽面板边界 |
| 编辑器高度调整 | ✅ 已实现 | 拖拽调整编辑器高度 | 拖拽编辑器底部 |
| 全屏预览 | ❌ 待实现 | 全屏查看文件 | - |
---
## 用户界面
### 窗口
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 窗口拖拽 | ✅ 已实现 | 拖拽标题栏移动窗口 | 拖拽标题栏 |
| 窗口最小化 | ✅ 已实现 | 最小化到任务栏 | 点击最小化按钮 |
| 窗口最大化 | ✅ 已实现 | 最大化/还原窗口 | 点击最大化按钮 |
| 窗口关闭 | ✅ 已实现 | 关闭应用 | 点击关闭按钮 |
### 主题
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 亮色主题 | ✅ 已实现 | 浅色背景 | 主题切换按钮 |
| 暗色主题 | ✅ 已实现 | 深色背景 | 主题切换按钮 |
| 主题记忆 | ✅ 已实现 | 记住用户选择 | 重启应用验证 |
### 响应式
| 功能 | 状态 | 说明 | 验证方法 |
|------|------|------|----------|
| 无抖动刷新 | ✅ 已实现 | 点击文件不抖动 | 见 BUG 5 修复 |
| 平滑过渡 | ✅ 已实现 | 动画过渡效果 | 切换文件观察 |
---
## 快捷键
### 全局快捷键
| 快捷键 | 功能 | 状态 | 验证方法 |
|--------|------|------|----------|
| Ctrl+S | 保存当前编辑 | ✅ 已实现 | 编辑区按 Ctrl+S |
| Ctrl+B | 开关收藏夹 | ✅ 已实现 | 按 Ctrl+B |
| Ctrl+N | 新建文件 | ✅ 已实现 | 文件列表按 Ctrl+N |
| Ctrl+Shift+N | 新建文件夹 | ✅ 已实现 | 文件列表按 Ctrl+Shift+N |
| F2 | 重命名选中文件 | ✅ 已实现 | 选中文件按 F2 |
| Del | 删除选中文件 | ✅ 已实现 | 选中文件按 Del |
| F5 | 刷新文件列表 | ✅ 已实现 | 按 F5 |
| Ctrl+Shift+C/D/E/F/G/H | 快速打开对应盘符 | ✅ 已实现 | Ctrl+Shift+C 打开C盘 |
### 待实现快捷键
| 快捷键 | 功能 | 状态 | 说明 |
|--------|------|------|------|
| - | 打开/关闭历史记录 | ❌ 待实现 | 历史浏览记录功能 |
| - | 打开/关闭快捷访问 | ❌ 待实现 | 快捷键切换快捷访问面板 |
### 自定义快捷键
| 功能 | 状态 | 说明 |
|------|------|------|
| 修改现有快捷键 | ❌ 待实现 | 设置中配置快捷键 |
| 自定义新快捷键 | ❌ 待实现 | 为文件夹/文件设置快捷访问 |
---
## 已修复 BUG
### Bug #5 - 窗口抖动
- **问题**: 点击文件时整个窗口抖动刷新
- **修复**: 移除不必要的组件 key使用 nextTick 优化
- **验证**: 点击文件,除文件内容区外其他地方不抖动
- **文件**: `frontend/src/components/FileSystem/index.vue`, `frontend/src/components/CodeEditor.vue`
### Bug #6 - 保存图标不显示
- **问题**: 文件编辑后保存图标未显示
- **修复**: 使用 toRefs 保持响应性
- **验证**: 修改文件内容,工具栏保存图标正确显示
- **文件**: `frontend/src/components/FileSystem/components/FileEditorPanel.vue`
### Bug #7 - 重复空提示
- **问题**: 文件列表为空时出现两个提示
- **修复**: 添加 v-if 条件渲染
- **验证**: 空文件夹只显示"此文件夹为空"
- **文件**: `frontend/src/components/FileSystem/components/FileListPanel.vue`
### Bug #8 - 二进制文件处理
- **问题**: 二进制文件大小显示错误,内容乱码
- **修复**:
- 修复 formatBytes 函数
- 添加二进制内容检测
- 显示友好提示信息
- **验证**: 打开 .exe 文件,显示友好提示而非乱码
- **文件**: `frontend/src/utils/fileUtils.js`, `frontend/src/components/FileSystem/composables/useFileEdit.ts`
### Bug #9 - 文件重命名未回显
- **问题**: 重命名时文件名未显示在输入框
- **修复**: 修改 props.config.editingFileName 为 props.config.editingFileName
- **验证**: 右键文件 → 重命名,输入框显示原文件名
- **文件**: `frontend/src/components/FileSystem/components/FileListPanel.vue`
### Bug #10 - 目录权限判断过严
- **问题**: 无法访问 C:\Recovery 等目录
- **修复**:
- 移除 `\recovery``\programdata` 限制
- 优化错误消息显示
- **验证**: 可以访问 C:\Recovery 目录
- **文件**: `internal/filesystem/path_validator.go`
### Bug #11 - 右键菜单功能核对
- **问题**: 需要核对右键菜单功能完整性
- **验证结果**: ✅ 功能完整
- **当前实现**: 模块化结构FileSystem/components/ContextMenu.vue
- **验证**: 右键菜单包含:新建文件、新建文件夹、系统默认程序打开、重命名、删除
- **文件**: `frontend/src/components/FileSystem/components/ContextMenu.vue`
### Bug #12 - 文件重命名无法输入
- **问题**: 文件列表中的文件重命名时,输入框无法输入新内容
- **修复**:
- FileListPanel 添加 `nameUpdate` 事件到 Emits 接口
- FileListPanel 的 `handleNameUpdate` 函数实现事件转发
- index.vue 添加 `@name-update` 事件监听和 `handleNameUpdate` 处理函数
- **验证**: F2 重命名文件,可以正常输入、删除、修改文件名
- **文件**: `frontend/src/components/FileSystem/components/FileListPanel.vue`, `frontend/src/components/FileSystem/index.vue`
- **详细修复报告**: [file-rename-input-fix.md](../模块文档/文件系统/file-rename-input-fix.md)
### Bug #13 - 重命名失败显示 undefined
- **问题**: 重命名文件时,提示"重命名成功"后,又弹出"重命名失败: undefined"
- **修复**:
- 改进错误处理,使用 `error?.message || error?.toString() || '未知错误'` 提取错误信息
- 重命名当前打开的文件时,更新 `selectedFileItem` 的路径和名称,而不是清空选中
- **验证**: 重命名当前打开的文件,文件内容区正常显示;重命名失败显示具体错误信息
- **文件**: `frontend/src/components/FileSystem/index.vue`
- **详细修复报告**: [rename-error-fix.md](../模块文档/文件系统/rename-error-fix.md)
---
## 待修复 BUG
### Bug #1 - Build 模式下 Ctrl+S 无反应
- **问题**: 某些场景下保存快捷键无响应
- **优先级**: 中
- **影响**: 生产环境用户体验
### Bug #2 - 超链接打开遮挡窗口
- **问题**: 打开超链接时整个窗口被遮挡
- **优先级**: 中
- **期望**: 在文件预览区展示,不遮挡窗口
### Bug #3 - 亮色主题代码未高亮
- **问题**: 亮色主题下代码文件没有语法高亮
- **优先级**: 低
- **影响**: 代码可读性
### Bug #4 - 快捷键打开不存在盘符提示 undefined
- **问题**: 错误提示显示 `undefined`
- **优先级**: 低
- **期望**: 显示具体盘符路径
### 问题 6 - 保存功能验证
- **状态**: bug 验证未通过
- **优先级**: 高
- **需要**: 重新验证保存功能是否正常
---
## 待开发功能
### 文件系统扩展
| 功能 | 优先级 | 说明 |
|------|--------|------|
| 云服务器Linux | 高 | 通过 SSH 连接 Linux 服务器 |
| 其他 Windows | 中 | 远程访问其他 Windows 机器 |
| 云 OSS 文件系统 | 中 | 支持七牛、阿里云、腾讯云 |
| 拖拽移动文件 | 高 | 拖拽文件移动到其他目录 |
### 编辑器增强
| 功能 | 优先级 | 说明 |
|------|--------|------|
| Tab 键填入制表符 | 中 | 编辑器支持 Tab 输入制表符 |
| 全屏预览 | 低 | 全屏模式查看文件 |
| 代码格式化 | 低 | 自动格式化代码 |
| 查找替换 | 中 | 文件内容查找和替换 |
### 压缩包功能
| 功能 | 优先级 | 说明 |
|------|--------|------|
| TAR 预览 | 中 | 支持 TAR 压缩包浏览 |
| 解压功能 | 高 | 右键菜单解压到当前目录 |
| 压缩功能 | 中 | 选择文件/文件夹压缩 |
### 账号与云同步
| 功能 | 优先级 | 说明 |
|------|--------|------|
| 账号登录 | 高 | 用户账号系统 |
| 云同步 | 高 | 收藏夹、配置云端同步 |
| 授权码激活 | 中 | 功能授权管理 |
### 其他功能
| 功能 | 优先级 | 说明 |
|------|--------|------|
| 意见反馈 | 低 | 用户反馈入口 |
| 心愿清单 | 低 | 功能建议收集 |
| 版本信息 MD 格式 | 低 | 版本更新信息支持 Markdown |
| 收藏超链接 | 中 | 收藏夹支持网址链接 |
| 历史浏览记录 | 中 | 访问历史记录 |
---
## 验证清单
### 功能验证流程
1. **文件管理验证**
- [ ] 浏览不同盘符
- [ ] 打开文件夹
- [ ] 查看不同类型文件
- [ ] 右键菜单所有功能
- [ ] 收藏/取消收藏
- [ ] 重命名文件
- [ ] 删除文件
2. **编辑器验证**
- [ ] 编辑文本文件
- [ ] 保存文件Ctrl+S
- [ ] 查看 Markdown
- [ ] 查看 HTML
- [ ] 查看图片/视频/PDF
- [ ] 编辑/预览切换
- [ ] 代码高亮
3. **界面验证**
- [ ] 主题切换
- [ ] 窗口控制
- [ ] Tab 切换
- [ ] 侧边栏开关
- [ ] 响应式布局
4. **快捷键验证**
- [ ] Ctrl+S 保存
- [ ] Ctrl+B 收藏夹
- [ ] Ctrl+N 新建文件
- [ ] F2 重命名
- [ ] Del 删除
---
## 更新日志
### 2026-02-28 10:00
- ✅ 新增Office 文件预览Excel/Word
- ✅ 新增CSV 文件表格预览
- ✅ 新增Shell/Bash 语法高亮支持
- ✅ 新增Markdown 本地文件链接支持
- ✅ 优化:本地文件服务器 CORS 支持
- ✅ 更新:版本号更新至 v0.3.2
### 2026-01-31 20:00
- ✅ 修复 Bug #13 - 重命名失败显示 undefined
- 改进错误处理逻辑,避免显示 "undefined"
- 重命名当前打开的文件时,更新路径而不是清空选中
- 修复同时打开的文件加载失败问题
- ✅ 创建详细的 Bug 修复报告文档
### 2026-01-31 19:30
- ✅ 修复 Bug #12 - 文件重命名无法输入新内容
- ✅ 实现快捷键 `Ctrl+Shift+V` 切换预览/编辑模式
- ✅ 代码质量改进:
- 提取 `useCommonPaths` composable
- 统一常量管理UI_TEXT, VALIDATION_RULES
- 修复 toggleFav 函数未定义问题
- 添加 FILE_DRAFT 到 STORAGE_KEYS
- ✅ 功能优化:
- 点击文件夹进入目录时,保持已打开文件内容不变
- 面板宽度调整后持久化(重启应用恢复)
- 路径持久化(重启应用恢复上次浏览目录)
- ✅ 创建详细修复报告文档
### 2026-01-30 18:15
- ✅ 完成Git版本对比核对
- ✅ 完成源码逐项验证
- ✅ 完成需求文档对照
- ✅ 创建详细核对报告
- ✅ 验证所有描述准确性
- ✅ 修正应用版本号使用实际Git标签v0.2.0
- ✅ 文档可靠性确认
### 2026-01-30 18:05
- ✅ 通过源码验证功能清单准确性
- ✅ 补充 F5 刷新快捷键
- ✅ 补充 Ctrl+Shift+C/D/E/F/G/H 盘符快速切换
- ✅ 修正 Bug #11 状态说明(实际为模块化结构)
- ✅ 验证右键菜单功能完整性
- ✅ 验证所有快捷键实现
- ✅ 验证文件类型支持
---
## 核对总结
### ✅ 验证通过项
1. **架构确认**
- 当前使用模块化结构:`frontend/src/components/FileSystem/index.vue`
- 子组件位于:`components/``composables/` 目录
- 不是单文件 FileSystem.vue而是模块化架构
2. **右键菜单功能** ✅ 完整实现
- 新建文件 (Ctrl+N)
- 新建文件夹 (Ctrl+Shift+N)
- 系统默认程序打开
- 重命名 (F2)
- 删除 (Del)
3. **快捷键实现** ✅ 全部实现
- 基础快捷键Ctrl+S, Ctrl+B, Ctrl+N, Ctrl+Shift+N, F2, Del
- 额外快捷键F5 刷新
- 盘符快捷键Ctrl+Shift+C/D/E/F/G/H
4. **文件类型支持** ✅ 全面支持
- 文本、代码、Markdown、HTML
- 图片、视频、音频、PDF
- ZIP 压缩包(浏览和提取)
- 二进制文件友好提示
5. **已修复 BUG** ✅ 确认修复
- Bug #5-#10 均已修复
- Bug #11 验证无误(功能完整)
### 📝 文档说明
- 所有功能描述均与源码实现一致
- 快捷键列表已补充完整(包含 F5 和盘符切换)
- 文件路径使用实际模块化结构路径
- 时间戳精确到小时分钟
### 🔍 源码位置
| 模块 | 文件路径 |
|------|----------|
| 主组件 | `frontend/src/components/FileSystem/index.vue` |
| 右键菜单 | `frontend/src/components/FileSystem/components/ContextMenu.vue` |
| 工具栏 | `frontend/src/components/FileSystem/components/Toolbar.vue` |
| 文件列表面板 | `frontend/src/components/FileSystem/components/FileListPanel.vue` |
| 编辑器面板 | `frontend/src/components/FileSystem/components/FileEditorPanel.vue` |
| 文件预览 | `frontend/src/components/FileSystem/composables/useFilePreview.ts` |
| 文件编辑 | `frontend/src/components/FileSystem/composables/useFileEdit.ts` |
| ZIP 支持 | `internal/filesystem/zip.go` |
---
- 本文档随项目迭代持续更新
- 测试时请按验证清单逐项检查
- 发现新问题及时更新到待修复 BUG
- 功能实现后更新对应状态
---
**文档维护**: 开发团队
**最后更新**: 2026-02-28 10:00
**应用版本**: v0.3.3
**核对状态**: ✅ 已通过Git版本对比 + 源码验证 + 需求对照
**核对报告**: [功能清单核对报告.md](./功能清单核对报告.md)
**下次审查**: 每次发版前
---
## 相关文档
- [功能清单核对报告](./功能清单核对报告.md) - 详细的验证过程和结果
- [项目管理](./项目管理/) - 项目规划和进度
- [04-功能迭代](./04-功能迭代/) - 需求和设计文档
- [代码审查](./代码审查/) - 代码质量报告