4.2 KiB
4.2 KiB
1. Backend: Fix Budget Stats DTO and Mapping (Bug #4 & #5 - High Priority)
- 1.1 在
Application/Dto/BudgetDto.cs的BudgetStatsDetailrecord 中添加Trend字段(List<decimal?>,使用init) - 1.2 在
Application/Dto/BudgetDto.cs的BudgetStatsDetailrecord 中添加Description字段(string,使用init) - 1.3 在
Application/BudgetApplication.cs的GetCategoryStatsAsync方法中,映射Month对象时添加Trend = stats.Month.Trend - 1.4 在
Application/BudgetApplication.cs的GetCategoryStatsAsync方法中,映射Month对象时添加Description = stats.Month.Description - 1.5 在
Application/BudgetApplication.cs的GetCategoryStatsAsync方法中,映射Year对象时添加Trend = stats.Year.Trend - 1.6 在
Application/BudgetApplication.cs的GetCategoryStatsAsync方法中,映射Year对象时添加Description = stats.Year.Description
2. Backend: Add Unit Tests for DTO Mapping
- 2.1 在
WebApi.Test/中创建BudgetApplicationTests.cs测试类(如果不存在) - 2.2 编写测试用例
GetCategoryStatsAsync_Should_Include_Trend_And_Description_In_Month_Stats - 2.3 编写测试用例
GetCategoryStatsAsync_Should_Include_Trend_And_Description_In_Year_Stats - 2.4 运行测试并验证通过:
dotnet test --filter "FullyQualifiedName~BudgetApplicationTests"
3. Frontend: Fix Navigation Routes (Bug #1)
- 3.1 使用
grep搜索底部导航组件代码(搜索关键字van-tabbar或统计) - 3.2 定位"统计"标签的路由配置(检查
to或path属性) - 3.3 修改路由路径为
/statistics-v2 - 3.4 验证路由配置文件
Web/src/router/index.js中存在/statistics-v2路由定义
4. Frontend: Fix Bill Deletion Function (Bug #2)
- 4.1 使用
grep搜索日历页面的账单详情组件(搜索关键字删除或delete) - 4.2 定位删除按钮的点击事件绑定(检查
@click或onClick) - 4.3 实现
handleDelete函数,使用showConfirmDialog显示确认对话框 - 4.4 在确认后调用删除 API 并关闭弹窗,刷新日历视图
- 4.5 在取消时关闭对话框但保持弹窗打开
- 4.6 处理删除失败场景,显示错误提示
5. Frontend: Fix Vant DatetimePicker Registration (Bug #3)
- 5.1 检查
Web/src/main.ts或全局组件注册文件 - 5.2 验证是否导入
DatetimePicker(import { DatetimePicker } from 'vant') - 5.3 如果缺失,添加全局注册
app.use(DatetimePicker) - 5.4 启动前端开发服务器,验证控制台无 "Failed to resolve component" 警告
6. Frontend: Verify Budget Chart Renders Correctly After Backend Fix
- 6.1 启动后端和前端服务
- 6.2 打开预算页面,点击"使用情况"或"完成情况"旁的感叹号图标
- 6.3 验证明细弹窗显示完整的 HTML 表格(非"暂无数据")
- 6.4 验证燃尽图显示波动曲线(非直线)
- 6.5 检查前端
BudgetChartAnalysis.vue:603和:629行的 fallback 逻辑是否仍触发(如需修改条件检查)
7. Investigation: Budget Card Amount Mismatch (Bug #6 - Low Priority)
- 7.1 在测试环境中打开预算页面,点击预算卡片的"查询关联账单"按钮
- 7.2 对比预算卡片显示的"实际"金额与账单列表金额总和
- 7.3 检查不一致的预算是否标记为硬性预算(📌)
- 7.4 如果是硬性预算,验证虚拟消耗的计算逻辑(
BudgetService.cs:376-405) - 7.5 检查
BudgetResult中PeriodStart和PeriodEnd的赋值是否与GetPeriodRange一致 - 7.6 如果是虚拟消耗导致,考虑在前端账单列表中添加提示说明(可选)
- 7.7 如果是日期范围问题,修复
BudgetResult的赋值逻辑
8. End-to-End Verification
- 8.1 运行后端所有测试:
dotnet test - 8.2 运行前端 lint:
cd Web && pnpm lint - 8.3 构建前端:
cd Web && pnpm build - 8.4 手动测试所有修复的 bug(按 bug-handoff-document.md 中的验证清单)
- 8.5 清除浏览器缓存并重新测试
- 8.6 验证控制台无错误或警告