<uv-calendar ref="calendar" mode="single" @confirm="confirm"
confirmDisabledText="请选择预约日期"></uv-calendar>
定义内容
onReady(() => {
calendar.value.setFormatter(formatter);
})
const holidays = ref(['2025-05-01', '2025-05-02', '2025-05-03', '2025-05-04', '2025-05-05', '2025-05-31', '2025-06-01', '2025-06-02'])
const formatter = (day) => {
const today = new Date();
const currentYear = today.getFullYear();
const currentMonth = String(today.getMonth() + 1).padStart(2, '0'); // 注意:getMonth() 返回值是0-11,所以需要加1
const currentDate = String(today.getDate()).padStart(2, '0');
const todayStr = `${currentYear}-${currentMonth}-${currentDate}`;
console.log(todayStr)
const y = day.date.getFullYear();
const m = String(day.date.getMonth() + 1).padStart(2, '0');
const da = String(day.date.getDate()).padStart(2, '0');
const currentDayStr = `${y}-${String(m)}-${String(da)}`;
// 检查是否为周末
const dayOfWeek = day.date.getDay(); // 直接使用 day.date 获取星期几即可,不需要再转换一次
const isWeekend = (dayOfWeek === 6 || dayOfWeek === 0);
// 检查是否为法定节假日
const isHoliday = holidays.value.includes(currentDayStr);
// 检查是否早于今天
const isBeforeToday = new Date(currentDayStr) < new Date(todayStr);
if (isWeekend || isHoliday || isBeforeToday) {
day.bottomInfo = '不可约';
day.disabled = true;
} else {
day.bottomInfo = '上午可约';
day.disabled = false;
}
return day;
};
图片实例