# 文件管理器重构 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 相同）
