From 34867ff9a95eee6883098b7e78563df330e7c095 Mon Sep 17 00:00:00 2001 From: Sergio Crisostomo Date: Fri, 2 Feb 2018 11:21:12 +0100 Subject: [PATCH] normalise empty initial values --- src/components/date-picker/picker.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/date-picker/picker.vue b/src/components/date-picker/picker.vue index 14c5673..b69f86e 100644 --- a/src/components/date-picker/picker.vue +++ b/src/components/date-picker/picker.vue @@ -74,6 +74,8 @@ const prefixCls = 'ivu-date-picker'; + const isEmptyArray = val => val.reduce((isEmpty, str) => isEmpty && !str || (typeof str === 'string' && str.trim() === ''), true); + export default { name: 'CalendarPicker', mixins: [ Emitter ], @@ -155,6 +157,10 @@ type: [Date, String, Array], validator(val){ if (Array.isArray(val)){ + // check if its empty values + if (isEmptyArray(val)) return true; + + // check if its valid value const [start, end] = val.map(v => new Date(v)); return !isNaN(start.getTime()) && !isNaN(end.getTime()); } else { @@ -170,11 +176,15 @@ } }, data(){ + + const isRange = this.type.includes('range'); + const emptyArray = isRange ? [null, null] : [null]; + const initialValue = isEmptyArray(this.value || []) ? emptyArray : this.parseDate(this.value); return { prefixCls: prefixCls, showClose: false, visible: false, - internalValue: this.parseDate(this.value), + internalValue: initialValue, disableClickOutSide: false, // fixed when click a date,trigger clickoutside to close picker disableCloseUnderTransfer: false, // transfer 模式下,点击Drop也会触发关闭, selectionMode: this.onSelectionModeChange(this.type), -- libgit2 0.21.4