41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
|
|
# 2026-06-01 文件管理页迭代 v2
|
|||
|
|
|
|||
|
|
## 日期
|
|||
|
|
2026-06-01
|
|||
|
|
|
|||
|
|
## 变更摘要
|
|||
|
|
`#/files` 第二轮迭代:修复下载、预览对话框、URL 状态、筛选/拖拽上传、符号链接展示。
|
|||
|
|
|
|||
|
|
## 动机
|
|||
|
|
- 下载 API 返回二进制流,原 `http.post` JSON 解析导致「下载已开始」但实际失败
|
|||
|
|
- 预览用 snackbar 无法阅读;刷新丢失当前路径
|
|||
|
|
- 对标历史 file-manager v2 规划中的状态栏、拖拽、筛选能力
|
|||
|
|
|
|||
|
|
## 涉及文件
|
|||
|
|
- `frontend/src/api/index.ts` — `fetchAuthed` / `http.download`
|
|||
|
|
- `frontend/src/utils/fileDownload.ts` — 浏览器保存 Blob
|
|||
|
|
- `frontend/src/pages/FilesPage.vue` — UI/交互迭代
|
|||
|
|
- `frontend/src/utils/remotePath.ts` — `validatePathSegment`
|
|||
|
|
- `frontend/src/utils/fileBrowse.ts` / `types/api.ts` — symlink
|
|||
|
|
- `server/api/sync_v2.py` — browse 返回 `symlink` + `link_target`
|
|||
|
|
- `docs/design/plans/2026-06-01-files-page-iteration.md`
|
|||
|
|
|
|||
|
|
## 迁移 / 重启
|
|||
|
|
- 前端构建部署至 `web/app/`
|
|||
|
|
- 后端 `sync_v2.py` 需部署并 `supervisorctl restart nexus`(symlink 字段)
|
|||
|
|
|
|||
|
|
## 追加(默认路径)
|
|||
|
|
- 文件管理器初始/切换服务器时默认打开 `/www/wwwroot`(`DEFAULT_FILES_ROOT`)
|
|||
|
|
|
|||
|
|
## 追加(交互)
|
|||
|
|
- 进入目录/符号链接:单击行即可(不再要求双击)
|
|||
|
|
- 普通文件:双击行打开 Monaco 编辑
|
|||
|
|
|
|||
|
|
## 验证方式
|
|||
|
|
1. 选服务器进入子目录,URL 含 `?server_id=&path=`,刷新后位置保持
|
|||
|
|
2. 双击目录进入;面包屑/上级可用
|
|||
|
|
3. 下载文件可本地打开
|
|||
|
|
4. 查看文本文件弹出预览对话框
|
|||
|
|
5. 拖拽文件到列表区域触发上传
|
|||
|
|
6. 筛选框过滤当前目录文件名
|