Element UI 日期选择器限制选择区间不超过一年
<el-date-picker
v-model="selectMonths"
@blur="resetDisableDate"
type="monthrange"
:picker-options="pickerOptions0"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
value-format="yyyy-MM-dd">
</el-date-picker>
data(){
pickerMaxDate: '', // 选中的最大日期
pickerMinDate: '', // 选中的最小日期
pickerOptions0: {
onPick:({ maxDate,minDate})=> {
if(minDate){
this.pickerMinDate=minDate.getTime()
} else {
this.pickerMinDate = ''
}
if(maxDate){
this.pickerMaxDate =maxDate.getTime()
}else {
this.pickerMaxDate = ''
}
},
disabledDate:(time)=>{
const year1 = 336 * 24 * 3600 * 1000
if (this.pickerMinDate !=='' && !this.pickerMaxDate) {
let maxTime =this.pickerMinDate+year1
if (maxTime > new Date()) {
maxTime =new Date()
}
return time.getTime()> maxTime || time.getTime()> Date.now()
}
if(this.pickerMaxDate!== '' && this.pickerMinDate !== '') {
let minTime =this.pickerMaxDate-year1
let maxTime = this.pickerMinDate+year1
if(maxTime> new Date()){
maxTime = new Date()
}
return time.getTime()< minTime || time.getTime()> maxTime
}
return time.getTime()> Date.now()
}
},
},
methods:{
// 每次失焦重置disableDate
resetDisableDate(){
if(this.exportTime){
this.pickerMaxDate = this.selectMonths[1]?this.exportTime[1]:''
this.pickerMinDate = this.selectMonths[0]?this.exportTime[0]:''
}else{
this.pickerMinDate = ''
this.pickerMaxDate = ''
}
},
}