瀏覽代碼

📝 feat(史诗007): 更新管理界面包故事结构,明确区分单租户和多租户版本

- 重新组织故事结构,将每个管理界面包拆分成两个独立的故事
- 单租户版本:故事15、17、19、21、23、25、27、29、31、33、35
- 多租户版本:故事16、18、20、22、24、26、28、30、32、34、36
- 完整覆盖12个管理界面包:用户、广告、广告分类、订单、商品、商品分类、供应商、商户、文件、地址、区域、租户配置
- 更新完成统计:阶段4完成度2/24故事(8.3%),总体完成度15/37故事(40.5%)
- 明确包命名约定和技术栈一致性

🤖 Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 月之前
父節點
當前提交
e820ea7537
共有 1 個文件被更改,包括 288 次插入8 次删除
  1. 288 8
      docs/prd/epic-007-multi-tenant-package-replication.md

+ 288 - 8
docs/prd/epic-007-multi-tenant-package-replication.md

@@ -24,11 +24,11 @@
 - **阶段1完成度**: 5/5 故事 (100%)
 - **阶段2完成度**: 5/5 故事 (100%)
 - **阶段3完成度**: 3/3 故事 (100%)
-- **阶段4完成度**: 1/3 故事 (33.3%)
-- **总体完成度**: 14/16 故事 (87.5%)
+- **阶段4完成度**: 2/24 故事 (8.3%)
+- **总体完成度**: 15/37 故事 (40.5%)
 - **多租户包创建**: 10/11 包
 - **共享包创建**: 1/1 包
-- **前端包创建**: 1/1 包
+- **前端包创建**: 1/24 包 (区分单租户和多租户版本)
 - **测试通过率**: 100% (所有已创建包)
 - **构建状态**: 所有包构建成功
 
@@ -36,6 +36,9 @@
 - 成功创建10个多租户包:`@d8d/user-module-mt`, `@d8d/file-module-mt`, `@d8d/auth-module-mt`, `@d8d/geo-areas-mt`, `@d8d/delivery-address-module-mt`, `@d8d/merchant-module-mt`, `@d8d/supplier-module-mt`, `@d8d/goods-module-mt`, `@d8d/orders-module-mt`, `@d8d/advertisements-module-mt`
 - 成功创建共享UI组件包:`@d8d/shared-ui-components`,包含46个基础UI组件
 - 成功创建租户管理界面包:`@d8d/tenant-management-ui`,基于现有用户管理界面实现,依赖租户模块包 `@d8d/tenant-module-mt`
+- 规划创建12个管理界面独立包,区分单租户和多租户版本:
+  - 单租户包:`@d8d/user-management-ui`, `@d8d/advertisement-management-ui`, `@d8d/advertisement-type-management-ui`, `@d8d/order-management-ui`, `@d8d/goods-management-ui`, `@d8d/goods-category-management-ui`, `@d8d/supplier-management-ui`, `@d8d/merchant-management-ui`, `@d8d/file-management-ui`, `@d8d/delivery-address-management-ui`, `@d8d/area-management-ui`, `@d8d/tenant-config-management-ui`
+  - 多租户包:`@d8d/user-management-ui-mt`, `@d8d/advertisement-management-ui-mt`, `@d8d/advertisement-type-management-ui-mt`, `@d8d/order-management-ui-mt`, `@d8d/goods-management-ui-mt`, `@d8d/goods-category-management-ui-mt`, `@d8d/supplier-management-ui-mt`, `@d8d/merchant-management-ui-mt`, `@d8d/file-management-ui-mt`, `@d8d/delivery-address-management-ui-mt`, `@d8d/area-management-ui-mt`, `@d8d/tenant-config-management-ui-mt`
 - 所有包都包含完整的租户数据隔离支持
 - 所有集成测试通过,构建成功
 - 单租户系统功能完全不受影响
@@ -240,7 +243,18 @@ packages/
 
 ### 阶段 4: 系统集成和租户管理
 
-13. **Story 13:** 共享UI组件包创建
+**管理界面包架构说明**:
+- 所有管理界面包都将区分单租户和多租户版本,每个版本都是一个独立的故事
+- 单租户版本包名:`@d8d/{module}-management-ui`
+- 多租户版本包名:`@d8d/{module}-management-ui-mt`
+- 每个包都基于现有web管理界面进行复制和修改
+- 使用相同的技术栈:React 19 + TypeScript + TanStack Query + React Hook Form
+- 依赖共享UI组件包 `@d8d/shared-ui-components`
+- 提供workspace包依赖复用机制
+- 支持独立测试和部署
+- 验证现有功能无回归
+
+13. **Story 13:** 共享UI组件包创建 ✅ **已完成**
     - 创建共享UI组件包 `@d8d/shared-ui-components`
     - 抽离管理后台通用组件:DataTablePagination、AvatarSelector等
     - 抽离基础UI组件:Button、Input、Card、Table、Dialog等
@@ -263,8 +277,274 @@ packages/
     - **测试结果**: 18/18 测试通过
     - **技术成果**: 包含完整的租户管理页面、租户表单、租户配置页面、分页组件、API客户端和工具函数
 
-15. **Story 15:** 租户管理和配置界面
-    - 创建租户管理API
+### 用户管理界面包
+
+15. **Story 15:** 单租户用户管理界面独立包实现
+    - 复制前端用户管理界面 `web/src/client/admin/pages/Users.tsx` 为单租户用户管理界面包
+    - 创建独立的单租户用户管理界面包 `@d8d/user-management-ui`
+    - 实现完整的用户CRUD操作和角色权限管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖用户模块包 `@d8d/user-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+16. **Story 16:** 多租户用户管理界面独立包实现
+    - 复制前端用户管理界面 `web/src/client/admin/pages/Users.tsx` 为多租户用户管理界面包
+    - 创建独立的多租户用户管理界面包 `@d8d/user-management-ui-mt`
+    - 实现完整的用户CRUD操作和角色权限管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖用户模块包 `@d8d/user-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 广告管理界面包
+
+17. **Story 17:** 单租户广告管理界面独立包实现
+    - 复制前端广告管理界面 `web/src/client/admin/pages/Advertisements.tsx` 为单租户广告管理界面包
+    - 创建独立的单租户广告管理界面包 `@d8d/advertisement-management-ui`
+    - 实现完整的广告CRUD操作和状态管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖广告模块包 `@d8d/advertisements-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+18. **Story 18:** 多租户广告管理界面独立包实现
+    - 复制前端广告管理界面 `web/src/client/admin/pages/Advertisements.tsx` 为多租户广告管理界面包
+    - 创建独立的多租户广告管理界面包 `@d8d/advertisement-management-ui-mt`
+    - 实现完整的广告CRUD操作和状态管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖广告模块包 `@d8d/advertisements-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 广告分类管理界面包
+
+19. **Story 19:** 单租户广告分类管理界面独立包实现
+    - 复制前端广告分类管理界面 `web/src/client/admin/pages/AdvertisementTypes.tsx` 为单租户广告分类管理界面包
+    - 创建独立的单租户广告分类管理界面包 `@d8d/advertisement-type-management-ui`
+    - 实现完整的广告分类CRUD操作
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖广告模块包 `@d8d/advertisements-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+20. **Story 20:** 多租户广告分类管理界面独立包实现
+    - 复制前端广告分类管理界面 `web/src/client/admin/pages/AdvertisementTypes.tsx` 为多租户广告分类管理界面包
+    - 创建独立的多租户广告分类管理界面包 `@d8d/advertisement-type-management-ui-mt`
+    - 实现完整的广告分类CRUD操作,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖广告模块包 `@d8d/advertisements-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 订单管理界面包
+
+21. **Story 21:** 单租户订单管理界面独立包实现
+    - 复制前端订单管理界面 `web/src/client/admin/pages/Orders.tsx` 为单租户订单管理界面包
+    - 创建独立的单租户订单管理界面包 `@d8d/order-management-ui`
+    - 实现完整的订单CRUD操作和状态管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖订单模块包 `@d8d/orders-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+22. **Story 22:** 多租户订单管理界面独立包实现
+    - 复制前端订单管理界面 `web/src/client/admin/pages/Orders.tsx` 为多租户订单管理界面包
+    - 创建独立的多租户订单管理界面包 `@d8d/order-management-ui-mt`
+    - 实现完整的订单CRUD操作和状态管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖订单模块包 `@d8d/orders-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 商品管理界面包
+
+23. **Story 23:** 单租户商品管理界面独立包实现
+    - 复制前端商品管理界面 `web/src/client/admin/pages/Goods.tsx` 为单租户商品管理界面包
+    - 创建独立的单租户商品管理界面包 `@d8d/goods-management-ui`
+    - 实现完整的商品CRUD操作、库存管理和价格管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖商品模块包 `@d8d/goods-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+24. **Story 24:** 多租户商品管理界面独立包实现
+    - 复制前端商品管理界面 `web/src/client/admin/pages/Goods.tsx` 为多租户商品管理界面包
+    - 创建独立的多租户商品管理界面包 `@d8d/goods-management-ui-mt`
+    - 实现完整的商品CRUD操作、库存管理和价格管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖商品模块包 `@d8d/goods-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 商品分类管理界面包
+
+25. **Story 25:** 单租户商品分类管理界面独立包实现
+    - 复制前端商品分类管理界面 `web/src/client/admin/pages/GoodsCategories.tsx` 为单租户商品分类管理界面包
+    - 创建独立的单租户商品分类管理界面包 `@d8d/goods-category-management-ui`
+    - 实现完整的商品分类CRUD操作和树形结构管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖商品模块包 `@d8d/goods-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+26. **Story 26:** 多租户商品分类管理界面独立包实现
+    - 复制前端商品分类管理界面 `web/src/client/admin/pages/GoodsCategories.tsx` 为多租户商品分类管理界面包
+    - 创建独立的多租户商品分类管理界面包 `@d8d/goods-category-management-ui-mt`
+    - 实现完整的商品分类CRUD操作和树形结构管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖商品模块包 `@d8d/goods-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 供应商管理界面包
+
+27. **Story 27:** 单租户供应商管理界面独立包实现
+    - 复制前端供应商管理界面 `web/src/client/admin/pages/Suppliers.tsx` 为单租户供应商管理界面包
+    - 创建独立的单租户供应商管理界面包 `@d8d/supplier-management-ui`
+    - 实现完整的供应商CRUD操作和联系人管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖供应商模块包 `@d8d/supplier-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+28. **Story 28:** 多租户供应商管理界面独立包实现
+    - 复制前端供应商管理界面 `web/src/client/admin/pages/Suppliers.tsx` 为多租户供应商管理界面包
+    - 创建独立的多租户供应商管理界面包 `@d8d/supplier-management-ui-mt`
+    - 实现完整的供应商CRUD操作和联系人管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖供应商模块包 `@d8d/supplier-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 商户管理界面包
+
+29. **Story 29:** 单租户商户管理界面独立包实现
+    - 复制前端商户管理界面 `web/src/client/admin/pages/Merchants.tsx` 为单租户商户管理界面包
+    - 创建独立的单租户商户管理界面包 `@d8d/merchant-management-ui`
+    - 实现完整的商户CRUD操作和状态管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖商户模块包 `@d8d/merchant-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+30. **Story 30:** 多租户商户管理界面独立包实现
+    - 复制前端商户管理界面 `web/src/client/admin/pages/Merchants.tsx` 为多租户商户管理界面包
+    - 创建独立的多租户商户管理界面包 `@d8d/merchant-management-ui-mt`
+    - 实现完整的商户CRUD操作和状态管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖商户模块包 `@d8d/merchant-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 文件管理界面包
+
+31. **Story 31:** 单租户文件管理界面独立包实现
+    - 复制前端文件管理界面 `web/src/client/admin/pages/Files.tsx` 为单租户文件管理界面包
+    - 创建独立的单租户文件管理界面包 `@d8d/file-management-ui`
+    - 实现完整的文件CRUD操作和上传下载管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖文件模块包 `@d8d/file-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+32. **Story 32:** 多租户文件管理界面独立包实现
+    - 复制前端文件管理界面 `web/src/client/admin/pages/Files.tsx` 为多租户文件管理界面包
+    - 创建独立的多租户文件管理界面包 `@d8d/file-management-ui-mt`
+    - 实现完整的文件CRUD操作和上传下载管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖文件模块包 `@d8d/file-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 地址管理界面包
+
+33. **Story 33:** 单租户地址管理界面独立包实现
+    - 复制前端地址管理界面 `web/src/client/admin/pages/DeliveryAddresses.tsx` 为单租户地址管理界面包
+    - 创建独立的单租户地址管理界面包 `@d8d/delivery-address-management-ui`
+    - 实现完整的地址CRUD操作和区域选择管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖地址模块包 `@d8d/delivery-address-module`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+34. **Story 34:** 多租户地址管理界面独立包实现
+    - 复制前端地址管理界面 `web/src/client/admin/pages/DeliveryAddresses.tsx` 为多租户地址管理界面包
+    - 创建独立的多租户地址管理界面包 `@d8d/delivery-address-management-ui-mt`
+    - 实现完整的地址CRUD操作和区域选择管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖地址模块包 `@d8d/delivery-address-module-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 区域管理界面包
+
+35. **Story 35:** 单租户区域管理界面独立包实现
+    - 复制前端区域管理界面 `web/src/client/admin/pages/AreasTreePage.tsx` 为单租户区域管理界面包
+    - 创建独立的单租户区域管理界面包 `@d8d/area-management-ui`
+    - 实现完整的区域CRUD操作和树形结构管理
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖区域模块包 `@d8d/geo-areas`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+36. **Story 36:** 多租户区域管理界面独立包实现
+    - 复制前端区域管理界面 `web/src/client/admin/pages/AreasTreePage.tsx` 为多租户区域管理界面包
+    - 创建独立的多租户区域管理界面包 `@d8d/area-management-ui-mt`
+    - 实现完整的区域CRUD操作和树形结构管理,支持租户数据隔离
+    - 基于React + TypeScript + TanStack Query + React Hook Form技术栈
+    - 依赖共享UI组件包 `@d8d/shared-ui-components`
+    - 依赖区域模块包 `@d8d/geo-areas-mt`
+    - 提供workspace包依赖复用机制
+    - 支持独立测试和部署
+    - 验证现有功能无回归
+
+### 租户配置管理界面包
+
+37. **Story 37:** 租户配置管理界面独立包实现
+    - 创建租户配置管理API
     - 实现租户配置界面
     - 添加租户切换功能
     - 完整的多租户系统测试
@@ -727,7 +1007,7 @@ CREATE INDEX idx_goods_mt_tenant_id ON goods_mt(tenant_id);
 
 虽然存在代码重复和维护成本增加的权衡,但该方案在风险控制、实施简单性和团队接受度方面具有明显优势,特别适合需要快速实现多租户支持且对现有系统稳定性要求极高的场景。
 
-**当前进展**: 阶段1已100%完成,阶段2已100%完成,阶段3完成100%,阶段4完成33.3%,总体进度87.5%,所有已创建的多租户包测试通过且构建成功。租户管理界面独立包已完成,包含完整的租户CRUD操作、配置管理功能,所有18个测试通过,构建成功。前端包依赖共享UI组件包,解决了组件导出和测试路径问题,确保租户管理界面独立包可独立使用。
+**当前进展**: 阶段1已100%完成,阶段2已100%完成,阶段3完成100%,阶段4完成8.3%,总体进度40.5%,所有已创建的多租户包测试通过且构建成功。租户管理界面独立包已完成,包含完整的租户CRUD操作、配置管理功能,所有18个测试通过,构建成功。前端包依赖共享UI组件包,解决了组件导出和测试路径问题,确保租户管理界面独立包可独立使用。新增24个管理界面独立包故事,每个管理界面都区分单租户和多租户版本,形成独立的开发故事,确保架构清晰和可维护性。
 
 ---
 
@@ -737,4 +1017,4 @@ via [Happy](https://happy.engineering)
 **Co-Authored-By: Claude <noreply@anthropic.com>**
 **Co-Authored-By: Happy <yesreply@happy.engineering>**
 
-**最后更新**: 2025-11-15
+**最后更新**: 2025-11-15 (添加管理界面独立包故事)