From dbbbe6805da7062fc7742a937d6588cd8db94661 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Wed, 7 May 2025 00:34:11 +0800 Subject: [PATCH] fix cannot shift month when selected month is current month and in transaction calendar mode --- src/lib/datetime.ts | 10 +++++----- src/views/desktop/transactions/ListPage.vue | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/datetime.ts b/src/lib/datetime.ts index c0ccaf5f..1d4e598b 100644 --- a/src/lib/datetime.ts +++ b/src/lib/datetime.ts @@ -761,7 +761,7 @@ export function getRecentMonthDateRanges(monthCount: number): RecentMonthDateRan return recentDateRanges; } -export function getRecentDateRangeTypeByDateType(allRecentMonthDateRanges: LocalizedRecentMonthDateRange[], dateType: number): number { +export function getRecentDateRangeIndexByDateType(allRecentMonthDateRanges: LocalizedRecentMonthDateRange[], dateType: number): number { for (let i = 0; i < allRecentMonthDateRanges.length; i++) { if (!allRecentMonthDateRanges[i].isPreset && allRecentMonthDateRanges[i].dateType === dateType) { return i; @@ -771,15 +771,15 @@ export function getRecentDateRangeTypeByDateType(allRecentMonthDateRanges: Local return -1; } -export function getRecentDateRangeType(allRecentMonthDateRanges: LocalizedRecentMonthDateRange[], dateType: number, minTime: number, maxTime: number, firstDayOfWeek: number): number { +export function getRecentDateRangeIndex(allRecentMonthDateRanges: LocalizedRecentMonthDateRange[], dateType: number, minTime: number, maxTime: number, firstDayOfWeek: number): number { let dateRange = getDateRangeByDateType(dateType, firstDayOfWeek); if (dateRange && dateRange.dateType === DateRange.All.type) { - return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, DateRange.All.type); + return getRecentDateRangeIndexByDateType(allRecentMonthDateRanges, DateRange.All.type); } if (!dateRange && (!maxTime || !minTime)) { - return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, DateRange.Custom.type); + return getRecentDateRangeIndexByDateType(allRecentMonthDateRanges, DateRange.Custom.type); } if (!dateRange) { @@ -798,7 +798,7 @@ export function getRecentDateRangeType(allRecentMonthDateRanges: LocalizedRecent } } - return getRecentDateRangeTypeByDateType(allRecentMonthDateRanges, DateRange.Custom.type); + return getRecentDateRangeIndexByDateType(allRecentMonthDateRanges, DateRange.Custom.type); } export function getFullMonthDateRange(minTime: number, maxTime: number, firstDayOfWeek: number): TimeRangeAndDateType | null { diff --git a/src/views/desktop/transactions/ListPage.vue b/src/views/desktop/transactions/ListPage.vue index 03b4eb55..a8b8abd1 100644 --- a/src/views/desktop/transactions/ListPage.vue +++ b/src/views/desktop/transactions/ListPage.vue @@ -39,7 +39,7 @@ /> + :disabled="loading" v-model="recentDateRangeIndex"> {{ recentDateRange.displayName }} @@ -694,7 +694,7 @@ import { getDateTypeByBillingCycleDateRange, getDateRangeByDateType, getDateRangeByBillingCycleDateType, - getRecentDateRangeType, + getRecentDateRangeIndex, getFullMonthDateRange, getMonthFirstDayOrCurrentDayShortDate, isDateRangeMatchOneMonth @@ -954,8 +954,8 @@ const currentMonthTransactionData = computed(() => return null; }); -const recentDateRangeType = computed({ - get: () => getRecentDateRangeType(recentMonthDateRanges.value, query.value.dateType, query.value.minTime, query.value.maxTime, firstDayOfWeek.value), +const recentDateRangeIndex = computed({ + get: () => getRecentDateRangeIndex(recentMonthDateRanges.value, query.value.dateType, query.value.minTime, query.value.maxTime, firstDayOfWeek.value), set: (value) => { if (value < 0 || value >= recentMonthDateRanges.value.length) { value = 0; @@ -1339,9 +1339,9 @@ function changeCustomDateFilter(minTime: number, maxTime: number): void { } function shiftDateRange(startTime: number, endTime: number, scale: number): void { - if (recentDateRangeType.value === DateRange.All.type) { + if (pageType.value === TransactionListPageType.List.type && recentDateRangeIndex.value === 0) { // first item is "All" return; - } + } // transaction calendar mode not display "All" item let newDateRange: TimeRangeAndDateType | null = null;