需求:限制只能选择点击的日期前后6个月的数据。
比如,我点击了2021年6月1号,只有2020年12月1号到2021年6月1号的区间,以及2021年6月1号到2022年1月1号的日期可以选择
第一步:给el-date-picker加上一个属性picker-options
,如下
<el-date-picker :editable="false" :clearable="false" size="small" type="daterange" :picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right" value-format="yyyyMMdd" >
</el-date-picker>
第二步:在pick-options中加上onPick回调函数,disabledDate属性,如下
data() {
return {
startDate: '',
endDate: ''
}
},
pickerOptions: {
onPick: (obj) => {
this.startDate = new Date(obj.minDate).getTime(); //获取你第一次点击的日期
this.endDate = new Date(obj.maxDate).getTime();//获取你第二次点击的日期
},
disabledDate: (time) => {
if (this.startDate && !this.endDate) {
const timeZone = 182 * 24 * 3600 * 1000; //6个月
let maxTime = this.startDate + timeZone;
let minTime = this.startDate - timeZone;
let limitDate =
time.getTime() > maxTime ||
time.getTime() < minTime
return limitDate;
} else {
return ''
}
}
}