diff --git a/__test__/date-picker.test.js b/__test__/date-picker.test.js index 6d2ccba..0f209f6 100644 --- a/__test__/date-picker.test.js +++ b/__test__/date-picker.test.js @@ -382,6 +382,9 @@ describe('DatePicker', () => { input.trigger('change'); input.setValue(`${text}${rangeSeparator.trim()}${text}`); input.trigger('change'); - expect(wrapper.emitted().input).toEqual([[[text, text]], [[text, text]]]); + wrapper.setProps({ rangeSeparator: ' - ' }); + input.setValue(`${text} - ${text}`); + input.trigger('change'); + expect(wrapper.emitted().input).toEqual([[[text, text]], [[text, text]], [[text, text]]]); }); }); diff --git a/src/date-picker.vue b/src/date-picker.vue index 694c5f6..1d138d6 100644 --- a/src/date-picker.vue +++ b/src/date-picker.vue @@ -425,9 +425,16 @@ export default { this.handleClear(); return; } - const date = this.range - ? text.split(this.rangeSeparator.trim()).map(v => this.parseDate(v.trim(), this.format)) - : this.parseDate(text, this.format); + let date; + if (this.range) { + let arr = text.split(this.rangeSeparator); + if (arr.length !== 2) { + arr = text.split(this.rangeSeparator.trim()); + } + date = arr.map(v => this.parseDate(v.trim(), this.format)); + } else { + date = this.parseDate(text, this.format); + } if (this.isValidValue(date)) { this.emitValue(date); this.blur();