有时候想要下面这种效果,同时也想实现开始日期前的范围内结束日期禁选(即日期禁选以避免结束时间早于开始时间的逻辑冲突)但是不知道怎么操作?下面就来瞧一瞧看一看。
<div class="form_date_class">
<el-date-picker
v-model="queryPamars.beginDate" type="date"
placeholder="选择日期" style="width: 130px"
format="yyyy-MM-dd" value-format="yyyy-MM-dd"
:picker-options="beginDatePickerOptions"
/>
<div>-</div>
<el-date-picker
v-model="queryPamars.endDate"
type="date" placeholder="选择日期"
style="width: 130px" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:picker-options="endDatePickerOptions"
/>
</div>
data() {
return {
queryPamars: {
beginDate: undefined,
endDate: undefined,
},
rules: {
beginDate: [
{required: true, message: '请输选择开始时间', trigger: 'blur'},
],
endDate: [
{required: true, message: '请输选择结束时间', trigger: 'blur'},
],
},
beginDatePickerOptions: {
disabledDate: time => {
const endDateVal = this.queryPamars.endDate;
if (endDateVal) {
return time.getTime() > new Date(endDateVal).getTime();
}
}
},
endDatePickerOptions: {
disabledDate: time => {
const beginDateVal = this.queryPamars.beginDate;
if (beginDateVal) {
return time.getTime() < new Date(beginDateVal).getTime();
}
}
},
}
}
那么,两个date-picker联动成功了,可以看到,日期禁选已经成功!!!