Commit bc39c5c1d7eb781c7d2120551ccac66fb49cdac7
Committed by
GitHub
Merge pull request #4256 from SergioCrisostomo/fix-4249
Use last selected multiple date in date panel navigation
Showing
2 changed files
with
4 additions
and
3 deletions
Show diff stats
src/components/date-picker/panel/Date/date.vue
| ... | ... | @@ -150,7 +150,8 @@ |
| 150 | 150 | watch: { |
| 151 | 151 | value (newVal) { |
| 152 | 152 | this.dates = newVal; |
| 153 | - this.panelDate = this.startDate || (this.multiple ? this.dates[this.dates.length - 1] : this.dates[0]) || new Date(); | |
| 153 | + const panelDate = this.multiple ? this.dates[this.dates.length - 1] : (this.startDate || this.dates[0]); | |
| 154 | + this.panelDate = panelDate || new Date(); | |
| 154 | 155 | }, |
| 155 | 156 | currentView (currentView) { |
| 156 | 157 | this.$emit('on-selection-mode-change', currentView); |
| ... | ... | @@ -170,7 +171,7 @@ |
| 170 | 171 | const isDifferentYear = date.getFullYear() !== this.panelDate.getFullYear(); |
| 171 | 172 | const isDifferentMonth = isDifferentYear || date.getMonth() !== this.panelDate.getMonth(); |
| 172 | 173 | if (isDifferentYear || isDifferentMonth){ |
| 173 | - this.panelDate = date; | |
| 174 | + if (!this.multiple) this.panelDate = date; | |
| 174 | 175 | } |
| 175 | 176 | } |
| 176 | 177 | }, | ... | ... |
src/components/date-picker/picker.vue
| ... | ... | @@ -646,7 +646,6 @@ |
| 646 | 646 | } |
| 647 | 647 | }, |
| 648 | 648 | onPick(dates, visible = false, type) { |
| 649 | - dates = this.parseDate(dates); | |
| 650 | 649 | if (this.multiple){ |
| 651 | 650 | const pickedTimeStamp = dates.getTime(); |
| 652 | 651 | const indexOfPickedDate = this.internalValue.findIndex(date => date && date.getTime() === pickedTimeStamp); |
| ... | ... | @@ -654,6 +653,7 @@ |
| 654 | 653 | const timeStamps = allDates.map(date => date.getTime()).filter((ts, i, arr) => arr.indexOf(ts) === i && i !== indexOfPickedDate); // filter away duplicates |
| 655 | 654 | this.internalValue = timeStamps.map(ts => new Date(ts)); |
| 656 | 655 | } else { |
| 656 | + dates = this.parseDate(dates); | |
| 657 | 657 | this.internalValue = Array.isArray(dates) ? dates : [dates]; |
| 658 | 658 | } |
| 659 | 659 | ... | ... |