diff --git a/src/components/date-picker/panel/time-range.vue b/src/components/date-picker/panel/time-range.vue index 6fe4af9..09e5b8a 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 1082d9e..d4073a3 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 3495e5b..4973cd7 100644 --- a/test/routers/date.vue +++ b/test/routers/date.vue @@ -5,29 +5,30 @@ </style> <template> <row> - <i-col span="12"> - <date-picker type="date" placeholder="选择日期" style="width: 200px" @on-ok="ok" confirm @on-clear="clear"></date-picker> - </i-col> - <i-col span="12"> - <date-picker :value="value3" type="daterange" placement="bottom-start" placeholder="选择日期" style="width: 200px"></date-picker> - </i-col> - <i-col span="12"> - <time-picker - :value="value" - placeholder="选择时间" - format="HH:mm:ss" - :hide-disabled-options="false" - :disabled-hours="[1,2,10,11]" - @on-change="c" - @on-ok="ok" - @on-clear="clear" - style="width: 168px"></time-picker> - </i-col> + <!--<i-col span="12">--> + <!--<date-picker type="date" placeholder="选择日期" style="width: 200px" @on-ok="ok" confirm @on-clear="clear"></date-picker>--> + <!--</i-col>--> + <!--<i-col span="12">--> + <!--<date-picker :value="value3" type="daterange" placement="bottom-start" placeholder="选择日期" style="width: 200px"></date-picker>--> + <!--</i-col>--> + <!--<i-col span="12">--> + <!--<time-picker--> + <!--:value="value"--> + <!--placeholder="选择时间"--> + <!--format="HH:mm:ss"--> + <!--:hide-disabled-options="false"--> + <!--:disabled-hours="[1,2,10,11]"--> + <!--@on-change="c"--> + <!--@on-ok="ok"--> + <!--@on-clear="clear"--> + <!--style="width: 168px"></time-picker>--> + <!--</i-col>--> <i-col span="12"> <time-picker :value="value2" type="timerange" placeholder="选择时间" + format="HH:mm:ss" :hide-disabled-options="false" @on-change="c" @on-ok="ok" @@ -49,8 +50,8 @@ }, methods: { c (s) { - console.log(1,s); - this.value2 = s; +// console.log(1,s); +// this.value2 = s; }, ok () { console.log('ok'); -- libgit2 0.21.4