From 1ccabbedcdf352d4a9694b0b380e34a1ebdd9969 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Tue, 19 May 2026 15:20:38 +0200 Subject: [PATCH] Dateityp-Belegarten in Listen anzeigen --- frontend/components/EntityTable.vue | 9 +++++++-- frontend/pages/standardEntity/[type]/index.vue | 14 +++++++++++--- frontend/stores/data.js | 10 ++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/frontend/components/EntityTable.vue b/frontend/components/EntityTable.vue index 5dfc78b..b530da7 100644 --- a/frontend/components/EntityTable.vue +++ b/frontend/components/EntityTable.vue @@ -75,6 +75,11 @@ return `${stringValue.substring(0, maxLength)}...` } + const getColumnDisplayValue = (column, row) => { + const value = row[column.key] + if (column.displayFunction) return column.displayFunction(value, row) + return value + } const handleSortChange = (value) => { const nextSort = Array.isArray(value) ? value[0] : undefined @@ -148,9 +153,9 @@ v-slot:[`${column.key}-cell`]="{ row }"> - + - {{ `${truncateValue(row.original[column.key], column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }} + {{ `${truncateValue(getColumnDisplayValue(column, row.original), column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }} diff --git a/frontend/pages/standardEntity/[type]/index.vue b/frontend/pages/standardEntity/[type]/index.vue index 5805a0a..e745382 100644 --- a/frontend/pages/standardEntity/[type]/index.vue +++ b/frontend/pages/standardEntity/[type]/index.vue @@ -317,9 +317,17 @@ const truncateValue = (value, maxLength) => { return `${stringValue.substring(0, maxLength)}...` } +const getColumnDisplayValue = (column, row) => { + const value = row[column.key] + if (column.displayFunction) return column.displayFunction(value, row) + return value +} + const getDistinctFilterItems = (columnKey) => { + const column = dataType.templateColumns.find((item) => item.key === columnKey) + return (itemsMeta.value?.distinctValues?.[columnKey] || []).map((value) => ({ - label: String(value), + label: String(column?.displayFunction ? column.displayFunction(value) : value), value })) } @@ -550,9 +558,9 @@ const isDistinctFilterActive = (columnKey) => { v-slot:[`${column.key}-cell`]="{row}"> - + - {{ `${truncateValue(row.original[column.key], column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }} + {{ `${truncateValue(getColumnDisplayValue(column, row.original), column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }} diff --git a/frontend/stores/data.js b/frontend/stores/data.js index d0bfffa..f443262 100644 --- a/frontend/stores/data.js +++ b/frontend/stores/data.js @@ -87,6 +87,10 @@ export const useDataStore = defineStore('data', () => { { key: "reminders", label: "Mahnung" }, ] + const getFiletagDocumentTypeLabel = (options, value) => { + return options.find((option) => option.key === value)?.label || value + } + const dataTypes = { tasks: { isArchivable: true, @@ -2397,6 +2401,9 @@ export const useDataStore = defineStore('data', () => { selectValueAttribute: "key", selectOptionAttribute: "label", selectManualOptions: filetagCreatedDocumentTypeOptions, + displayFunction: function (value) { + return getFiletagDocumentTypeLabel(filetagCreatedDocumentTypeOptions, value) + }, inputColumn: "Automatik", }, { @@ -2406,6 +2413,9 @@ export const useDataStore = defineStore('data', () => { selectValueAttribute: "key", selectOptionAttribute: "label", selectManualOptions: filetagIncomingDocumentTypeOptions, + displayFunction: function (value) { + return getFiletagDocumentTypeLabel(filetagIncomingDocumentTypeOptions, value) + }, inputColumn: "Automatik", }, {