From f2055d59eb6414fb9e4f5caea4541ee50e18f8b2 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Thu, 28 May 2026 16:38:32 +0200 Subject: [PATCH] KI-AGENT: Kontenauswahl im Bankportal stabilisieren --- frontend/pages/banking/index.vue | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/frontend/pages/banking/index.vue b/frontend/pages/banking/index.vue index 53d4076..11ed42b 100644 --- a/frontend/pages/banking/index.vue +++ b/frontend/pages/banking/index.vue @@ -24,6 +24,7 @@ const incominginvoices = ref([]) const openDocuments = ref([]) const openIncomingInvoices = ref([]) const filterAccount = ref([]) +const filterAccountInitialized = ref(false) const isSyncing = ref(false) const cashbookBookingModalOpen = ref(false) const savingCashbookBooking = ref(false) @@ -134,8 +135,14 @@ const setupPage = async () => { openIncomingInvoices.value = invoiceItems .filter(i => i.state === "Gebucht" && !i.archived && i.statementallocations.reduce((n, {amount}) => n + amount, 0).toFixed(2) !== getInvoiceSum(i, false)) - if (bankaccounts.value.length > 0 && filterAccount.value.length === 0) { - filterAccount.value = bankaccounts.value + const availableAccountIds = bankaccounts.value.map((account) => account.id) + if (!filterAccountInitialized.value) { + filterAccount.value = availableAccountIds + filterAccountInitialized.value = true + } else { + filterAccount.value = filterAccount.value + .map((account) => getBankAccountId(account)) + .filter((id) => availableAccountIds.includes(id)) } // Erst nach dem Laden der Daten die Store-Werte anwenden @@ -250,6 +257,12 @@ const getBankAccountLabel = (account) => { if (isCashbookAccount(account)) return `${account.name || account.ownerName || "Kassenbuch"} - Konto ${account.datevNumber || account.iban}` return `${account.name || account.ownerName || "Bankkonto"} - ${account.iban}` } +const selectedAccountLabel = computed(() => { + if (filterAccount.value.length === 0) return "Keine Konten" + if (filterAccount.value.length === bankaccounts.value.length) return "Alle Konten" + if (filterAccount.value.length === 1) return getBankAccountLabel(resolveBankAccount(filterAccount.value[0])) + return `${filterAccount.value.length} Konten` +}) const selectedCashbookAccount = computed(() => { if (filterAccount.value.length !== 1) return null const account = resolveBankAccount(filterAccount.value[0]) @@ -711,12 +724,11 @@ onMounted(() => { value-key="id" label-key="displayLabel" multiple - by="id" placeholder="Konten" class="w-64" >