feat(budget): 实现存款明细计算核心逻辑
- 添加 BudgetItemCalculator 辅助类,实现明细项计算规则 - 收入:实际>0取实际,否则取预算 - 支出:取MAX(预算, 实际) - 硬性支出未发生:按天数折算 - 归档数据:直接使用实际值 - 实现月度和年度存款核心公式 - 月度:收入预算 + 本月年度收入 - 支出预算 - 本月年度支出 - 年度:归档已实收 + 未来收入预算 - 归档已实支 - 未来支出预算 - 定义存款明细数据结构 - SavingsDetail: 包含收入/支出明细列表和汇总 - BudgetDetailItem: 预算明细项(含计算用金额、计算说明等) - SavingsCalculationSummary: 计算汇总信息 - 新增单元测试 - BudgetItemCalculatorTest: 11个测试覆盖所有计算规则 - BudgetSavingsCalculationTest: 6个测试验证核心公式 测试结果:所有测试通过 (366 passed, 0 failed)
This commit is contained in:
33
openspec/changes/fix-deposit-detail-empty/proposal.md
Normal file
33
openspec/changes/fix-deposit-detail-empty/proposal.md
Normal file
@@ -0,0 +1,33 @@
|
||||
## Why
|
||||
|
||||
存款明细弹窗显示为空白内容,因为 `SavingsBudgetContent.vue` 组件中引用了未定义的计算属性 `incomeLimit`、`incomeCurrent`、`expenseLimit`、`expenseCurrent`,导致用户无法查看存款计划的详细构成。这影响了用户理解存款目标的计算逻辑和追踪存款进度的能力。
|
||||
|
||||
## What Changes
|
||||
|
||||
- 修复 `SavingsBudgetContent.vue` 组件中缺失的计算属性
|
||||
- 添加从父组件获取收入和支出预算数据的逻辑
|
||||
- 确保存款明细弹窗正确显示收入预算、支出预算、计划存款公式和存款结果
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
无新增能力。
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `savings-budget-display`: 修复存款明细弹窗内容显示功能,确保收入预算和支出预算数据正确传递和渲染
|
||||
|
||||
## Impact
|
||||
|
||||
**受影响文件:**
|
||||
- `Web/src/views/budgetV2/modules/SavingsBudgetContent.vue` - 添加缺失的计算属性
|
||||
- `Web/src/views/budgetV2/Index.vue` - 可能需要传递额外的收入/支出预算数据给子组件
|
||||
|
||||
**受影响功能:**
|
||||
- 存款计划明细查看功能
|
||||
- 用户对存款目标计算逻辑的理解
|
||||
|
||||
**依赖:**
|
||||
- Vue 3 computed API
|
||||
- 组件间数据传递(props 或 provide/inject)
|
||||
Reference in New Issue
Block a user