From 0dd7b94a4dc5e1e080324aacd43541ed0d371968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=81=8F?= Date: Wed, 28 Dec 2016 17:30:34 +0800 Subject: [PATCH] update TimePicker update TimePicker --- .../date-picker/panel/time-range.vue | 5 +-- src/components/date-picker/picker.vue | 15 ++++--- test/routers/date.vue | 41 ++++++++++--------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/components/date-picker/panel/time-range.vue b/src/components/date-picker/panel/time-range.vue index 6fe4af95..09e5b8a6 100644 --- a/src/components/date-picker/panel/time-range.vue +++ b/src/components/date-picker/panel/time-range.vue @@ -85,9 +85,8 @@ }, watch: { value (newVal) { - if (!newVal) { - return; - } else if (Array.isArray(newVal)) { + if (!newVal) return; + if (Array.isArray(newVal)) { const valStart = newVal[0] ? toDate(newVal[0]) : false; const valEnd = newVal[1] ? toDate(newVal[1]) : false; diff --git a/src/components/date-picker/picker.vue b/src/components/date-picker/picker.vue index 1082d9ec..d4073a3d 100644 --- a/src/components/date-picker/picker.vue +++ b/src/components/date-picker/picker.vue @@ -444,15 +444,18 @@ immediate: true, handler (val) { const type = this.type; - if ((type === 'time' || type === 'timerange') && !(val instanceof Date)) { - const parser = ( - TYPE_VALUE_RESOLVER_MAP[type] || - TYPE_VALUE_RESOLVER_MAP['default'] - ).parser; - if (type === 'timerange') val = val.join(RANGE_SEPARATOR); + const parser = ( + TYPE_VALUE_RESOLVER_MAP[type] || + TYPE_VALUE_RESOLVER_MAP['default'] + ).parser; + if (type === 'time' && !(val instanceof Date)) { + val = parser(val, this.format || DEFAULT_FORMATS[type]); + } else if (type === 'timerange' && Array.isArray(val) && val.length === 2 && !(val[0] instanceof Date) && !(val[1] instanceof Date)) { + val = val.join(RANGE_SEPARATOR); val = parser(val, this.format || DEFAULT_FORMATS[type]); } + this.internalValue = val; } }, diff --git a/test/routers/date.vue b/test/routers/date.vue index 3495e5b2..4973cd74 100644 --- a/test/routers/date.vue +++ b/test/routers/date.vue @@ -5,29 +5,30 @@