Commit 5092777d174656722ec3a7c057902868dfc3fc2e

Authored by Sergio Crisostomo
1 parent 73a34dfa

Fix sort of date arrays

Showing 1 changed file with 7 additions and 3 deletions   Show diff stats
src/components/date-picker/panel/Date/date-range.vue
@@ -127,6 +127,10 @@ @@ -127,6 +127,10 @@
127 const prefixCls = 'ivu-picker-panel'; 127 const prefixCls = 'ivu-picker-panel';
128 const datePrefixCls = 'ivu-date-picker'; 128 const datePrefixCls = 'ivu-date-picker';
129 129
  130 + const dateSorter = (a, b) => {
  131 + if (!a || !b) return 0;
  132 + return a.getTime() - b.getTime();
  133 + };
130 134
131 export default { 135 export default {
132 name: 'RangeDatePickerPanel', 136 name: 'RangeDatePickerPanel',
@@ -185,14 +189,14 @@ @@ -185,14 +189,14 @@
185 return { 189 return {
186 left: this.leftPickerTable === tableType ? this.handleRangePick : this.handlePreSelection.bind(this, 'left'), 190 left: this.leftPickerTable === tableType ? this.handleRangePick : this.handlePreSelection.bind(this, 'left'),
187 right: this.leftPickerTable === tableType ? this.handleRangePick : this.handlePreSelection.bind(this, 'right'), 191 right: this.leftPickerTable === tableType ? this.handleRangePick : this.handlePreSelection.bind(this, 'right'),
188 - } 192 + };
189 } 193 }
190 }, 194 },
191 watch: { 195 watch: {
192 value(newVal) { 196 value(newVal) {
193 const minDate = newVal[0] ? toDate(newVal[0]) : null; 197 const minDate = newVal[0] ? toDate(newVal[0]) : null;
194 const maxDate = newVal[1] ? toDate(newVal[1]) : null; 198 const maxDate = newVal[1] ? toDate(newVal[1]) : null;
195 - this.dates = [minDate, maxDate].sort(); 199 + this.dates = [minDate, maxDate].sort(dateSorter);
196 200
197 this.rangeState = { 201 this.rangeState = {
198 from: this.dates[0], 202 from: this.dates[0],
@@ -308,7 +312,7 @@ @@ -308,7 +312,7 @@
308 }, 312 },
309 handleRangePick (val) { 313 handleRangePick (val) {
310 if (this.rangeState.selecting || this.currentView === 'time'){ 314 if (this.rangeState.selecting || this.currentView === 'time'){
311 - const [minDate, maxDate] = [this.rangeState.from, val].sort((a, b) => a - b); 315 + const [minDate, maxDate] = [this.rangeState.from, val].sort(dateSorter);
312 this.dates = [minDate, maxDate]; 316 this.dates = [minDate, maxDate];
313 if (this.currentView === 'time'){ 317 if (this.currentView === 'time'){
314 this.dates = val; 318 this.dates = val;