From 4c9eb995d4906afd97e2540afda9a03cd8c17260 Mon Sep 17 00:00:00 2001 From: tango5614 <35095715+tango5614@users.noreply.github.com> Date: Thu, 14 Nov 2019 19:09:19 +0800 Subject: [PATCH] fix(DateTimePicker): fix action when max-hour or max-minute is set smaller then current time(#5005) (#5006) --- src/datetime-picker/TimePicker.js | 6 +++--- src/datetime-picker/test/time-picker.spec.js | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/datetime-picker/TimePicker.js b/src/datetime-picker/TimePicker.js index 46291a7c4..8ebf5d202 100644 --- a/src/datetime-picker/TimePicker.js +++ b/src/datetime-picker/TimePicker.js @@ -74,9 +74,9 @@ export default createComponent({ }, updateInnerValue() { - const indexes = this.$refs.picker.getIndexes(); - const hour = this.originColumns[0].values[indexes[0]]; - const minute = this.originColumns[1].values[indexes[1]]; + const [hourIndex, minuteIndex] = this.$refs.picker.getIndexes(); + const hour = this.originColumns[0].values[hourIndex] || this.originColumns[0].values[0]; + const minute = this.originColumns[1].values[minuteIndex] || this.originColumns[1].values[0]; const value = `${hour}:${minute}`; this.innerValue = this.formatValue(value); diff --git a/src/datetime-picker/test/time-picker.spec.js b/src/datetime-picker/test/time-picker.spec.js index 596f8099e..d0fbaa619 100644 --- a/src/datetime-picker/test/time-picker.spec.js +++ b/src/datetime-picker/test/time-picker.spec.js @@ -107,3 +107,19 @@ test('change min-minute and emit correct value', async () => { wrapper.find('.van-picker__confirm').trigger('click'); expect(wrapper.emitted('confirm')[0][0]).toEqual('12:30'); }); + +test('set max-hour & max-minute smaller than current then emit correct value', async () => { + const wrapper = mount(TimePicker, { + propsData: { + value: '23:59', + } + }); + await later(); + wrapper.setProps({ + maxHour: 2, + maxMinute: 2, + }); + + wrapper.find('.van-picker__confirm').trigger('click'); + expect(wrapper.emitted('confirm')[0][0]).toEqual('00:00'); +});