From 34f537238e1fe465888047337c732c4a04800a0b Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Mon, 11 May 2026 18:20:59 +0200 Subject: [PATCH] Kundenanlage mit aktiven Standardwerten vorbelegen #120 --- frontend/components/EntityEdit.vue | 22 ++++++++++++++++++++++ frontend/stores/data.js | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/frontend/components/EntityEdit.vue b/frontend/components/EntityEdit.vue index ce7462d..fe8150d 100644 --- a/frontend/components/EntityEdit.vue +++ b/frontend/components/EntityEdit.vue @@ -123,11 +123,33 @@ const saveAllowed = computed(() => { const setupCreate = () => { + const setDefaultValue = (datapoint) => { + if (props.mode !== "create" || !("defaultValue" in datapoint)) return + + const defaultValue = typeof datapoint.defaultValue === "function" + ? datapoint.defaultValue() + : datapoint.defaultValue + + if(datapoint.key.includes(".")){ + const [parentKey, childKey] = datapoint.key.split(".") + if (item.value[parentKey][childKey] === undefined) { + item.value[parentKey][childKey] = defaultValue + } + return + } + + if (item.value[datapoint.key] === undefined) { + item.value[datapoint.key] = defaultValue + } + } + dataType.templateColumns.forEach(datapoint => { if(datapoint.key.includes(".")){ !item.value[datapoint.key.split(".")[0]] ? item.value[datapoint.key.split(".")[0]] = {} : null } + setDefaultValue(datapoint) + if(datapoint.inputType === "editor") { if(datapoint.key.includes(".")){ item.value[datapoint.key.split(".")[0]][datapoint.key.split(".")[1]] = {} diff --git a/frontend/stores/data.js b/frontend/stores/data.js index 03d2493..c18ad8b 100644 --- a/frontend/stores/data.js +++ b/frontend/stores/data.js @@ -297,6 +297,7 @@ export const useDataStore = defineStore('data', () => { label: "Aktiv", component: active, inputType: "bool", + defaultValue: true, inputColumn: "Allgemeines", sortable: true, distinct: true @@ -383,6 +384,7 @@ export const useDataStore = defineStore('data', () => { selectDataType: "countrys", selectOptionAttribute: "name", selectValueAttribute: "name", + defaultValue: "Deutschland", disabledInTable: true, inputColumn: "Kontaktdaten", sortable: true @@ -559,6 +561,7 @@ export const useDataStore = defineStore('data', () => { label: "Aktiv", component: active, inputType: "bool", + defaultValue: true, inputColumn: "Allgemeines", sortable: true, distinct: true @@ -641,6 +644,7 @@ export const useDataStore = defineStore('data', () => { selectDataType: "countrys", selectOptionAttribute: "name", selectValueAttribute: "name", + defaultValue: "Deutschland", disabledInTable: true, inputColumn: "Bank & Kontakt" },