157 lines
4.1 KiB
Markdown
157 lines
4.1 KiB
Markdown
# Moba Workspace 回归清单
|
|
|
|
适用范围:
|
|
- `frontend/src/layouts/MobaLayout.vue`
|
|
- `frontend/src/components/SessionTree.vue`
|
|
- `frontend/src/components/WorkspacePanel.vue`
|
|
- `frontend/src/components/SftpPanel.vue`
|
|
- `frontend/src/views/TransfersView.vue`
|
|
- 旧深链接兼容入口 `/terminal/:id`、`/sftp/:id`
|
|
|
|
## 基础验证
|
|
|
|
### 构建
|
|
```bash
|
|
cd frontend
|
|
npm run build
|
|
```
|
|
|
|
### 启动
|
|
```bash
|
|
cd backend
|
|
mvn spring-boot:run
|
|
|
|
cd frontend
|
|
npm run dev
|
|
```
|
|
|
|
访问:
|
|
- `http://localhost:5173/login`
|
|
- 登录后应进入 `/moba`
|
|
|
|
## 登录与入口
|
|
|
|
### 登录
|
|
- 使用有效账号登录
|
|
- 首次管理员登录时,若触发强制改密,应能弹出改密弹窗
|
|
- 登录后默认进入 `/moba`
|
|
|
|
### 兼容入口
|
|
- 访问 `/connections` 应进入 `/moba`
|
|
- 访问 `/terminal` 应进入 `/moba`
|
|
- 访问 `/transfers` 应进入 `/moba?tool=transfers`
|
|
- 访问 `/terminal/:id` 应打开对应连接的终端工作区后进入 `/moba`
|
|
- 访问 `/sftp/:id` 应打开对应连接的文件工作区后进入 `/moba`
|
|
|
|
## 工作区
|
|
|
|
### 多实例
|
|
- 在左侧连续点击同一连接两次,应创建两个独立工作区实例
|
|
- 两个实例的顶部标签应能区分序号
|
|
- 关闭其中一个实例,不应影响另一个实例
|
|
|
|
### 标签行为
|
|
- 点击标签可切换活动工作区
|
|
- 右键菜单中的“关闭当前 / 关闭其他 / 关闭右侧 / 关闭全部”行为正确
|
|
- 顶部“复制会话”可基于当前实例创建一个新实例
|
|
|
|
### 面板控制
|
|
- 顶部“终端”按钮可显隐终端面板
|
|
- 顶部“文件”按钮可显隐 SFTP 面板
|
|
- 两个面板都隐藏时,工作区应显示空态提示
|
|
- “重置分屏”应把终端/SFTP 比例恢复为默认值
|
|
|
|
## 会话树
|
|
|
|
### 基础操作
|
|
- 创建根文件夹
|
|
- 创建子文件夹
|
|
- 重命名文件夹
|
|
- 删除文件夹
|
|
- 删除连接节点
|
|
|
|
### 排序与拖拽
|
|
- 手动排序模式下,节点可拖拽排序
|
|
- 名称排序模式下,拖拽应禁用
|
|
- 切换为名称排序后,文件夹应排在连接前面
|
|
|
|
### 搜索
|
|
- 输入关键字后,应只显示匹配结果和必要层级
|
|
- 匹配节点应显示高亮标记
|
|
- 清空搜索后,应恢复完整树
|
|
|
|
### 同步
|
|
- 修改连接名称后,会话树中的连接节点名称应同步更新
|
|
- 删除连接后,会话树中的对应节点应被移除
|
|
|
|
## SFTP
|
|
|
|
### 基础功能
|
|
- 打开文件面板后应能列出目录
|
|
- 可进入子目录
|
|
- 可返回上级目录
|
|
- 可直接输入路径并跳转
|
|
- 可切换显示/隐藏隐藏文件
|
|
- 可搜索当前目录文件
|
|
|
|
### 文件操作
|
|
- 上传单个文件
|
|
- 上传多个文件
|
|
- 查看上传进度
|
|
- 下载文件
|
|
- 创建目录
|
|
- 删除文件
|
|
- 删除目录
|
|
|
|
### 远程传输
|
|
- 从当前连接选择文件并打开远程传输弹窗
|
|
- 选择目标连接和目标路径后可开始传输
|
|
- 传输过程中应显示进度
|
|
- 取消传输后应显示取消状态或取消提示
|
|
|
|
## Transfers
|
|
|
|
### Local -> Many
|
|
- 选择本机文件
|
|
- 选择目标目录
|
|
- 选择多个目标连接
|
|
- 调整并发
|
|
- 开始后应生成队列任务
|
|
|
|
### Remote -> Many
|
|
- 选择源连接
|
|
- 手输源文件路径并添加
|
|
- 使用远程文件浏览器选择源文件
|
|
- 选择目标目录或精确路径
|
|
- 选择多个目标连接
|
|
- 开始后应生成队列任务
|
|
|
|
### 队列
|
|
- 队列应显示运行状态、进度、明细项
|
|
- 运行中任务应可取消
|
|
- 已完成/失败任务应保留在最近任务列表
|
|
- 点击“清空队列”后,最近任务列表应被清空
|
|
|
|
## 响应式
|
|
|
|
### 窄屏
|
|
- 小屏下左侧会话树应通过顶部按钮展开/收起
|
|
- 打开工作区后,小屏侧栏应自动收起
|
|
- Transfers 区域在小屏下不应出现明显横向溢出
|
|
- 目标连接选择区、队列卡片和源文件按钮区应可正常折行
|
|
|
|
## 持久化
|
|
|
|
### 刷新恢复
|
|
- 刷新页面后,工作区标签顺序应保留
|
|
- 活动工作区应保留
|
|
- SFTP 当前路径应保留
|
|
- 分屏比例应保留
|
|
- 会话树排序模式应保留
|
|
|
|
## 风险关注点
|
|
- 同一连接多实例下,不应误复用旧工作区
|
|
- 会话树在大量节点下不应出现明显卡顿或错位渲染
|
|
- `/terminal/:id` 与 `/sftp/:id` 兼容入口不应丢失目标连接语义
|
|
- SFTP 远程传输与 Transfers 页面应避免状态来源不一致
|