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'
+}