import { getMonthDays } from "@/data/mockData"; const MonthView = ({ currentDate, events, onDateClick, onEventClick, selectedDate, }) => { const year = currentDate.getFullYear(); const month = currentDate.getMonth(); const days = getMonthDays(year, month); const weekDays = ["日", "一", "二", "三", "四", "五", "六"]; // 获取指定日期的事件 const getEventsForDate = (date, month, year) => { if (!events || events.length === 0) return []; const dateString = `${year}-${(month + 1) .toString() .padStart(2, "0")}-${date.toString().padStart(2, "0")}`; return events.filter((event) => { const eventDate = event.startTime.split(" ")[0]; return eventDate === dateString; }); }; const handleDateClick = (day) => { if (onDateClick) { const clickedDate = new Date(day.year, day.month, day.date); onDateClick(clickedDate); } }; const isSelected = (day) => { if (!selectedDate) return false; return ( selectedDate.getFullYear() === day.year && selectedDate.getMonth() === day.month && selectedDate.getDate() === day.date ); }; const renderEventItem = (event, index, dayEvents) => { const maxVisible = 3; // 每个日期最多显示3个事件 if ( index >= maxVisible - 1 && index === maxVisible - 1 && dayEvents.length > maxVisible ) { // 显示"更多"指示器 const remainingCount = dayEvents.length - maxVisible + 1; return (