diff --git a/web/src/routes/analysis/+page.svelte b/web/src/routes/analysis/+page.svelte
index 1360d60..717ba1e 100644
--- a/web/src/routes/analysis/+page.svelte
+++ b/web/src/routes/analysis/+page.svelte
@@ -53,6 +53,7 @@
let isLoading = $state(false);
let errorMessage = $state('');
let records: CleanedBill[] = $state([]);
+ let allRecords: CleanedBill[] = $state([]); // 全部账单数据(不受日期筛选,用于每日趋势图)
let monthlyStats: MonthlyStat[] = $state([]); // 月度统计(全部数据)
let isDemo = $state(false);
let serverAvailable = $state(true);
@@ -88,6 +89,7 @@
// 派生分析数据
let analysisRecords = $derived(isDemo ? demoRecords : toAnalysisRecords(records));
+ let allAnalysisRecords = $derived(isDemo ? demoRecords : toAnalysisRecords(allRecords)); // 全部数据用于每日趋势图
let categoryStats = $derived(calculateCategoryStats(analysisRecords));
let dailyExpenseData = $derived(calculateDailyExpenseData(analysisRecords));
let totalStats = $derived(calculateTotalStats(analysisRecords));
@@ -122,13 +124,14 @@
return;
}
- // 并行获取数据:筛选后的账单 + 全部月度统计
- const [billsResponse, monthlyResponse] = await Promise.all([
+ // 并行获取数据:筛选后的账单 + 全部账单 + 全部月度统计
+ const [billsResponse, allBillsResponse, monthlyResponse] = await Promise.all([
fetchBills({
page_size: 10000,
start_date: toDateString(startYear, startMonth, startDay),
end_date: toDateString(endYear, endMonth, endDay),
}),
+ fetchBills({ page_size: 10000 }), // 获取全部数据,不传日期筛选
fetchMonthlyStats(),
]);
@@ -142,6 +145,11 @@
errorMessage = billsResponse.message || '加载失败';
}
+ // 处理全部账单数据(用于每日趋势图)
+ if (allBillsResponse.result && allBillsResponse.data) {
+ allRecords = allBillsResponse.data.bills || [];
+ }
+
// 处理月度统计数据
if (monthlyResponse.result && monthlyResponse.data) {
monthlyStats = monthlyResponse.data;
@@ -246,8 +254,8 @@