html
<el-date-picker
v-model="form[val.key]"
:type="val.datePickerType || 'daterange'"
:clearable="val.clearable && true"
range-separator="~"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 100%"
:disabled-date="disabledDate"
@calendar-Change="calendarChange"
/>
js
const calendarChange = (obj: any) => {
const minDate = obj[0];
const maxDate = obj[1];
// 把选择的第一个日期赋值给一个变量。
choiceDate.value = minDate.getTime();
// 如何你选择了两个日期了,就把那个变量置空
if (maxDate) choiceDate.value = null;
};
// 选择今天及今天之前的日期
// const disabledDate = (time) => time.getTime() > Date.now() - 8.64e6;
const disabledDate = (time: any) => {
// 如何选择了一个日期
if (choiceDate.value) {
// 半年的时间戳
// 7 * 4: 一个月
const one = 7 * 4 * 6 * 24 * 3600 * 1000;
// 当前日期 - one = 7天之前 time.getTime() < minTime
const minTime = choiceDate.value - one;
// 当前日期 + one = 7天之后 // time.getTime() > maxTime
// const maxTime = choiceDate.value + one;
return time.getTime() < minTime || time.getTime() > Date.now() - 8.64e6;
} else {
return time.getTime() > Date.now() - 8.64e6;
}
};