Added PLZ Autocompletion & InputChangeFunctions
This commit is contained in:
@@ -191,6 +191,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</template>
|
</template>
|
||||||
<div v-if="datapoint.key.includes('.')">
|
<div v-if="datapoint.key.includes('.')">
|
||||||
<UInput
|
<UInput
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-if="['text','number'].includes(datapoint.inputType)"
|
v-if="['text','number'].includes(datapoint.inputType)"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -198,11 +199,13 @@ const contentChanged = (content, datapoint) => {
|
|||||||
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
||||||
/>
|
/>
|
||||||
<UToggle
|
<UToggle
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'bool'"
|
v-else-if="datapoint.inputType === 'bool'"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
<USelectMenu
|
<USelectMenu
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'select'"
|
v-else-if="datapoint.inputType === 'select'"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -218,6 +221,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</template>
|
</template>
|
||||||
</USelectMenu>
|
</USelectMenu>
|
||||||
<UTextarea
|
<UTextarea
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'textarea'"
|
v-else-if="datapoint.inputType === 'textarea'"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -234,6 +238,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
|
|
||||||
<template #panel="{ close }">
|
<template #panel="{ close }">
|
||||||
<LazyDatePicker
|
<LazyDatePicker
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]" @close="close"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]" @close="close"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
@@ -248,6 +253,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<UInput
|
<UInput
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-if="['text','number'].includes(datapoint.inputType)"
|
v-if="['text','number'].includes(datapoint.inputType)"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -255,11 +261,13 @@ const contentChanged = (content, datapoint) => {
|
|||||||
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
||||||
/>
|
/>
|
||||||
<UToggle
|
<UToggle
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'bool'"
|
v-else-if="datapoint.inputType === 'bool'"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
<USelectMenu
|
<USelectMenu
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'select'"
|
v-else-if="datapoint.inputType === 'select'"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -276,6 +284,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</template>
|
</template>
|
||||||
</USelectMenu>
|
</USelectMenu>
|
||||||
<UTextarea
|
<UTextarea
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'textarea'"
|
v-else-if="datapoint.inputType === 'textarea'"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -291,6 +300,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
|
|
||||||
<template #panel="{ close }">
|
<template #panel="{ close }">
|
||||||
<LazyDatePicker
|
<LazyDatePicker
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-model="props.item[datapoint.key]" @close="close"
|
v-model="props.item[datapoint.key]" @close="close"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
@@ -342,6 +352,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</template>
|
</template>
|
||||||
<div v-if="datapoint.key.includes('.')">
|
<div v-if="datapoint.key.includes('.')">
|
||||||
<UInput
|
<UInput
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-if="['text','number'].includes(datapoint.inputType)"
|
v-if="['text','number'].includes(datapoint.inputType)"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -349,11 +360,13 @@ const contentChanged = (content, datapoint) => {
|
|||||||
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
||||||
/>
|
/>
|
||||||
<UToggle
|
<UToggle
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'bool'"
|
v-else-if="datapoint.inputType === 'bool'"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
<USelectMenu
|
<USelectMenu
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'select'"
|
v-else-if="datapoint.inputType === 'select'"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -369,6 +382,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</template>
|
</template>
|
||||||
</USelectMenu>
|
</USelectMenu>
|
||||||
<UTextarea
|
<UTextarea
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'textarea'"
|
v-else-if="datapoint.inputType === 'textarea'"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -385,6 +399,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
|
|
||||||
<template #panel="{ close }">
|
<template #panel="{ close }">
|
||||||
<LazyDatePicker
|
<LazyDatePicker
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]" @close="close"
|
v-model="props.item[datapoint.key.split('.')[0]][datapoint.key.split('.')[1]]" @close="close"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
@@ -399,6 +414,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<UInput
|
<UInput
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-if="['text','number'].includes(datapoint.inputType)"
|
v-if="['text','number'].includes(datapoint.inputType)"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -406,11 +422,13 @@ const contentChanged = (content, datapoint) => {
|
|||||||
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
:placeholder="datapoint.inputIsNumberRange ? 'Leer lassen für automatisch generierte Nummer' : ''"
|
||||||
/>
|
/>
|
||||||
<UToggle
|
<UToggle
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'bool'"
|
v-else-if="datapoint.inputType === 'bool'"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
<USelectMenu
|
<USelectMenu
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'select'"
|
v-else-if="datapoint.inputType === 'select'"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -427,6 +445,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
</template>
|
</template>
|
||||||
</USelectMenu>
|
</USelectMenu>
|
||||||
<UTextarea
|
<UTextarea
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-else-if="datapoint.inputType === 'textarea'"
|
v-else-if="datapoint.inputType === 'textarea'"
|
||||||
v-model="props.item[datapoint.key]"
|
v-model="props.item[datapoint.key]"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
@@ -442,6 +461,7 @@ const contentChanged = (content, datapoint) => {
|
|||||||
|
|
||||||
<template #panel="{ close }">
|
<template #panel="{ close }">
|
||||||
<LazyDatePicker
|
<LazyDatePicker
|
||||||
|
@change="datapoint.inputChangeFunction ? datapoint.inputChangeFunction(props.item) : null"
|
||||||
v-model="props.item[datapoint.key]" @close="close"
|
v-model="props.item[datapoint.key]" @close="close"
|
||||||
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
:disabled="datapoint.disabledFunction ? datapoint.disabledFunction(props.item) : false"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import vehicle from "~/components/columnRenderings/vehicle.vue"
|
|||||||
import usePlanning from "~/components/columnRenderings/usePlanning.vue"
|
import usePlanning from "~/components/columnRenderings/usePlanning.vue"
|
||||||
|
|
||||||
import quantity from "~/components/helpRenderings/quantity.vue"
|
import quantity from "~/components/helpRenderings/quantity.vue"
|
||||||
|
import {useZipCheck} from "~/composables/useZipCheck.js";
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
export const useDataStore = defineStore('data', () => {
|
export const useDataStore = defineStore('data', () => {
|
||||||
@@ -166,6 +167,11 @@ export const useDataStore = defineStore('data', () => {
|
|||||||
key: "infoData.zip",
|
key: "infoData.zip",
|
||||||
label: "Postleitzahl",
|
label: "Postleitzahl",
|
||||||
inputType: "number",
|
inputType: "number",
|
||||||
|
inputChangeFunction: async function (row) {
|
||||||
|
if(row.infoData.zip) {
|
||||||
|
row.infoData.city = (await useZipCheck(row.infoData.zip))
|
||||||
|
}
|
||||||
|
},
|
||||||
disabledInTable: true
|
disabledInTable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -764,7 +770,12 @@ export const useDataStore = defineStore('data', () => {
|
|||||||
key: "infoData.zip",
|
key: "infoData.zip",
|
||||||
label: "Postleitzahl",
|
label: "Postleitzahl",
|
||||||
inputType: "number",
|
inputType: "number",
|
||||||
disabledInTable: true
|
disabledInTable: true,
|
||||||
|
inputChangeFunction: async function (row) {
|
||||||
|
if(row.infoData.zip) {
|
||||||
|
row.infoData.city = (await useZipCheck(row.infoData.zip))
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "infoData.city",
|
key: "infoData.city",
|
||||||
@@ -904,7 +915,12 @@ export const useDataStore = defineStore('data', () => {
|
|||||||
label: "Postleitzahl",
|
label: "Postleitzahl",
|
||||||
inputType: "number",
|
inputType: "number",
|
||||||
disabledInTable: true,
|
disabledInTable: true,
|
||||||
inputColumn: "Ort"
|
inputColumn: "Ort",
|
||||||
|
inputChangeFunction: async function (row) {
|
||||||
|
if(row.infoData.zip) {
|
||||||
|
row.infoData.city = (await useZipCheck(row.infoData.zip))
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "infoData.city",
|
key: "infoData.city",
|
||||||
|
|||||||
Reference in New Issue
Block a user