From f858d90b76c5388eae6f83bf083c78acef0ef8dc Mon Sep 17 00:00:00 2001 From: wangziqi Date: Tue, 11 Aug 2026 16:36:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E4=BF=AE=E5=A4=8D=E6=8E=92?= =?UTF-8?q?=E8=AF=BE=E5=91=A8=E8=A7=86=E5=9B=BE=E5=91=A8=E5=8C=BA=E9=97=B4?= =?UTF-8?q?=E9=94=99=E4=BD=8D=E4=B8=80=E5=A4=A9=EF=BC=88zh-cn=20=E4=B8=8B?= =?UTF-8?q?=20weekday(1)=20=E6=98=AF=E5=91=A8=E4=BA=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/pages/Schedules/index.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/admin/src/pages/Schedules/index.tsx b/apps/admin/src/pages/Schedules/index.tsx index 2c4e631a..08a43eea 100644 --- a/apps/admin/src/pages/Schedules/index.tsx +++ b/apps/admin/src/pages/Schedules/index.tsx @@ -46,7 +46,9 @@ interface ScheduleSyncResult { const SchedulesPage: React.FC = () => { const { hasPermission } = usePermission(); const [viewMode, setViewMode] = useState<'week' | 'month'>('week'); - const [viewDate, setViewDate] = useState(() => dayjs().weekday(1).startOf('day')); + const [viewDate, setViewDate] = useState(() => + dayjs().subtract((dayjs().day() + 6) % 7, 'day').startOf('day'), + ); const [selectedDate, setSelectedDate] = useState(null); const [classTeachers, setClassTeachers] = useState([]); const [classTeachersLoading, setClassTeachersLoading] = useState(false); @@ -124,7 +126,11 @@ const SchedulesPage: React.FC = () => { } }; - const weekStart = useMemo(() => viewDate.weekday(1).startOf('day'), [viewDate]); + // 本周一:day() 与 locale 无关(0=周日…6=周六),(day()+6)%7 即距周一的天数;勿用 weekday(1)(zh-cn 下是周二) + const weekStart = useMemo( + () => viewDate.subtract((viewDate.day() + 6) % 7, 'day').startOf('day'), + [viewDate], + ); const monthStart = useMemo(() => viewDate.startOf('month'), [viewDate]); const weekEnd = useMemo(() => weekStart.add(6, 'day'), [weekStart]); const weekNum = useMemo(() => weekStart.week(), [weekStart]);