✅ Completed
作为 系统管理员, 我想要 有一个独立的租户管理界面包, 以便 可以在多租户系统中独立管理和配置租户信息,而不影响现有的单租户系统。
@d8d/tenant-management-ui,包含正确的包配置和依赖管理web/src/client/admin/pages/Users.tsx 复制并修改为租户管理界面@d8d/shared-ui-components 中的基础组件@d8d/tenant-module-mt 中的API客户端和类型定义[x] 创建租户管理界面包基础结构 (AC: 1)
packages/tenant-management-ui/ 目录package.json 为 @d8d/tenant-management-ui@d8d/tenant-module-mt 的依赖[x] 复制并修改用户管理界面为租户管理界面 (AC: 2)
web/src/client/admin/pages/Users.tsx 到租户管理包TenantsPage.tsx@d8d/tenant-module-mt 的API客户端[x] 实现租户CRUD操作 (AC: 3)
[x] 实现租户配置管理功能 (AC: 4)
[x] 配置技术栈和依赖 (AC: 5, 6, 7)
[x] 配置workspace包依赖复用机制 (AC: 7)
pnpm-workspace.yaml 包含新包[x] 实现单元测试和集成测试 (AC: 8)
[x] 验证现有功能无回归 (AC: 9)
[x] 实现RPC客户端架构 (新增任务)
基于故事007.013(共享UI组件包创建)和之前故事的经验教训:
技术挑战和解决方案 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#实施经验总结]
RPC客户端架构实施经验
InferRequestType和InferResponseType确保API调用的类型安全index.$get()、index.$post()等路径结构,不同于简单的mock客户端最佳实践 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#最佳实践]
租户实体结构 [Source: packages/tenant-module-mt/src/schemas/tenant.schema.ts]
id (数字)name (字符串,可空)code (唯一字符串,必填)phone (字符串,可空)contactName (字符串,可空)status (数字,1启用 2禁用,默认1)config (JSONB,可空)rsaPublicKey (字符串,可空)aesKey (字符串,可空)createdAt (日期)updatedAt (日期)createdBy (数字,可空)updatedBy (数字,可空)租户管理界面组件 [Source: docs/architecture/component-architecture.md#前端组件架构]
基础UI组件依赖 [Source: packages/shared-ui-components/src/components/ui/]
前端技术栈 [Source: docs/architecture/tech-stack.md#现有技术栈维护]
包架构 [Source: docs/architecture/source-tree.md#包架构层次]
@d8d/tenant-module-mt 提供API客户端和类型定义性能要求 [Source: docs/prd/epic-007-multi-tenant-package-replication.md#成功标准]
packages/tenant-management-ui/tests/unit/| 日期 | 版本 | 描述 | 作者 |
|---|---|---|---|
| 2025-11-15 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
| 2025-11-15 | 1.0 | 故事开发完成,租户管理界面包成功创建 | James (Developer) |
| 2025-11-16 | 1.1 | 实现RPC客户端架构,提供单例模式、延迟初始化和类型安全 | James (Developer) |
packages/tenant-management-ui/package.json - 租户管理界面包配置packages/tenant-management-ui/src/components/TenantsPage.tsx - 主租户管理组件packages/tenant-management-ui/src/components/TenantForm.tsx - 租户创建/编辑表单packages/tenant-management-ui/src/components/TenantConfigPage.tsx - 租户配置管理页面packages/tenant-management-ui/src/components/DataTablePagination.tsx - 分页组件packages/tenant-management-ui/src/hooks/useTenants.ts - 租户管理hookpackages/tenant-management-ui/src/hooks/useTenantConfig.ts - 租户配置hookpackages/tenant-management-ui/src/utils/formatTenantStatus.ts - 租户状态格式化工具packages/tenant-management-ui/src/utils/cn.ts - CSS类名工具packages/tenant-management-ui/src/api/tenantClient.ts - 租户API客户端packages/tenant-management-ui/tests/ - 完整的测试套件packages/tenant-management-ui/tsconfig.json - TypeScript配置packages/tenant-management-ui/vitest.config.ts - 测试配置packages/tenant-management-ui/build.config.ts - 构建配置此部分将在质量保证审查过程中由QA代理填充