Files
Nexus/docs/design/plans/2026-06-02-files-refactor-P1.md
T

36 lines
1.5 KiB
Markdown
Raw Normal View History

# 文件管理器重构 P1 — 拆分 Composable
**日期**: 2026-06-02
**设计**: `docs/design/specs/2026-06-02-files-refactor-design.md` §3 P1
**前置**: P0 JWT 主动续期(已完成)
## 目标
-`FilesPage.vue` 业务逻辑迁入 `stores/files.ts` + `composables/files/*`
- `FilesPage.vue` 仅保留模板、筛选 UI 状态、组合 composable(目标 script < 400 行,P2 再压至 ≤250
- 引入 Pinia 单一真相 + 5s 目录缓存(P3 子集)
## 文件清单
| 路径 | 职责 |
|------|------|
| `frontend/src/stores/files.ts` | 服务器/路径/列表/loading/权限/缓存 |
| `frontend/src/composables/files/constants.ts` | sessionStorage 键 |
| `frontend/src/composables/files/useFilesBrowse.ts` | browse、错误文案、emptyHint |
| `frontend/src/composables/files/useFilesNavigation.ts` | 路由同步、面包屑、初始化、watch |
| `frontend/src/composables/files/useFilesPermissions.ts` | capability、横幅、一键 sudo |
| `frontend/src/composables/files/useFilesEditor.ts` | 预览/编辑/保存回调 |
| `frontend/src/composables/files/useFilesActions.ts` | 上传/删除/重命名/压缩等 |
| `frontend/src/composables/files/index.ts` | 桶导出 |
| `frontend/src/pages/FilesPage.vue` | 瘦身后页面 |
## 测试要点
- `npx vite build` 通过
- 进目录仍 ≤1 次 `/sync/browse`(缓存命中 0 次)
- 切换服务器、面包屑、粘贴、编辑、sudo 一键配置行为不变
## 回滚
`git revert` P1 commit`FilesPage.vue` 单文件可独立回退。