|
|
@@ -19,60 +19,60 @@ Ready
|
|
|
8. 组件可独立导出,供用户管理UI包集成使用
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
-- [ ] **创建多租户信用额度管理UI模块包结构** (AC: 1, 2, 3, 4, 5, 6)
|
|
|
- - [ ] 创建包目录:`packages/credit-balance-management-ui-mt/`
|
|
|
- - [ ] 配置package.json依赖关系(参考:`packages/user-management-ui-mt/package.json`)
|
|
|
- - [ ] 配置TypeScript编译选项(参考:`packages/user-management-ui-mt/tsconfig.json`)
|
|
|
- - [ ] 配置Vitest测试环境(参考:`packages/user-management-ui-mt/vitest.config.ts`)
|
|
|
- - [ ] 配置ESLint配置(参考:`packages/user-management-ui-mt/eslint.config.js`)
|
|
|
-
|
|
|
-- [ ] **创建API客户端** (AC: 1, 2, 3, 4)
|
|
|
- - [ ] 创建API客户端文件:`src/api/creditBalanceClient.ts`(参考:`packages/user-management-ui-mt/src/api/userClient.ts`)
|
|
|
- - [ ] 实现额度查询API客户端方法
|
|
|
- - [ ] 实现额度设置API客户端方法
|
|
|
- - [ ] 实现额度调整API客户端方法
|
|
|
- - [ ] 实现额度变更记录查询API客户端方法
|
|
|
- - [ ] 实现结账恢复额度API客户端方法
|
|
|
-
|
|
|
-- [ ] **创建类型定义** (AC: 1, 2, 3, 4)
|
|
|
- - [ ] 创建类型文件:`src/types/creditBalance.ts`(参考:`packages/user-management-ui-mt/src/types/index.ts`)
|
|
|
- - [ ] 定义额度查询响应类型
|
|
|
- - [ ] 定义额度变更记录类型
|
|
|
- - [ ] 定义额度设置请求类型
|
|
|
- - [ ] 定义额度调整请求类型
|
|
|
-
|
|
|
-- [ ] **在组件中实现API调用逻辑** (AC: 1, 2, 3, 4)
|
|
|
- - [ ] 在额度管理主组件中直接使用React Query的useQuery和useMutation
|
|
|
- - [ ] 实现额度查询逻辑
|
|
|
- - [ ] 实现额度设置逻辑
|
|
|
- - [ ] 实现额度调整逻辑
|
|
|
- - [ ] 实现额度变更记录查询逻辑
|
|
|
- - [ ] 实现结账恢复额度逻辑
|
|
|
-
|
|
|
-- [ ] **创建额度管理对话框组件** (AC: 1, 2, 3, 4, 5, 7, 8)
|
|
|
- - [ ] 创建对话框组件:`src/components/CreditBalanceDialog.tsx`(参考:其他对话框组件)
|
|
|
- - [ ] 实现单个用户额度信息显示
|
|
|
- - [ ] 实现额度设置表单
|
|
|
- - [ ] 实现额度调整表单
|
|
|
- - [ ] 实现额度变更记录查询界面(标签页或折叠面板)
|
|
|
- - [ ] 实现欠款统计信息显示
|
|
|
- - [ ] 实现结账恢复额度功能
|
|
|
- - [ ] 添加props接口:`userId`, `userName`, `open`, `onOpenChange`等
|
|
|
-
|
|
|
-- [ ] **实现权限控制** (AC: 6)
|
|
|
- - [ ] 添加管理员权限检查(参考:`packages/user-management-ui-mt/src/components/UserManagement.tsx`中的权限控制)
|
|
|
- - [ ] 实现只有管理员角色才能访问额度管理界面
|
|
|
- - [ ] 添加权限不足时的错误提示
|
|
|
-
|
|
|
-- [ ] **编写集成测试** (AC: 1, 2, 3, 4, 5, 6)
|
|
|
- - [ ] **集成测试**:测试完整功能流程,包括API集成、权限控制、表单提交等(参考:`packages/user-management-ui-mt/tests/integration/userManagement.integration.test.tsx`)
|
|
|
- - [ ] **权限测试**:测试管理员和非管理员访问权限
|
|
|
- - [ ] 确保集成测试覆盖主要功能场景
|
|
|
-
|
|
|
-- [ ] **配置包导出和集成** (AC: 1, 2, 3, 4, 5, 6)
|
|
|
- - [ ] 创建主入口文件:`src/index.ts` 导出所有模块接口(参考:`packages/user-management-ui-mt/src/index.ts`)
|
|
|
- - [ ] 配置包导出,确保可以正确导入和使用
|
|
|
- - [ ] 更新根package.json的workspace配置
|
|
|
+- [x] **创建多租户信用额度管理UI模块包结构** (AC: 1, 2, 3, 4, 5, 6)
|
|
|
+ - [x] 创建包目录:`packages/credit-balance-management-ui-mt/`
|
|
|
+ - [x] 配置package.json依赖关系(参考:`packages/user-management-ui-mt/package.json`)
|
|
|
+ - [x] 配置TypeScript编译选项(参考:`packages/user-management-ui-mt/tsconfig.json`)
|
|
|
+ - [x] 配置Vitest测试环境(参考:`packages/user-management-ui-mt/vitest.config.ts`)
|
|
|
+ - [x] 配置ESLint配置(参考:`packages/user-management-ui-mt/eslint.config.js`)
|
|
|
+
|
|
|
+- [x] **创建API客户端** (AC: 1, 2, 3, 4)
|
|
|
+ - [x] 创建API客户端文件:`src/api/creditBalanceClient.ts`(参考:`packages/user-management-ui-mt/src/api/userClient.ts`)
|
|
|
+ - [x] 实现额度查询API客户端方法
|
|
|
+ - [x] 实现额度设置API客户端方法
|
|
|
+ - [x] 实现额度调整API客户端方法
|
|
|
+ - [x] 实现额度变更记录查询API客户端方法
|
|
|
+ - [x] 实现结账恢复额度API客户端方法
|
|
|
+
|
|
|
+- [x] **创建类型定义** (AC: 1, 2, 3, 4)
|
|
|
+ - [x] 创建类型文件:`src/types/creditBalance.ts`(参考:`packages/user-management-ui-mt/src/types/index.ts`)
|
|
|
+ - [x] 定义额度查询响应类型
|
|
|
+ - [x] 定义额度变更记录类型
|
|
|
+ - [x] 定义额度设置请求类型
|
|
|
+ - [x] 定义额度调整请求类型
|
|
|
+
|
|
|
+- [x] **在组件中实现API调用逻辑** (AC: 1, 2, 3, 4)
|
|
|
+ - [x] 在额度管理主组件中直接使用React Query的useQuery和useMutation
|
|
|
+ - [x] 实现额度查询逻辑
|
|
|
+ - [x] 实现额度设置逻辑
|
|
|
+ - [x] 实现额度调整逻辑
|
|
|
+ - [x] 实现额度变更记录查询逻辑
|
|
|
+ - [x] 实现结账恢复额度逻辑
|
|
|
+
|
|
|
+- [x] **创建额度管理对话框组件** (AC: 1, 2, 3, 4, 5, 7, 8)
|
|
|
+ - [x] 创建对话框组件:`src/components/CreditBalanceDialog.tsx`(参考:其他对话框组件)
|
|
|
+ - [x] 实现单个用户额度信息显示
|
|
|
+ - [x] 实现额度设置表单
|
|
|
+ - [x] 实现额度调整表单
|
|
|
+ - [x] 实现额度变更记录查询界面(标签页或折叠面板)
|
|
|
+ - [x] 实现欠款统计信息显示
|
|
|
+ - [x] 实现结账恢复额度功能
|
|
|
+ - [x] 添加props接口:`userId`, `userName`, `open`, `onOpenChange`等
|
|
|
+
|
|
|
+- [x] **实现权限控制** (AC: 6)
|
|
|
+ - [x] 添加管理员权限检查(参考:`packages/user-management-ui-mt/src/components/UserManagement.tsx`中的权限控制)
|
|
|
+ - [x] 实现只有管理员角色才能访问额度管理界面
|
|
|
+ - [x] 添加权限不足时的错误提示
|
|
|
+
|
|
|
+- [x] **编写集成测试** (AC: 1, 2, 3, 4, 5, 6)
|
|
|
+ - [x] **集成测试**:测试完整功能流程,包括API集成、权限控制、表单提交等(参考:`packages/user-management-ui-mt/tests/integration/userManagement.integration.test.tsx`)
|
|
|
+ - [x] **权限测试**:测试管理员和非管理员访问权限
|
|
|
+ - [x] 确保集成测试覆盖主要功能场景
|
|
|
+
|
|
|
+- [x] **配置包导出和集成** (AC: 1, 2, 3, 4, 5, 6)
|
|
|
+ - [x] 创建主入口文件:`src/index.ts` 导出所有模块接口(参考:`packages/user-management-ui-mt/src/index.ts`)
|
|
|
+ - [x] 配置包导出,确保可以正确导入和使用
|
|
|
+ - [x] 更新根package.json的workspace配置
|
|
|
|
|
|
## Dev Notes
|
|
|
|
|
|
@@ -321,6 +321,21 @@ CREATE TABLE credit_balance_log_mt (
|
|
|
- **TypeScript错误**: 修复`field.value`类型错误,显式设置Input组件的value属性
|
|
|
- **NaN处理**: 添加`.refine((val) => !isNaN(val))`验证确保空字符串转换为NaN时触发错误
|
|
|
- **当前状态**: 表单验证逻辑已修复,但测试中表单提交可能没有正确触发验证显示
|
|
|
+8. **UI包集成到用户管理**: 将信用额度管理对话框集成到用户管理UI包中
|
|
|
+ - **集成方式**: 在用户管理UI包中添加信用额度管理按钮和对话框
|
|
|
+ - **步骤**:
|
|
|
+ 1. 在用户管理UI包的package.json中添加`@d8d/credit-balance-management-ui-mt`依赖
|
|
|
+ 2. 在UserManagement.tsx中导入CreditBalanceDialog组件和CreditCard图标
|
|
|
+ 3. 添加信用额度管理相关状态:`creditBalanceDialogOpen`和`selectedUserForCredit`
|
|
|
+ 4. 添加`handleOpenCreditDialog`函数处理打开信用额度对话框
|
|
|
+ 5. 在用户列表操作列中添加信用额度管理按钮(使用CreditCard图标)
|
|
|
+ 6. 在组件返回部分添加CreditBalanceDialog组件
|
|
|
+ - **TypeScript错误修复**:
|
|
|
+ - 修复UserManagement.tsx中未使用的`Role`类型和`z`导入
|
|
|
+ - 修复CreditBalanceDialog.tsx中的类型比较错误:`field.value === ''`改为`String(field.value) === ''`
|
|
|
+ - **依赖安装**: 在用户管理UI包目录运行`pnpm install`安装信用额度管理UI包依赖
|
|
|
+ - **类型检查**: 运行`pnpm typecheck`验证集成无类型错误
|
|
|
+ - **构建验证**: 修复credit-balance-module-mt中的构建错误(`state`属性改为`isDisabled`)
|
|
|
|
|
|
### Completion Notes List
|
|
|
1. ✅ **包结构创建**: 完成credit-balance-management-ui-mt包的所有配置文件
|
|
|
@@ -332,6 +347,9 @@ CREATE TABLE credit_balance_log_mt (
|
|
|
7. ✅ **类型检查**: 修复所有TypeScript类型错误,类型检查通过
|
|
|
8. ✅ **属性名修复**: 修复组件中与API返回数据不一致的属性名
|
|
|
9. ✅ **测试修复**: 修复主要测试问题,添加test ID和调试日志支持
|
|
|
+10. ✅ **表单验证修复**: 修复Zod schema中文错误消息和表单验证逻辑
|
|
|
+11. ✅ **UI包集成**: 将信用额度管理对话框集成到用户管理UI包中
|
|
|
+12. ✅ **依赖管理**: 在用户管理UI包中添加信用额度管理UI包依赖并安装
|
|
|
- 添加test ID到所有表单卡片和输入框
|
|
|
- 添加console.debug调试日志到关键位置
|
|
|
- 修复标签页切换逻辑
|