From 231aa05e8d9ceac32ade0c3c94da4668668b8fde Mon Sep 17 00:00:00 2001 From: landluck Date: Thu, 12 Jan 2023 17:56:17 +0800 Subject: [PATCH] fix(calendar): fix cannot select the same day on allow-same-day (#5193) --- packages/calendar/index.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/calendar/index.ts b/packages/calendar/index.ts index f409c7c1..f4588f6a 100644 --- a/packages/calendar/index.ts +++ b/packages/calendar/index.ts @@ -18,6 +18,7 @@ import Toast from '../toast/toast'; import { requestAnimationFrame } from '../common/utils'; const initialMinDate = getToday().getTime(); + const initialMaxDate = (() => { const now = getToday(); return new Date( @@ -26,6 +27,7 @@ const initialMaxDate = (() => { now.getDate() ).getTime(); })(); + const getTime = (date: Date | number) => date instanceof Date ? date.getTime() : date; @@ -194,7 +196,7 @@ VantComponent({ }, getInitialDate(defaultDate: number | number[] | null = null) { - const { type, minDate, maxDate } = this.data; + const { type, minDate, maxDate, allowSameDay } = this.data; const now = getToday().getTime(); @@ -210,10 +212,14 @@ VantComponent({ minDate, getPrevDay(new Date(maxDate)).getTime() ); + + const date = getTime(endDay || now); + const end = this.limitDateRange( - endDay || now, - getNextDay(new Date(minDate)).getTime() + date, + allowSameDay ? date : getNextDay(new Date(minDate)).getTime() ); + return [start, end]; }