状态: Ready for Review 史诗: 007 - 多租户包复制策略 故事类型: 前端/UI
作为 系统管理员, 我想要 有一个独立的多租户广告管理界面包, 以便 可以在多租户系统中独立管理广告内容,同时保持与单租户系统的功能一致性。
@d8d/advertisement-management-ui-mt,包含正确的包配置和依赖管理packages/advertisement-management-ui/ 为多租户版本 packages/advertisement-management-ui-mt/@d8d/advertisements-module-mt/api/advertisements [Source: docs/prd/epic-007-multi-tenant-package-replication.md#广告管理界面包]packages/advertisement-management-ui-mt/ [Source: architecture/source-tree.md#包结构]packages/advertisement-management-ui-mt/src/components/ [Source: architecture/source-tree.md#前端包结构]packages/advertisement-management-ui-mt/src/api/ [Source: architecture/source-tree.md#前端包结构]packages/advertisement-management-ui-mt/tests/ [Source: 单租户包实际结构]tests/integration/,单元测试在 tests/unit/ [Source: 单租户包实际结构]pnpm install 命令以确保依赖正确安装-mt 后缀标识(Multi-Tenant)基于源码树文档检查,项目结构完全对齐:
[x] 任务 1 (AC: 1, 2): 创建多租户广告管理界面包结构
packages/advertisement-management-ui-mt/cp -r packages/advertisement-management-ui/* packages/advertisement-management-ui-mt/@d8d/advertisement-management-ui-mt[x] 任务 2 (AC: 1, 3): 配置包依赖和构建
packages/advertisement-management-ui-mt/package.json:"name": "@d8d/advertisement-management-ui-mt""@d8d/advertisements-module-mt": "workspace:*"、"@d8d/file-management-ui-mt": "workspace:*"、"@d8d/advertisement-type-management-ui-mt": "workspace:*"@d8d/advertisements-module、@d8d/file-management-ui、@d8d/advertisement-type-management-uipackages/advertisement-management-ui-mt/tsconfig.json:"@d8d/advertisements-module-mt/*"、"@d8d/file-management-ui-mt/*"、"@d8d/advertisement-type-management-ui-mt/*"packages/advertisement-management-ui-mt/vitest.config.ts:packages/advertisement-management-ui-mt/tests/setup.ts:packages/advertisement-management-ui-mt/eslint.config.js:cd packages/advertisement-management-ui-mt && pnpm install[x] 任务 3 (AC: 4, 5): 实现RPC客户端架构和类型定义
packages/advertisement-management-ui-mt/src/api/advertisementClient.ts:import { advertisementsModuleMt } from '@d8d/advertisements-module-mt'advertisementClient = advertisementsModuleMt.advertisementspackages/advertisement-management-ui-mt/src/types/advertisement.ts:[x] 任务 4 (AC: 2, 5): 复制并调整广告管理界面组件
packages/advertisement-management-ui-mt/src/components/AdvertisementManagement.tsx:import { advertisementClientManager } from '../api/advertisementClient'import { FileSelector } from '@d8d/file-management-ui-mt'import { AdvertisementTypeSelector } from '@d8d/advertisement-type-management-ui-mt'@d8d/shared-ui-components/components/ui/button,避免从根导入packages/advertisement-management-ui-mt/src/components/index.ts[x] 任务 5 (AC: 5, 6): 实现完整的广告管理功能
packages/advertisement-management-ui-mt/src/hooks/useAdvertisements.ts:packages/advertisement-management-ui-mt/src/hooks/index.tsFileSelector 组件实现图片上传和预览功能[x] 任务 6 (AC: 6, 7): 创建测试套件
packages/advertisement-management-ui-mt/tests/integration/advertisement-management.integration.test.tsx:packages/advertisement-management-ui-mt/tests/setup.ts:[x] 任务 7 (AC: 1, 7): 配置包导出接口
packages/advertisement-management-ui-mt/src/index.ts:[x] 任务 8 (AC: 6, 8): 验证功能无回归
cd packages/advertisement-management-ui-mt && pnpm buildcd packages/advertisement-management-ui-mt && pnpm test| 日期 | 版本 | 描述 | 作者 |
|---|---|---|---|
| 2025-11-17 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
@d8d/advertisement-management-ui-mtpackages/advertisement-management-ui-mt/packages/advertisement-management-ui-mt/package.json (包名和依赖更新)packages/advertisement-management-ui-mt/src/api/advertisementClient.ts (导入路径更新)packages/advertisement-management-ui-mt/src/components/AdvertisementManagement.tsx (组件导入路径更新)packages/advertisement-management-ui-mt/dist/ (成功生成)此部分将在质量保证审查过程中由QA代理填充