diff --git a/src/datetime-picker/shared.js b/src/datetime-picker/shared.js index 4ba3b887f..a247c11bb 100644 --- a/src/datetime-picker/shared.js +++ b/src/datetime-picker/shared.js @@ -60,6 +60,10 @@ export const TimePickerMixin = { mounted() { this.updateColumnValue(); + + this.$nextTick(() => { + this.updateInnerValue(); + }); }, methods: { diff --git a/src/datetime-picker/test/date-picker.spec.js b/src/datetime-picker/test/date-picker.spec.js index fca326e97..633508e9e 100644 --- a/src/datetime-picker/test/date-picker.spec.js +++ b/src/datetime-picker/test/date-picker.spec.js @@ -110,3 +110,28 @@ test('dynamic set value', () => { expect(wrapper.emitted('confirm')[0][0].getFullYear()).toEqual(2019); expect(wrapper.emitted('confirm')[1][0].getFullYear()).toEqual(2025); }); + +test('use min-date with filter', async () => { + const minDate = new Date(2030, 0, 0, 0, 3); + const maxDate = new Date(2040, 0, 0, 0, 0); + + const wrapper = mount(DatePicker, { + propsData: { + minDate, + maxDate, + value: new Date(2020, 0, 0, 0, 0), + filter(type, values) { + if (type === 'minute') { + return values.filter(value => value % 30 === 0); + } + + return values; + } + } + }); + + await later(); + + wrapper.find('.van-picker__confirm').trigger('click'); + expect(wrapper.emitted('confirm')[0][0]).toEqual(new Date(2030, 0, 0, 0, 30)); +});