fix(admin): 修复排课周视图周区间错位一天(zh-cn 下 weekday(1) 是周二)
All checks were successful
CI / check (pull_request) Successful in 5m16s
Dependency Check / check (pull_request) Successful in 2m48s

This commit is contained in:
2026-08-11 16:36:01 +08:00
parent a0611fda25
commit f858d90b76

View File

@@ -46,7 +46,9 @@ interface ScheduleSyncResult {
const SchedulesPage: React.FC = () => { const SchedulesPage: React.FC = () => {
const { hasPermission } = usePermission(); const { hasPermission } = usePermission();
const [viewMode, setViewMode] = useState<'week' | 'month'>('week'); const [viewMode, setViewMode] = useState<'week' | 'month'>('week');
const [viewDate, setViewDate] = useState<Dayjs>(() => dayjs().weekday(1).startOf('day')); const [viewDate, setViewDate] = useState<Dayjs>(() =>
dayjs().subtract((dayjs().day() + 6) % 7, 'day').startOf('day'),
);
const [selectedDate, setSelectedDate] = useState<Dayjs | null>(null); const [selectedDate, setSelectedDate] = useState<Dayjs | null>(null);
const [classTeachers, setClassTeachers] = useState<ClassTeacherOption[]>([]); const [classTeachers, setClassTeachers] = useState<ClassTeacherOption[]>([]);
const [classTeachersLoading, setClassTeachersLoading] = useState(false); 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 monthStart = useMemo(() => viewDate.startOf('month'), [viewDate]);
const weekEnd = useMemo(() => weekStart.add(6, 'day'), [weekStart]); const weekEnd = useMemo(() => weekStart.add(6, 'day'), [weekStart]);
const weekNum = useMemo(() => weekStart.week(), [weekStart]); const weekNum = useMemo(() => weekStart.week(), [weekStart]);