From 60b6ed51cd8e81868a4ebf253f2e93628868ea1b Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 18 Oct 2025 00:38:48 +0800 Subject: [PATCH] hide unsupported filters when selecting Account Total Assets or Account Total Liabilities on the Statistics & Analysis page --- .../StatisticsTransactionPageBase.ts | 27 +++++++++++++++++++ .../desktop/statistics/TransactionPage.vue | 19 +++++++++---- .../mobile/statistics/TransactionPage.vue | 13 +++++---- 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/src/views/base/statistics/StatisticsTransactionPageBase.ts b/src/views/base/statistics/StatisticsTransactionPageBase.ts index 1a6423e9..ea197db9 100644 --- a/src/views/base/statistics/StatisticsTransactionPageBase.ts +++ b/src/views/base/statistics/StatisticsTransactionPageBase.ts @@ -156,6 +156,30 @@ export function useStatisticsTransactionPageBase() { } }); + const canUseCategoryFilter = computed(() => { + if (query.value.chartDataType === ChartDataType.AccountTotalAssets.type || query.value.chartDataType === ChartDataType.AccountTotalLiabilities.type) { + return false; + } + + return true; + }); + + const canUseTagFilter = computed(() => { + if (query.value.chartDataType === ChartDataType.AccountTotalAssets.type || query.value.chartDataType === ChartDataType.AccountTotalLiabilities.type) { + return false; + } + + return true; + }); + + const canUseKeywordFilter = computed(() => { + if (query.value.chartDataType === ChartDataType.AccountTotalAssets.type || query.value.chartDataType === ChartDataType.AccountTotalLiabilities.type) { + return false; + } + + return true; + }); + const showAmountInChart = computed(() => { if (!showAccountBalance.value && (query.value.chartDataType === ChartDataType.AccountTotalAssets.type || query.value.chartDataType === ChartDataType.AccountTotalLiabilities.type)) { @@ -259,6 +283,9 @@ export function useStatisticsTransactionPageBase() { queryTrendDateAggregationTypeName, isQueryDateRangeChanged, canShiftDateRange, + canUseCategoryFilter, + canUseTagFilter, + canUseKeywordFilter, showAmountInChart, totalAmountName, showTotalAmountInTrendsChart, diff --git a/src/views/desktop/statistics/TransactionPage.vue b/src/views/desktop/statistics/TransactionPage.vue index c2652327..7afda184 100644 --- a/src/views/desktop/statistics/TransactionPage.vue +++ b/src/views/desktop/statistics/TransactionPage.vue @@ -120,6 +120,7 @@ :append-inner-icon="filterKeyword !== query.keyword ? mdiCheck : undefined" :placeholder="tt('Filter transaction description')" v-model="filterKeyword" + v-if="canUseKeywordFilter" @click:append-inner="setKeywordFilter(filterKeyword)" @keyup.enter="setKeywordFilter(filterKeyword)" /> @@ -129,15 +130,20 @@ - - - + + @click="showFilterTagDialog = true" + v-if="canUseTagFilter"> - {{ tt('Filter Accounts') }} - {{ tt('Filter Transaction Categories') }} - {{ tt('Filter Transaction Tags') }} + {{ tt('Filter Accounts') }} + {{ tt('Filter Transaction Categories') }} + {{ tt('Filter Transaction Tags') }} - + {{ query.keyword }} - {{ tt('Filter transaction description') }} + {{ tt('Filter transaction description') }} {{ tt('Settings') }} @@ -398,6 +398,9 @@ const { queryTrendDateAggregationTypeName, isQueryDateRangeChanged, canShiftDateRange, + canUseCategoryFilter, + canUseTagFilter, + canUseKeywordFilter, showAmountInChart, totalAmountName, translateNameInTrendsChart,