fix
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 26s
Docker Build & Deploy / Deploy to Production (push) Successful in 10s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 2s

This commit is contained in:
孙诚
2026-01-15 20:31:10 +08:00
parent f4f1600782
commit 12b8e4bd0e
2 changed files with 20 additions and 8 deletions

View File

@@ -693,6 +693,7 @@ public class BudgetService(
var totalExpense = expenseLimitAtPeriod + noLimitExpenseAtPeriod;
description.Append($"<p>计划收入 = 预算 <span class='income-value'>{incomeLimitAtPeriod:N0}</span> + 不记额 <span class='income-value'>{noLimitIncomeAtPeriod:N0}</span> = <span class='income-value'><strong>{totalIncome:N0}</strong></span></p>");
description.Append($"<p>计划支出 = 预算 <span class='expense-value'>{expenseLimitAtPeriod:N0}</span> + 不记额 <span class='expense-value'>{noLimitExpenseAtPeriod:N0}</span> = <span class='expense-value'><strong>{totalExpense:N0}</strong></span></p>");
description.Append($"<p>计划盈余 = 计划收入 <span class='income-value'>{totalIncome:N0}</span> - 计划支出 <span class='expense-value'>{totalExpense:N0}</span> = <span class='income-value'><strong>{totalIncome - totalExpense:N0}</strong></span></p>");
decimal historicalSurplus = 0;
if (periodType == BudgetPeriodType.Year)
@@ -744,11 +745,12 @@ public class BudgetService(
""");
}
var finalGoal = totalIncome - totalExpense + historicalSurplus;
description.Append($"<p>动态目标 = 计划盈余 <span class='highlight'>{totalIncome - totalExpense:N0}</span> + 历史盈亏 <span class='highlight'>{historicalSurplus:N0}</span> = <span class='highlight'><strong>{finalGoal:N0}</strong></span></p>");
}
else
{
description.Append($"<p>最终目标:<span class='highlight'><strong>{totalIncome - totalExpense:N0}</strong></span></p>");
description.Append($"""
<p>
动态目标 = 计划盈余 <span class='{(totalIncome - totalExpense >= 0 ? "income-value" : "expense-value")}'>{totalIncome - totalExpense:N0}</span>
+ <span class='{(historicalSurplus >= 0 ? "income-value" : "expense-value")}'>{historicalSurplus:N0}</span>
= <span class='{(finalGoal >= 0 ? "income-value" : "expense-value")}'><strong>{finalGoal:N0}</strong></span></p>
""");
}
var finalLimit = periodType == BudgetPeriodType.Year ? (totalIncome - totalExpense + historicalSurplus) : (totalIncome - totalExpense);

View File

@@ -180,7 +180,6 @@
type="primary"
@click.stop="handleSavingsNav(budget, -1)"
>
{{ budget.type === BudgetPeriodType.Year ? '上一年' : '上一月' }}
</van-button>
<span class="current-date-label">
{{ getSavingsDateLabel(budget) }}
@@ -191,9 +190,9 @@
plain
type="primary"
icon-position="right"
:disabled="disabledSavingsNextNav(budget)"
@click.stop="handleSavingsNav(budget, 1)"
>
{{ budget.type === BudgetPeriodType.Year ? '下一年' : '下一月' }}
</van-button>
</div>
</template>
@@ -613,6 +612,17 @@ const handleSavingsNav = async (budget, offset) => {
showToast('切换日期失败')
}
}
const disabledSavingsNextNav = (budget) => {
if (!budget.periodStart) return true
const date = new Date(budget.periodStart)
const now = new Date()
if (budget.type === BudgetPeriodType.Year) {
return date.getFullYear() === now.getFullYear()
} else {
return date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth()
}
}
</script>
<style scoped>
@@ -622,7 +632,7 @@ const handleSavingsNav = async (budget, offset) => {
align-items: center;
margin-top: 12px;
padding-top: 12px;
border-top: 1px dashed var(--van-gray-3);
border-top: 1px solid var(--van-border-color);
}
.current-date-label {