结束时间选了20:00 ,开始时间不能选择20:00以后的,同理,开始时间选择了20:00,则结束时间不能选择20:00以前的数据。
我们现在的需要是需要取消这个限制,不管选择几点,两边都能选
请问各位大佬们如何取消这个限制。
结束时间选了20:00 ,开始时间不能选择20:00以后的,同理,开始时间选择了20:00,则结束时间不能选择20:00以前的数据。
我们现在的需要是需要取消这个限制,不管选择几点,两边都能选
请问各位大佬们如何取消这个限制。
首先找到源码文件 date-picker/src/picker/time-picker.js
,在 props
中加个 acrossTime
。
然后看 date-picker/src/picker.vue
文件的 showPicker
方法,
在 this.pickerVisible = this.picker.visible = true
后面加上 this.picker.acrossTime = this.acrossTime
。
再看 date-picker/src/panel/time-range.vue
文件,在 data
里加上 acrossTime
默认 false
。btnDisabled
方法中判断 acrossTime
为 true
时直接返回 false
,acrossTime
为false
时走原来的逻辑。
handleConfirm
方法中 acrossTime
为 false
时再走 this.minDate = limitTimeRange(this.minDate, minSelectableRange, this.format)
和 this.maxDate = limitTimeRange(this.maxDate, maxSelectableRange, this.format)
isValidValue
方法中 acrossTime
为 true
时不去判断 timeWithinRange(this.minDate, this.$refs.minSpinner.selectableRange) &&timeWithinRange(this.maxDate,this.$refs.maxSpinner.selectableRange)
接下来看 date-picker/src/panel/time-range.vue
中的 getRangeHours
和 getRangeMinutes
。传参加上this.acrossTime
。
getRangeHours
方法中 acrossTime
为 true
,disabledHours = []
。getRangeMinutes
中:
最后使用时
<el-time-picker
is-range
acrossTime
v-model="valueTimePicker"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
13 回答12.8k 阅读
8 回答2.5k 阅读
2 回答5k 阅读✓ 已解决
7 回答1.9k 阅读
3 回答2.2k 阅读✓ 已解决
5 回答821 阅读
3 回答1.1k 阅读✓ 已解决
你的需求和它这个组件的开始 结束逻辑不符合。