Commit 72f225e9387d289ca323b9d834a5f2bde86ca93f
1 parent
22ff9a62
Fix date manual input so it falls back to old value when parser don't parse the input
Showing
1 changed file
with
3 additions
and
3 deletions
Show diff stats
src/components/date-picker/picker.vue
| ... | ... | @@ -255,8 +255,9 @@ |
| 255 | 255 | this.options.disabledDate; |
| 256 | 256 | const valueToTest = isArrayValue ? newDate : newDate[0]; |
| 257 | 257 | const isDisabled = disabledDateFn && disabledDateFn(valueToTest); |
| 258 | + const isValidDate = newDate.reduce((valid, date) => valid && date instanceof Date, true); | |
| 258 | 259 | |
| 259 | - if (newValue !== oldValue && !isDisabled) { | |
| 260 | + if (newValue !== oldValue && !isDisabled && isValidDate) { | |
| 260 | 261 | this.emitChange(); |
| 261 | 262 | this.internalValue = newDate; |
| 262 | 263 | } else { |
| ... | ... | @@ -324,7 +325,7 @@ |
| 324 | 325 | } |
| 325 | 326 | } |
| 326 | 327 | } else if (typeof val === 'string' && type.indexOf('time') !== 0){ |
| 327 | - val = parser(val, format) || val; | |
| 328 | + val = parser(val, format) || null; | |
| 328 | 329 | } |
| 329 | 330 | |
| 330 | 331 | return (isRange || this.multiple) ? (val || []) : [val]; |
| ... | ... | @@ -344,7 +345,6 @@ |
| 344 | 345 | } |
| 345 | 346 | }, |
| 346 | 347 | onPick(dates, visible = false) { |
| 347 | - | |
| 348 | 348 | if (this.multiple){ |
| 349 | 349 | const allDates = [...this.internalValue, dates].filter(Boolean); |
| 350 | 350 | const timeStamps = allDates.map(date => date.getTime()).filter((ts, i, arr) => arr.indexOf(ts) === i); // filter away duplicates | ... | ... |