问题描述:
最近要搞一下Element的 的时间范围控件,要限制选择当前时间之后的日期, 还要限制选定一个日期后,只能在这个日期前后 7天的范围内选取另一个时间
话不多说先上代码
//限制选择当前时间之后的日期
timeRangeOptions: {
disabledDate: (time) => {
// 当日之后的日期禁用(不包括当日)
if (time.getTime() > Date.now()) {
return true
}
}
},
//限制选择当前时间之后的日期且限制选定一个日期后,只能在这个日期前后 7天的范围内选取另一个时间
timeRangeOptions: {
// 点击时,选择的是开始时间,也就是minDate
onPick: ({ maxDate, minDate }) => {
this.selectData = minDate.getTime()
if (maxDate) {
// 解除限制
this.selectData = ''
}
},
disabledDate: (time) => {
// 当日之后的日期禁用(不包括当日)
if (time.getTime() > Date.now()) {
return true
}
// 是否限制的判断条件
if (this.selectData) {
// 点击第一个日期前后各7天可选,其他全部禁用
return this.selectData > (time.getTime() + 3600 * 1000 * 24 * 7) ||
this.selectData < (time.getTime() - 3600 * 1000 * 24 * 7)
} else {
return false
}
}
}
其实文档中是有介绍 onPick 这个方法的 但是只在**DatePicker 日期选择器的Picker Options,在DateTimePicker **日期时间选择器的Picker Options并没有写。所以很容易被忽略,传送门奉上
自己去验证一下吧