From f2df2412c8daa84b746f4c43f754377032d993ab Mon Sep 17 00:00:00 2001 From: treadpit Date: Tue, 8 Dec 2020 20:01:09 +0800 Subject: [PATCH] fix: #398 --- src/component/v2/core.js | 10 +++++----- src/component/v2/plugins/week.js | 9 +++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/component/v2/core.js b/src/component/v2/core.js index dd40ae0..d71c4e4 100644 --- a/src/component/v2/core.js +++ b/src/component/v2/core.js @@ -20,7 +20,7 @@ function calculateEmptyGrids(year, month, config) { * @param {number} month 月份 */ function calculatePrevMonthGrids(year, month, config) { - let empytGrids = [] + let emptyGrids = [] const prevMonthDays = dateUtil.getDatesCountOfMonth(year, month - 1) let firstDayOfWeek = dateUtil.firstDayOfWeek(year, month) if (config.firstDayOfWeek === 'Mon') { @@ -36,19 +36,19 @@ function calculatePrevMonthGrids(year, month, config) { const YMInfo = dateUtil.getPrevMonthInfo({ year, month }) for (let i = prevMonthDays; i > len; i--) { if (onlyShowCurrentMonth) { - empytGrids.push('') + emptyGrids.push('') } else { const week = dateUtil.getDayOfWeek(+year, +month, i) - empytGrids.push({ + emptyGrids.push({ ...YMInfo, date: i, week }) } } - empytGrids.reverse() + emptyGrids.reverse() } - return empytGrids + return emptyGrids } /** * 计算下一月日期是否需要多展示的日期 diff --git a/src/component/v2/plugins/week.js b/src/component/v2/plugins/week.js index a42d7fc..3e15b34 100644 --- a/src/component/v2/plugins/week.js +++ b/src/component/v2/plugins/week.js @@ -42,7 +42,10 @@ function lastWeekInMonth(target = {}, calendarDates = [], calendarConfig = {}) { const firstDayOfWeekIsMon = firstDayOfWeek === 'Mon' const { year, month } = target const lastDay = dateUtil.getDatesCountOfMonth(year, month) - const lastDayWeek = dateUtil.getDayOfWeek(year, month, lastDay) + let lastDayWeek = dateUtil.getDayOfWeek(year, month, lastDay) + if (firstDayOfWeekIsMon && lastDayWeek === 0) { + lastDayWeek = 7 + } const [start, end] = [lastDay - lastDayWeek, lastDay] return calendarDates.slice(firstDayOfWeekIsMon ? start : start - 1, end) } @@ -244,9 +247,11 @@ export default () => { return { name: 'week', beforeRender(calendarData = {}, calendarConfig = {}, component) { - if (calendarConfig.weekMode && !calendarData.initializedWeekMode) { + const { initializedWeekMode, selectedDates } = calendarData + if (calendarConfig.weekMode && !initializedWeekMode) { const { defaultDate } = calendarConfig const target = + (selectedDates && selectedDates[0]) || (defaultDate && dateUtil.transformDateRow2Dict(defaultDate)) || dateUtil.todayFMD() const waitRenderData = this.methods(