Merge pull request #4255 from SergioCrisostomo/fix-3773

Correct month last day when changing date panel dates
This commit is contained in:
Aresn 2018-08-27 09:53:34 +08:00 committed by GitHub
commit 147f23a50b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -260,8 +260,8 @@
},
setPanelDates(leftPanelDate){
this.leftPanelDate = leftPanelDate;
const rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, leftPanelDate.getDate());
this.rightPanelDate = this.splitPanels ? new Date(Math.max(this.dates[1], rightPanelDate)) : rightPanelDate;
const rightPanelDate = new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, 1);
this.rightPanelDate = this.splitPanels ? new Date(Math.max(this.dates[1].getTime(), rightPanelDate.getTime())) : rightPanelDate;
},
panelLabelConfig (direction) {
const locale = this.t('i.locale');
@ -312,9 +312,18 @@
} else {
// keep the panels together
const otherPanel = panel === 'left' ? 'right' : 'left';
const otherCurrent = new Date(this[`${otherPanel}PanelDate`]);
otherCurrent[`set${type}`](otherCurrent[`get${type}`]() + increment);
this[`${otherPanel}PanelDate`] = otherCurrent;
const currentDate = this[`${otherPanel}PanelDate`];
const temp = new Date(currentDate);
if (type === 'Month') {
const nextMonthLastDate = new Date(
temp.getFullYear(), temp.getMonth() + increment + 1, 0
).getDate();
temp.setDate(Math.min(nextMonthLastDate, temp.getDate()));
}
temp[`set${type}`](temp[`get${type}`]() + increment);
this[`${otherPanel}PanelDate`] = temp;
}
},
showYearPicker (panel) {