element-ui的el-date-picker组件有不一样的type值可以实现不一样的时间选择功能。可以经过pickoption限制选择的范围,可是某些时候咱们须要对开始时间和结束时间进行相应的限制,element-ui
例如:函数
某个需求默认起始时间为昨日, 选择时间跨度不可超过366天,在这种状况下有两种解决办法,ui
1.写两个datepicke组件,把起始时间和结束时间的pickeroptions进行相应的限制,可是这样写的话就须要写较为繁琐的逻辑。this
2.写一个datepicker组件,将type设置为daterange,这时就只用写一个pickeroptions进行时间的限制(实现方法以下)。spa
<el-date-picker v-model="ruleForm.date" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" format="yyyy-MM-dd" :picker-options="pickerOptions1"> </el-date-picker> //组件 //限制 pickerOptions1:{ onPick: (obj) => { this.pickerMinDate = new Date(obj.minDate).getTime(); console.log(obj) }, disabledDate:(time)=> { if (this.pickerMinDate) { const day1 = 366 * 24 * 3600 * 1000 let maxTime = this.pickerMinDate + day1 let minTime = this.pickerMinDate - day1 return time.getTime() > maxTime || time.getTime()<minTime || time.getTime() > Date.now()-1 * 24 * 3600 * 1000 }else{ return time.getTime() > Date.now()-1 * 24 * 3600 * 1000 } } },
第二种方法中含有一个onpick的函数可以将第一次点击后获取的时间拿到,这时,若是需求中有开始时间和结束时间的联动的话,咱们就可以经过这个函数进行设置。code