d93c518a14
Co-authored-by: Cursor <cursoragent@cursor.com>
1.9 KiB
1.9 KiB
2026-06-01 文件管理浏览修复
日期
2026-06-01
变更摘要
修复 SPA 文件管理页(#/files)目录列表为空、breadcrumb 无法点击、路径不一致等问题;统一 /api/sync/browse 响应为 items 字段。
2026-06-01 追加(全面巡检)
- 面包屑:Vuetify 4
#item槽 +onBreadcrumbClick,当前层级禁用 - 新增
remotePath.ts:路径规范化、拼接、面包屑数据、上级目录 - 工具栏「上级」按钮;未选服务器时提示
parseBrowseResponse:空目录items: []不再误判- 预览截断 800 字;批量删除反馈成功/失败数
动机
- 后端
POST /api/sync/browse返回{ entries: [...] }(字段is_dir、perms) - 前端
FilesPage.vue仅读取res.items,且条目需要type: directory|file - 生产环境表现为「暂无文件」,浏览/进入子目录均不可用
涉及文件
server/api/sync_v2.py— 返回items(含type/permissions),过滤./..frontend/src/utils/fileBrowse.ts— 解析items,兼容旧版entriesfrontend/src/pages/FilesPage.vue— 使用parseBrowseResponse,展示 SSHerrorfrontend/src/types/api.ts—BrowseResponse类型与后端对齐frontend/src/pages/FilesPage.vue— 表格return-object、面包屑/上级/路径规范化frontend/src/utils/remotePath.ts— 远程路径与面包屑工具docs/audit/2026-06-01-files-page-inspection.md— 巡检审计
迁移 / 重启
- 需重新构建并部署前端至
web/app/ - 需部署后端并
supervisorctl restart nexus(或仅前端亦可临时兼容旧 API)
验证方式
- 打开
app/#/files,选择一台可 SSH 的服务器 - 应看到
/下文件列表;点击目录可进入 curl -H "Authorization: Bearer …" -d '{"server_id":1,"path":"/"}' …/api/sync/browse响应含items数组