Skip to content

Commit 97289d1

Browse files
committed
fix: unable set value later when range is ture (#209)
1 parent 60798f7 commit 97289d1

File tree

2 files changed

+36
-13
lines changed

2 files changed

+36
-13
lines changed

src/calendar.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,16 @@ export default {
258258
return date.getTime()
259259
},
260260
inBefore (time, startAt) {
261-
startAt = startAt || this.startAt
261+
if (startAt === undefined) {
262+
startAt = this.startAt
263+
}
262264
return (this.notBeforeTime && time < this.notBeforeTime) ||
263265
(startAt && time < this.getCriticalTime(startAt))
264266
},
265267
inAfter (time, endAt) {
266-
endAt = endAt || this.endAt
268+
if (endAt === undefined) {
269+
endAt = this.endAt
270+
}
267271
return (this.notAfterTime && time > this.notAfterTime) ||
268272
(endAt && time > this.getCriticalTime(endAt))
269273
},

test/index.spec.js

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -247,21 +247,40 @@ describe('datepicker', () => {
247247
input.trigger('input')
248248
input.trigger('change')
249249
const expectDate = new Date(2018, 8, 10)
250-
wrapper.setProps({
251-
range: true
250+
Vue.nextTick(() => {
251+
const emitted = wrapper.emitted()
252+
expect(emitted.input).toEqual([[expectDate]])
253+
done()
254+
})
255+
})
256+
257+
it('type range input should be right', (done) => {
258+
wrapper = mount(DatePicker, {
259+
propsData: {
260+
format: 'YYYY-MM-DD',
261+
range: true
262+
},
263+
sync: false
252264
})
265+
const input = wrapper.find('input')
266+
input.setValue('2018-09-10 ~ 2018-09-11')
267+
input.trigger('change')
268+
const expectRange = [new Date(2018, 8, 10), new Date(2018, 8, 11)]
253269
Vue.nextTick(() => {
254-
input.setValue('2018-09-10 ~ 2018-09-11')
270+
input.setValue('2018-09-09 ~ 2018-09-12')
255271
input.trigger('input')
256272
input.trigger('change')
257-
const expectRange = [new Date(2018, 8, 10), new Date(2018, 8, 11)]
258-
input.setValue('2018-09-10 ~ 2018-08-10')
259-
input.trigger('input')
260-
input.trigger('change')
261-
const emitted = wrapper.emitted()
262-
expect(emitted.input).toEqual([[expectDate], [expectRange]])
263-
expect(emitted['input-error']).toEqual([['2018-09-10 ~ 2018-08-10']])
264-
done()
273+
const expectRange2 = [new Date(2018, 8, 9), new Date(2018, 8, 12)]
274+
Vue.nextTick(() => {
275+
input.setValue('2018-09-10 ~ 2018-08-10')
276+
input.trigger('input')
277+
input.trigger('change')
278+
const expectError = '2018-09-10 ~ 2018-08-10'
279+
const emitted = wrapper.emitted()
280+
expect(emitted.input).toEqual([[expectRange], [expectRange2]])
281+
expect(emitted['input-error']).toEqual([[expectError]])
282+
done()
283+
})
265284
})
266285
})
267286

0 commit comments

Comments
 (0)