From 2b63e50837eb8fe06fda83a53d4b5b83c6af15ea Mon Sep 17 00:00:00 2001 From: MaysWind Date: Fri, 26 Jul 2024 00:50:58 +0800 Subject: [PATCH] fix category name not show in transaction edit dialog when category is hidden --- src/components/desktop/TwoColumnSelect.vue | 17 ++++++++++------- .../transactions/list/dialogs/EditDialog.vue | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/components/desktop/TwoColumnSelect.vue b/src/components/desktop/TwoColumnSelect.vue index ed3ae12c..d372ab58 100644 --- a/src/components/desktop/TwoColumnSelect.vue +++ b/src/components/desktop/TwoColumnSelect.vue @@ -11,15 +11,17 @@ > @@ -88,9 +90,10 @@ export default { 'disabled', 'readonly', 'label', - 'selectionText', 'showSelectionPrimaryText', 'showSelectionSecondaryIcon', + 'customSelectionPrimaryText', + 'customSelectionSecondaryText', 'primaryKeyField', 'primaryValueField', 'primaryTitleField', diff --git a/src/views/desktop/transactions/list/dialogs/EditDialog.vue b/src/views/desktop/transactions/list/dialogs/EditDialog.vue index 2d6493b2..6415411b 100644 --- a/src/views/desktop/transactions/list/dialogs/EditDialog.vue +++ b/src/views/desktop/transactions/list/dialogs/EditDialog.vue @@ -100,6 +100,8 @@ :readonly="mode === 'view'" :disabled="loading || submitting || !hasAvailableExpenseCategories" :show-selection-primary-text="true" + :custom-selection-primary-text="getPrimaryCategoryName(transaction.expenseCategory, allCategories[allCategoryTypes.Expense])" + :custom-selection-secondary-text="getSecondaryCategoryName(transaction.expenseCategory, allCategories[allCategoryTypes.Expense])" :label="$t('Category')" :placeholder="$t('Category')" :items="allCategories[allCategoryTypes.Expense]" v-model="transaction.expenseCategory"> @@ -115,6 +117,8 @@ :readonly="mode === 'view'" :disabled="loading || submitting || !hasAvailableIncomeCategories" :show-selection-primary-text="true" + :custom-selection-primary-text="getPrimaryCategoryName(transaction.incomeCategory, allCategories[allCategoryTypes.Income])" + :custom-selection-secondary-text="getSecondaryCategoryName(transaction.incomeCategory, allCategories[allCategoryTypes.Income])" :label="$t('Category')" :placeholder="$t('Category')" :items="allCategories[allCategoryTypes.Income]" v-model="transaction.incomeCategory"> @@ -130,6 +134,8 @@ :readonly="mode === 'view'" :disabled="loading || submitting || !hasAvailableTransferCategories" :show-selection-primary-text="true" + :custom-selection-primary-text="getPrimaryCategoryName(transaction.transferCategory, allCategories[allCategoryTypes.Transfer])" + :custom-selection-secondary-text="getSecondaryCategoryName(transaction.transferCategory, allCategories[allCategoryTypes.Transfer])" :label="$t('Category')" :placeholder="$t('Category')" :items="allCategories[allCategoryTypes.Transfer]" v-model="transaction.transferCategory"> @@ -146,7 +152,7 @@ secondary-icon-field="icon" secondary-icon-type="account" secondary-color-field="color" :readonly="mode === 'view'" :disabled="loading || submitting || !allVisibleAccounts.length" - :selection-text="sourceAccountName" + :custom-selection-primary-text="sourceAccountName" :label="$t(sourceAccountTitle)" :placeholder="$t(sourceAccountTitle)" :items="categorizedAccounts" @@ -164,7 +170,7 @@ secondary-icon-field="icon" secondary-icon-type="account" secondary-color-field="color" :readonly="mode === 'view'" :disabled="loading || submitting || !allVisibleAccounts.length" - :selection-text="destinationAccountName" + :custom-selection-primary-text="destinationAccountName" :label="$t('Destination Account')" :placeholder="$t('Destination Account')" :items="categorizedAccounts" @@ -343,6 +349,8 @@ import { } from '@/lib/datetime.js'; import { generateRandomUUID } from '@/lib/misc.js'; import { + getTransactionPrimaryCategoryName, + getTransactionSecondaryCategoryName, getFirstAvailableCategoryId } from '@/lib/category.js'; import { setTransactionModelByTransaction } from '@/lib/transaction.js'; @@ -845,6 +853,12 @@ export default { this.transaction.destinationAmount = oldSourceAmount; } }, + getPrimaryCategoryName(categoryId, allCategories) { + return getTransactionPrimaryCategoryName(categoryId, allCategories); + }, + getSecondaryCategoryName(categoryId, allCategories) { + return getTransactionSecondaryCategoryName(categoryId, allCategories); + }, setTransaction(transaction, options, setContextData, convertContextTime) { setTransactionModelByTransaction( this.transaction,