diff --git a/apps/web/src/pages/DashboardPage.vue b/apps/web/src/pages/DashboardPage.vue index 02a0174..fcdb2e9 100644 --- a/apps/web/src/pages/DashboardPage.vue +++ b/apps/web/src/pages/DashboardPage.vue @@ -14,12 +14,19 @@ - {{ formatBudgetPercentage(overview.monthlyBudgetUsageRatio) }}% + + {{ formatBudgetPercentage(overview.monthlyBudgetUsageRatio) }}% +
- 已使用 {{ formatMoney(overview.monthlyEstimatedBase, baseCurrency) }} / 预算 + 已使用 + + {{ formatMoney(overview.monthlyEstimatedBase, baseCurrency) }} + + / 预算 {{ formatMoney(overview.monthlyBudgetBase, baseCurrency) }}
@@ -34,13 +41,19 @@ - {{ formatBudgetPercentage(overview.yearlyBudgetUsageRatio) }}% + + {{ formatBudgetPercentage(overview.yearlyBudgetUsageRatio) }}% +
- 已使用 {{ formatMoney(overview.yearlyEstimatedBase, baseCurrency) }} / 预算 + 已使用 + + {{ formatMoney(overview.yearlyEstimatedBase, baseCurrency) }} + + / 预算 {{ formatMoney(overview.yearlyBudgetBase, baseCurrency) }}
@@ -186,9 +199,18 @@ function formatMoney(amount: number, currency: string) { } function formatBudgetPercentage(ratio?: number | null) { - const raw = Math.min((ratio ?? 0) * 100, 100) + const raw = (ratio ?? 0) * 100 return Math.round(raw * 100) / 100 } + +function isBudgetExceeded(ratio?: number | null) { + return (ratio ?? 0) > 1 +} + +function budgetProgressStatus(ratio?: number | null) { + if (isBudgetExceeded(ratio)) return 'error' + return 'warning' +}