Ready for Review
作为 系统管理员, 我想要 有一个独立的单租户广告管理界面包, 以便 可以在单租户系统中独立管理广告内容,而不影响现有的多租户系统。
@d8d/advertisement-management-ui,包含正确的包配置和依赖管理web/src/client/admin/pages/Advertisements.tsx 为单租户广告管理界面包@d8d/shared-ui-components 中的基础组件@d8d/advertisements-module 提供API客户端和类型定义[x] 任务 1 (AC: 1, 7): 创建单租户广告管理界面包结构
packages/advertisement-management-ui/src/、tests/、package.json[x] 任务 2 (AC: 1): 配置包依赖和构建
packages/advertisement-management-ui/package.json 包配置 [参考: packages/user-management-ui/package.json]@d8d/shared-ui-components、@d8d/advertisements-module、@d8d/file-management-ui、@d8d/advertisement-type-management-uipackages/advertisement-management-ui/tsconfig.json TypeScript配置 [参考: packages/user-management-ui/tsconfig.json]packages/advertisement-management-ui/vitest.config.ts 测试配置 [参考: packages/user-management-ui/vitest.config.ts]packages/advertisement-management-ui/tests/setup.ts 测试设置文件 [参考: packages/user-management-ui/tests/setup.ts]packages/advertisement-management-ui/eslint.config.js ESLint配置文件 [参考: packages/user-management-ui/eslint.config.js]cd packages/advertisement-management-ui && pnpm install[x] 任务 3 (AC: 3, 6): 创建RPC客户端架构和类型定义
packages/advertisement-management-ui/src/types/advertisement.ts 类型定义[x] 任务 4 (AC: 2, 3): 复制并调整广告管理界面组件
web/src/client/admin/pages/Advertisements.tsx 为 packages/advertisement-management-ui/src/components/AdvertisementManagement.tsx@d8d/shared-ui-components/components/ui/button,避免从根导入@d8d/file-management-ui 中的 FileSelector 组件替换原有的图片上传逻辑@d8d/advertisement-type-management-ui 中的 AdvertisementTypeSelector 组件[x] 任务 5 (AC: 3, 4): 实现完整的广告管理功能
FileSelector 组件实现图片上传和预览功能[x] 任务 6 (AC: 8): 创建测试套件
packages/advertisement-management-ui/tests/integration/advertisement-management.integration.test.tsx [参考: packages/user-management-ui/tests/integration/userManagement.integration.test.tsx]packages/advertisement-management-ui/tests/setup.ts [参考: packages/user-management-ui/tests/setup.ts][x] 任务 7 (AC: 1, 7): 配置包导出接口
packages/advertisement-management-ui/src/index.ts 包导出主入口[x] 任务 8 (AC: 9): 验证功能无回归
pnpm buildpnpm testpackages/advertisement-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/advertisements-module - 提供广告管理API [Source: docs/prd/epic-007-multi-tenant-package-replication.md#广告管理界面包]@d8d/file-management-ui - 提供文件选择器组件,用于广告图片上传和选择功能@d8d/advertisement-type-management-ui - 提供广告类型选择器组件,用于广告类型关联管理packages/advertisement-management-ui/tests/unit/ 和 packages/advertisement-management-ui/tests/integration/ [Source: architecture/testing-strategy.md#单元测试]pnpm test 运行所有测试 [Source: architecture/testing-strategy.md#本地开发测试]packages/advertisement-management-ui/tests/integration/**/*.test.tsx
[Source: architecture/testing-strategy.md#单元测试]FileSelector 组件的集成,包括图片选择和预览功能cd packages/advertisement-management-ui && pnpm testcd packages/advertisement-management-ui && pnpm test:unitcd packages/advertisement-management-ui && pnpm test:integrationcd packages/advertisement-management-ui && pnpm test:coverage| 日期 | 版本 | 描述 | 作者 |
|---|---|---|---|
| 2025-11-16 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
| 2025-11-16 | 1.1 | 添加对文件管理UI包中FileSelector组件的依赖 | John (PM) |
@d8d/advertisement-management-uipackages/advertisement-management-ui/package.json - 包配置packages/advertisement-management-ui/src/components/AdvertisementManagement.tsx - 主组件packages/advertisement-management-ui/src/api/advertisementClient.ts - API客户端packages/advertisement-management-ui/src/types/advertisement.ts - 类型定义packages/advertisement-management-ui/tests/integration/advertisement-management.integration.test.tsx - 集成测试packages/advertisement-management-ui/src/index.ts - 包导出入口此部分将在质量保证审查过程中由QA代理填充