diff --git a/web/src/lib/components/analysis/DailyTrendChart.svelte b/web/src/lib/components/analysis/DailyTrendChart.svelte index ecf9edd..1e4580b 100644 --- a/web/src/lib/components/analysis/DailyTrendChart.svelte +++ b/web/src/lib/components/analysis/DailyTrendChart.svelte @@ -11,6 +11,7 @@ import { Button } from '$lib/components/ui/button'; import type { BillRecord } from '$lib/api'; import { pieColors } from '$lib/constants/chart'; + import { formatLocalDate } from '$lib/utils'; import BillRecordsTable from './BillRecordsTable.svelte'; interface Props { @@ -96,7 +97,7 @@ const day = d.getDay(); const diff = d.getDate() - day + (day === 0 ? -6 : 1); // 调整到周一 d.setDate(diff); - return d.toISOString().split('T')[0]; + return formatLocalDate(d); } // 获取月份标识 @@ -526,7 +527,7 @@ // 点击图表任意位置都触发,选择最近的日期 const clickedDate = data[closestIdx].date; - const dateStr = clickedDate.toISOString().split('T')[0]; + const dateStr = formatLocalDate(clickedDate); // 找出当天的所有支出记录 selectedDate = clickedDate; diff --git a/web/src/lib/components/ui/date-range-picker/date-range-picker.svelte b/web/src/lib/components/ui/date-range-picker/date-range-picker.svelte index c39b70b..ed727ac 100644 --- a/web/src/lib/components/ui/date-range-picker/date-range-picker.svelte +++ b/web/src/lib/components/ui/date-range-picker/date-range-picker.svelte @@ -1,4 +1,5 @@ @@ -73,8 +100,7 @@ = T extends { child?: any } ? Omit : T; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/web/src/routes/analysis/+page.svelte b/web/src/routes/analysis/+page.svelte index fbf09df..3a0727b 100644 --- a/web/src/routes/analysis/+page.svelte +++ b/web/src/routes/analysis/+page.svelte @@ -5,6 +5,7 @@ import { Badge } from '$lib/components/ui/badge'; import * as Card from '$lib/components/ui/card'; import { DateRangePicker } from '$lib/components/ui/date-range-picker'; + import { formatLocalDate } from '$lib/utils'; import BarChart3 from '@lucide/svelte/icons/bar-chart-3'; import Loader2 from '@lucide/svelte/icons/loader-2'; import AlertCircle from '@lucide/svelte/icons/alert-circle'; @@ -41,8 +42,9 @@ const today = new Date(); const year = today.getFullYear(); const month = today.getMonth(); - const startDate = new Date(year, month, 1).toISOString().split('T')[0]; - const endDate = today.toISOString().split('T')[0]; + + const startDate = formatLocalDate(new Date(year, month, 1)); + const endDate = formatLocalDate(today); return { startDate, endDate }; } const defaultDates = getDefaultDates(); diff --git a/web/src/routes/bills/+page.svelte b/web/src/routes/bills/+page.svelte index 670d8ea..ccb04d7 100644 --- a/web/src/routes/bills/+page.svelte +++ b/web/src/routes/bills/+page.svelte @@ -8,6 +8,7 @@ import { Label } from '$lib/components/ui/label'; import * as Table from '$lib/components/ui/table'; import { DateRangePicker } from '$lib/components/ui/date-range-picker'; + import { formatLocalDate } from '$lib/utils'; import Loader2 from '@lucide/svelte/icons/loader-2'; import AlertCircle from '@lucide/svelte/icons/alert-circle'; import Search from '@lucide/svelte/icons/search'; @@ -40,8 +41,9 @@ const today = new Date(); const year = today.getFullYear(); const month = today.getMonth(); - const startDate = new Date(year, month, 1).toISOString().split('T')[0]; - const endDate = today.toISOString().split('T')[0]; + + const startDate = formatLocalDate(new Date(year, month, 1)); + const endDate = formatLocalDate(today); return { startDate, endDate }; } const defaultDates = getDefaultDates(); @@ -221,11 +223,9 @@
{ - startDate = start; - endDate = end; applyFilters(); }} /> @@ -344,6 +344,9 @@

显示 {(currentPage - 1) * pageSize + 1} - {Math.min(currentPage * pageSize, totalRecords)} 条,共 {totalRecords} 条 + {#if searchText} + (当前页筛选后:{displayRecords.length} 条) + {/if}