html部分
<el-date-picker
v-model="dateList"
@blur="resetMinDate"
:picker-options="pickerOptions"
size="small"
type="monthrange"
style="width:350px"
@change="onChangeDate"
value-format="yyyy-MM"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
script部分
我这里限制了日期选择器 不能选择当前日期之后的日期(禁止选中未来)并且 在可选择的日期里选择的范围不能大于12个月
<script>
export default {
data() {
return {
//默认 当前日期三月前nowDate.threeDatess() 当前日期nowDate.nowDatesss() 自己获取
dateList: [nowDate.threeDatess(),nowDate.nowDatesss()],
minDate: null,
maxDate: null,
pickerOptions: {
disabledDate: (time) => {
if (this.minDate !== null && this.maxDate === null) {
let minMonth = this.minDate.getMonth(),
lastYear = new Date(this.minDate).setMonth(minMonth - 11),
nextYear = new Date(this.minDate).setMonth(minMonth + 11);
// 只能选 minDate 前后一年的范围
//禁止选择未来 time.getTime() > Date.now()控制
return time.getTime() > Date.now() || time.valueOf() < lastYear.valueOf() || time.valueOf() > nextYear.valueOf();
}
return time.getTime() > Date.now();
},
onPick: ({minDate, maxDate}) => {
this.minDate = minDate;
this.maxDate = maxDate;
}
},
}
},
methods: {
resetMinDate() {
if (this.dateList && this.dateList.length && this.minDate && !this.maxDate) {
//默认时间
this.minDate = new Date(this.dateList[0]);
} else {
this.minDate = null;
}
},
onChangeDate(val){
console.log(val);
},
}
</script>