From c0d48b25c11af87629e7feedc6cd0cc3a70b37e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=A6=82=E6=91=B8=E9=B1=BC=E5=8E=BB?= <1780903673@qq.com> Date: Fri, 17 Jan 2025 23:58:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=20Cale?= =?UTF-8?q?ndar=20=E4=B8=BA=E5=91=A8=E9=80=89=E6=8B=A9=E6=97=B6=E8=B7=A8?= =?UTF-8?q?=E5=B9=B4=E5=91=A8=E7=9A=84=E5=8D=95=E5=85=83=E6=A0=BC=E5=80=BC?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20(#854)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/wd-calendar/wd-calendar.vue | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/uni_modules/wot-design-uni/components/wd-calendar/wd-calendar.vue b/src/uni_modules/wot-design-uni/components/wd-calendar/wd-calendar.vue index c6d234dc..ef5d1c66 100644 --- a/src/uni_modules/wot-design-uni/components/wd-calendar/wd-calendar.vue +++ b/src/uni_modules/wot-design-uni/components/wd-calendar/wd-calendar.vue @@ -152,17 +152,35 @@ const defaultDisplayFormat = (value: number | number[], type: CalendarType): str 'to' )}\n${(value as number[])[1] ? dayjs((value as number[])[1]).format(translate('timeFormat')) : translate('endTime')}` case 'week': { - const year = new Date(value as number).getFullYear() + const date = new Date(value as number) + const year = date.getFullYear() const week = getWeekNumber(value as number) - return translate('weekFormat', year, padZero(week)) + const weekStart = new Date(date) + weekStart.setDate(date.getDate() - date.getDay() + 1) + const weekEnd = new Date(date) + weekEnd.setDate(date.getDate() + (7 - date.getDay())) + const adjustedYear = weekEnd.getFullYear() > year ? weekEnd.getFullYear() : year + return translate('weekFormat', adjustedYear, padZero(week)) } case 'weekrange': { - const year1 = new Date((value as number[])[0]).getFullYear() + const date1 = new Date((value as number[])[0]) + const date2 = new Date((value as number[])[1]) + const year1 = date1.getFullYear() + const year2 = date2.getFullYear() const week1 = getWeekNumber((value as number[])[0]) - const year2 = new Date((value as number[])[1]).getFullYear() const week2 = getWeekNumber((value as number[])[1]) - return `${(value as number[])[0] ? translate('weekFormat', year1, padZero(week1)) : translate('startWeek')} - ${ - (value as number[])[1] ? translate('weekFormat', year2, padZero(week2)) : translate('endWeek') + const weekStart1 = new Date(date1) + weekStart1.setDate(date1.getDate() - date1.getDay() + 1) + const weekEnd1 = new Date(date1) + weekEnd1.setDate(date1.getDate() + (7 - date1.getDay())) + const weekStart2 = new Date(date2) + weekStart2.setDate(date2.getDate() - date2.getDay() + 1) + const weekEnd2 = new Date(date2) + weekEnd2.setDate(date2.getDate() + (7 - date2.getDay())) + const adjustedYear1 = weekEnd1.getFullYear() > year1 ? weekEnd1.getFullYear() : year1 + const adjustedYear2 = weekEnd2.getFullYear() > year2 ? weekEnd2.getFullYear() : year2 + return `${(value as number[])[0] ? translate('weekFormat', adjustedYear1, padZero(week1)) : translate('startWeek')} - ${ + (value as number[])[1] ? translate('weekFormat', adjustedYear2, padZero(week2)) : translate('endWeek') }` } case 'month':