ant组件DatePicker 日期选择框动态设置日期可选择范围不超过31天
<a-range-picker
v-model:value="searchData.date"
:format="'YYYY-MM-DD'"
:placeholder="['开始日期', '结束日期']"
:allow-clear="false"
:disabled-date="disabledDate"
@calendarChange="calendarChange"
@blur="blurDate"
/>
const startDate = ref<any>();
const calendarChange = (dates) => {
startDate.value = dates;
};
const disabledDate = (current: Moment) => {
if (startDate.value && startDate.value[0]) {
return (
current < moment(startDate.value[0]).subtract(31, "days") ||
current > moment(startDate.value[0]).add(31, "days")
);
} else {
return false;
}
};
const blurDate = () => {
startDate.value = undefined;
};
首先calendarChange 函数获取到时间选择框的点击时间的变化并回调数据存入startDate中,然后disabledDate 函数根据moment(startDate.value[0])获取到选择的开始时间,并根据该时间向前后各扩大31天,超出31天的时间禁用。最后使用blurDate函数在失去焦点的时候重置startDate数据,使下次再选择时间的时候对开始时间不限制选择范围
浙公网安备 33010602011771号