Draft
作为 系统管理员, 我想要 有一个独立的单租户文件管理界面包, 以便 可以在单租户系统中独立管理文件上传下载和CRUD操作,而不影响现有的多租户系统。
@d8d/file-management-ui,包含正确的包配置和依赖管理web/src/client/admin/pages/Files.tsx 为单租户文件管理界面包@d8d/shared-ui-components 中的基础组件@d8d/file-module 提供API客户端和类型定义[ ] 任务 1 (AC: 1, 7): 创建单租户文件管理界面包结构
packages/file-management-ui/src/、tests/、package.json [参考: packages/user-management-ui/ 目录结构][ ] 任务 2 (AC: 1): 配置包依赖和构建
packages/file-management-ui/package.json 包配置 [参考: packages/user-management-ui/package.json]@d8d/shared-ui-components、@d8d/file-modulepackages/file-management-ui/tsconfig.json TypeScript配置 [参考: packages/user-management-ui/tsconfig.json]packages/file-management-ui/vitest.config.ts 测试配置 [参考: packages/user-management-ui/vitest.config.ts]cd packages/file-management-ui && pnpm install[ ] 任务 3 (AC: 3, 6): 创建RPC客户端架构和类型定义
packages/file-management-ui/src/types/file.ts 类型定义[ ] 任务 4 (AC: 2, 3): 复制并调整文件管理界面组件
web/src/client/admin/pages/Files.tsx 为 packages/file-management-ui/src/components/FileManagement.tsxweb/src/client/admin/components/FileSelector.tsx 为 packages/file-management-ui/src/components/FileSelector.tsxweb/src/client/admin/components/MinioUploader.tsx 为 packages/file-management-ui/src/components/MinioUploader.tsxweb/src/client/utils/minio.ts 为 packages/file-management-ui/src/utils/minio.tsfileClient,但API调用必须使用 fileClientManager.get()@d8d/shared-ui-components/components/ui/button,避免从根导入[ ] 任务 5 (AC: 3, 4): 实现完整的文件管理功能
[ ] 任务 6 (AC: 8): 创建测试套件
packages/file-management-ui/tests/integration/file-management.integration.test.tsx [参考: packages/user-management-ui/tests/integration/userManagement.integration.test.tsx]packages/file-management-ui/tests/setup.ts [参考: packages/user-management-ui/tests/setup.ts][ ] 任务 7 (AC: 1, 7): 配置包导出接口
packages/file-management-ui/src/index.ts 包导出主入口 [参考: packages/user-management-ui/src/index.ts][ ] 任务 8 (AC: 9): 验证功能无回归
pnpm buildpnpm test[ ] 任务 9 (AC: 1, 3, 4): 修复RPC客户端使用问题
src/components/FileManagement.tsx 中的API调用,使用 fileClientManager.get()src/components/FileSelector.tsx 中的API调用,使用 fileClientManager.get()src/hooks/useFileManagement.ts 中的API调用,使用 fileClientManager.get()src/hooks/useFileSelector.ts 中的API调用,使用 fileClientManager.get()src/utils/minio.ts 中的API调用,使用 fileClientManager.get()fileClient,但API调用必须使用 fileClientManager.get()[ ] 任务 10 (AC: 1): 修复构建失败问题
MinioUploaderProps 导出问题:"MinioUploaderProps" is not exported by "src/components/MinioUploader.tsx"pnpm build 成功完成[ ] 任务 11 (AC: 4): 修复类型检查错误
pnpm typecheck 验证无错误[ ] 任务 12 (AC: 8): 修复测试失败问题
pnpm test 所有测试通过[ ] 任务 13 (AC: 1, 8): 修复ESLint配置问题
packages/file-management-ui/eslint.config.js ESLint配置文件 [参考: packages/tenant-management-ui/eslint.config.js]pnpm run lint 成功运行packages/file-management-ui/ [Source: architecture/source-tree.md#实际项目结构]src/components/ - React组件src/hooks/ - 自定义React hookssrc/api/ - API客户端src/types/ - TypeScript类型定义tests/unit/ - 单元测试tests/integration/ - 集成测试@d8d/shared-ui-components - 提供基础UI组件 [Source: architecture/source-tree.md#实际项目结构]@d8d/file-module - 提供文件管理API [Source: docs/prd/epic-007-multi-tenant-package-replication.md#文件管理界面包]packages/file-management-ui/tests/unit/ 和 packages/file-management-ui/tests/integration/ [Source: architecture/testing-strategy.md#单元测试]pnpm test 运行所有测试 [Source: architecture/testing-strategy.md#本地开发测试]packages/file-management-ui/tests/integration/**/*.test.tsx
[Source: architecture/testing-strategy.md#单元测试]cd packages/file-management-ui && pnpm testcd packages/file-management-ui && pnpm test:unitcd packages/file-management-ui && pnpm test:integrationcd packages/file-management-ui && pnpm test:coverage| 日期 | 版本 | 描述 | 作者 |
|---|---|---|---|
| 2025-11-16 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
任务4修复:使用文件客户端管理器获取RPC客户端
fileClient 而不是 fileClientManager.get()src/components/FileManagement.tsx - API调用未使用管理器src/components/FileSelector.tsx - API调用未使用管理器src/hooks/useFileManagement.ts - API调用未使用管理器src/hooks/useFileSelector.ts - API调用未使用管理器src/utils/minio.ts - 类型定义和API调用未使用管理器userClientManager.get()构建失败问题
"MinioUploaderProps" is not exported by "src/components/MinioUploader.tsx"pnpm build 失败类型检查错误
pnpm typecheck 失败测试失败问题
pnpm test 失败ESLint配置问题
pnpm run lint 失败修复方案:
fileClientManagerfileClientManager.get().$get() 等fileClient,但API调用必须使用 fileClientManager.get()此部分将在质量保证审查过程中由QA代理填充