# 文件管理器重构 P2 — 拆分 Vue 组件 **日期**: 2026-06-02 **设计**: `docs/design/specs/2026-06-02-files-refactor-design.md` §3 P2 **前置**: P1 composable + Pinia store ## 目标 - 模板迁入 `frontend/src/components/files/*` - `FilesPage.vue` ≤ 250 行(实际 ~45 行模板 + ~25 行 script) - 子组件通过 `provideFilesPage` / `useFilesPageContext` 共享状态,避免 props 爆炸 ## 组件清单 | 组件 | 职责 | |------|------| | `FilesToolbar.vue` | 服务器、路径、筛选、操作按钮 | | `FilesPermissionAlert.vue` | 权限横幅 + 一键 sudo | | `FilesStatusBar.vue` | 目录统计、剪贴板提示 | | `FilesBreadcrumb.vue` | 面包屑 + 批量操作条 | | `FilesList.vue` | 表格、拖拽上传、右键菜单 | | `FilesDialogs.vue` | 上传/新建/删除/重命名/压缩/预览等对话框 | ## 验证 - `npx vite build` - 文件管理全功能回归(与 P1 相同)