4.1 KiB
4.1 KiB
1. 后端基础设施
- 1.1 在
Service/项目中创建IClassificationIconPromptProvider接口,定义GetPromptAsync(string categoryName, string budgetType)方法 - 1.2 在
Service/项目中创建ClassificationIconPromptProvider实现类,实现统一的提示词生成逻辑 - 1.3 实现提示词模板,包含
{categoryName}和{budgetType}占位符,以及风格要求和设计约束 - 1.4 在
Service/项目中注册IClassificationIconPromptProvider为单例服务(在依赖注入容器中)
2. 后端 API - 删除图标
- 2.1 在
Application/ClassificationAppService.cs中添加DeleteIconAsync(long classificationId)方法 - 2.2 实现删除逻辑:将分类记录的 Icon 字段设置为 null
- 2.3 在
WebApi/Controllers/ClassificationController.cs中添加DELETE /api/classification/{id}/icon端点 - 2.4 添加输入验证:确保分类 ID 存在且用户有权限删除该分类的图标
3. 后端重构 - 统一图标生成逻辑
- 3.1 重构
Service/ClassificationIconGenerateService.cs,注入并使用IClassificationIconPromptProvider - 3.2 移除
ClassificationIconGenerateService.cs中的硬编码提示词,改用IClassificationIconPromptProvider.GetPromptAsync() - 3.3 重构
Service/BackgroundJob/ClassificationIconGenerateJob.cs,注入并使用IClassificationIconPromptProvider - 3.4 移除
ClassificationIconGenerateJob.cs中的硬编码提示词,改用IClassificationIconPromptProvider.GetPromptAsync() - 3.5 验证 JOB 和手动生成都使用相同的提示词逻辑(通过单元测试)
4. 后端测试
- 4.1 为
IClassificationIconPromptProvider创建单元测试,验证提示词生成包含正确的上下文信息 - 4.2 为
ClassificationAppService.DeleteIconAsync()创建单元测试,验证图标删除逻辑 - 4.3 为
DELETE /api/classification/{id}/icon端点创建集成测试(跳过:项目中无 Controller 层集成测试框架) - 4.4 测试 JOB 生成和手动生成生成的图标一致性(通过对比提示词)
5. 前端 API 客户端
- 5.1 在
Web/src/api/classification.ts中添加deleteClassificationIcon(id: number)API 函数 - 5.2 使用 DELETE 方法调用
/api/classification/{id}/icon端点 - 5.3 添加错误处理和加载状态管理
6. 前端 UI - 删除按钮和交互
- 6.1 在
Web/src/views/ClassificationEdit.vue的图标预览区域添加删除按钮(使用 Vant 的 van-icon,使用垃圾桶图标) - 6.2 实现删除按钮点击事件处理,显示确认对话框(使用 Vant 的 van-dialog 或 van-action-sheet)
- 6.3 实现删除确认逻辑:用户点击确认后调用
deleteClassificationIcon()API - 6.4 实现 API 调用成功后的 UI 更新:移除图标预览,显示"添加图标"提示
- 6.5 处理无图标分类的情况:当分类没有图标时,隐藏或禁用删除按钮
7. 前端测试
- 7.1 手动测试分类图标删除功能:点击删除按钮 → 确认 → 验证图标被移除
- 7.2 手动测试删除取消操作:点击删除按钮 → 取消 → 验证图标未被移除
- 7.3 手动测试无图标分类:验证删除按钮正确隐藏或禁用(代码逻辑正确:v-if="currentCategory && currentCategory.icon",所有现有分类均有图标)
- 7.4 测试分类图标生成功能,验证新的统一提示词生成的图标质量(功能可用,AI 服务配置需检查)
8. 后台 JOB 验证
- 8.1 重启后台 JOB 服务(JOB 已启动)
- 8.2 检查 JOB 日志,验证
IClassificationIconPromptProvider被正确调用 - 8.3 验证 JOB 生成的图标与手动生成的图标风格一致
- 8.4 监控 AI 服务调用成本,确保提示词增强未导致显著增加
9. 集成测试和部署准备
- 9.1 运行完整的后端测试套件,确保所有测试通过
- 9.2 运行前端构建和 lint,确保代码质量
- 9.3 进行端到端测试:从分类编辑页面删除图标 → 验证数据库更新 → 验证前端 UI 更新
- 9.4 准备部署文档和回滚计划