问题描述
需要实现开始时间与结束时间联动效果,如下图所示:
1.当开始时间与结束时间都未选择时两个时间选择器可选范围都以今日为限
2.选中开始时间后结束时间范围比开始时间晚(小于开始时间置灰)
3.选中结束时间后开始时间范围比结束时间早(大于结束时间置灰)
实现
html部分
<el-form ref="form" :model="form" inline>
<el-form-item label="开始时间:">
<el-date-picker v-model="form.startTime" type="date" placeholder="选择日期" :pickerOptions="startPickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间:">
<el-date-picker v-model="form.endTime" type="date" placeholder="选择日期" :pickerOptions="endPickerOptions">
</el-date-picker>
</el-form-item>
</el-form>
js部分:
export default {
data() {
return {
form: {
startTime: '',
endTime: '',
},
};
},
computed: {
startPickerOptions() {
const that = this;
return {
disabledDate(time) {
if (that.form.endTime) {
return (
time.getTime() > Date.now() || time.getTime() > new Date(that.form.endTime).getTime()
);
}
return time.getTime() > Date.now();//实现1效果
},
};
},
endPickerOptions() {
const that = this;
return {
disabledDate(time) {
if (that.form.startTime) {
return (
time.getTime() > Date.now()
|| time.getTime() < new Date(that.form.startTime).getTime() - 8.64e7
);
}
return time.getTime() > Date.now();//实现1效果
},
};
},
},
};