From 6b4292596a6b63de73278b5bee5c65b41746cfc8 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sun, 10 Mar 2024 19:05:55 +0800 Subject: [PATCH] add date navigation button in mobile version transaction list page --- src/views/mobile/transactions/ListPage.vue | 40 ++++++++++++++-------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/views/mobile/transactions/ListPage.vue b/src/views/mobile/transactions/ListPage.vue index 68c615fe..a9ab4d24 100644 --- a/src/views/mobile/transactions/ListPage.vue +++ b/src/views/mobile/transactions/ListPage.vue @@ -25,10 +25,16 @@ - - + + + + + {{ queryDateRangeName }} + + + {{ queryTransactionTypeName }} @@ -432,6 +438,7 @@ import { getTimezoneOffsetMinutes, getBrowserTimezoneOffsetMinutes, getActualUnixTimeForStore, + getShiftedDateRangeAndDateType, getDateRangeByDateType } from '@/lib/datetime.js'; import { categoryTypeToTransactionType, transactionTypeToCategoryType } from '@/lib/category.js'; @@ -494,19 +501,7 @@ export default { return this.$t('Date'); } - for (let dateRangeField in this.allDateRanges) { - if (!Object.prototype.hasOwnProperty.call(this.allDateRanges, dateRangeField)) { - continue; - } - - const dateRange = this.allDateRanges[dateRangeField]; - - if (dateRange && dateRange.type === this.query.dateType && dateRange.name) { - return this.$t(dateRange.name); - } - } - - return this.$t('Date'); + return this.$locale.getDateRangeDisplayName(this.userStore, this.query.dateType, this.query.minTime, this.query.maxTime); }, queryMinTime() { return this.$locale.formatUnixTimeToLongDateTime(this.userStore, this.query.minTime); @@ -825,6 +820,21 @@ export default { } }); }, + shiftDateRange(minTime, maxTime, scale) { + if (this.query.dateType === this.allDateRanges.All.type) { + return; + } + + const newDateRange = getShiftedDateRangeAndDateType(minTime, maxTime, scale, this.firstDayOfWeek); + + this.transactionsStore.updateTransactionListFilter({ + dateType: newDateRange.dateType, + maxTime: newDateRange.maxTime, + minTime: newDateRange.minTime + }); + + this.reload(null); + }, scrollPopoverToSelectedItem(event) { scrollToSelectedItem(event.$el, '.popover-inner', 'li.list-item-selected'); },