fix: 修复日期范围选择器时区和性能问题

- 修复时区问题:使用本地时区格式化日期,避免 toISOString() 导致的日期偏移
- 优化日期范围选择器性能:使用 untrack 避免循环更新
- 统一日期格式化方法:在 utils.ts 中添加 formatLocalDate 工具函数
- 修复分页逻辑:优化页码计算和显示
- 更新相关页面:bills 和 analysis 页面使用统一的日期格式化方法
This commit is contained in:
2026-01-10 01:51:18 +08:00
parent 087ae027cc
commit 48332efce4
5 changed files with 75 additions and 28 deletions

View File

@@ -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();