fix(DatetimePicker): fixed show incorrect date time when dynamic set mindate or maxdate (#8640)

This commit is contained in:
nemo-shen 2021-05-01 15:48:40 +08:00 committed by GitHub
parent f470f0f854
commit 882cc9efd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 64 additions and 4 deletions

View File

@ -30,7 +30,11 @@ export default createComponent({
watch: {
filter: 'updateInnerValue',
minDate: 'updateInnerValue',
minDate() {
this.$nextTick(() => {
this.updateInnerValue();
});
},
maxDate: 'updateInnerValue',
value(val) {

View File

@ -45,7 +45,11 @@ export default createComponent({
watch: {
filter: 'updateInnerValue',
minHour: 'updateInnerValue',
minHour() {
this.$nextTick(() => {
this.updateInnerValue();
});
},
maxHour: 'updateInnerValue',
minMinute: 'updateInnerValue',
maxMinute: 'updateInnerValue',

View File

@ -248,3 +248,29 @@ test('value has an inital value', () => {
wrapper.find('.van-picker__confirm').trigger('click');
expect(wrapper.emitted('confirm')[0][0]).toEqual(defaultValue);
});
test('change min-date and emit correct value', async () => {
const defaultValue = new Date(2020, 10, 2, 10, 30);
const wrapper = mount({
template: `
<van-datetime-picker
v-model="date"
:min-date="minDate"
@confirm="value => this.$emit('confirm', value)"
/>
`,
data() {
return {
date: defaultValue,
minDate: new Date(2010, 0, 1, 10, 30),
}
},
mounted() {
this.minDate = defaultValue;
},
})
await later();
wrapper.find('.van-picker__confirm').trigger('click');
expect(wrapper.emitted('confirm')[0][0]).toEqual(defaultValue);
});

View File

@ -150,3 +150,29 @@ test('set min-minute dynamically', async () => {
wrapper.find('.van-picker__confirm').trigger('click');
expect(wrapper.emitted('confirm')[0][0]).toEqual('13:00');
});
test('change min-hour and emit correct value', async () => {
const wrapper = mount({
template: `
<van-datetime-picker
v-model="time"
type="time"
:min-hour="minHour"
@confirm="value => this.$emit('confirm', value)"
/>
`,
data() {
return {
time: '10:30',
minHour: 1,
}
},
mounted() {
this.minHour = 11;
},
})
await later();
wrapper.find('.van-picker__confirm').trigger('click');
expect(wrapper.emitted('confirm')[0][0]).toEqual('11:30');
});