diff --git a/app/src/components/v-form/form-field-interface.vue b/app/src/components/v-form/form-field-interface.vue index aad2a9e8d7..81a3d27082 100644 --- a/app/src/components/v-form/form-field-interface.vue +++ b/app/src/components/v-form/form-field-interface.vue @@ -27,6 +27,7 @@ :primary-key="primaryKey" :length="field.schema && field.schema.max_length" @input="$emit('update:modelValue', $event)" + @set-field-value="$emit('setFieldValue', $event)" /> @@ -77,7 +78,7 @@ export default defineComponent({ default: false, }, }, - emits: ['update:modelValue'], + emits: ['update:modelValue', 'setFieldValue'], setup(props) { const { t } = useI18n(); diff --git a/app/src/components/v-form/form-field.vue b/app/src/components/v-form/form-field.vue index 24611dbd4c..f20de34165 100644 --- a/app/src/components/v-form/form-field.vue +++ b/app/src/components/v-form/form-field.vue @@ -40,6 +40,7 @@ :disabled="isDisabled" :primary-key="primaryKey" @update:model-value="emitValue($event)" + @set-field-value="$emit('setFieldValue', $event)" /> diff --git a/app/src/components/v-form/v-form.vue b/app/src/components/v-form/v-form.vue index 34e5a00a86..2044335876 100644 --- a/app/src/components/v-form/v-form.vue +++ b/app/src/components/v-form/v-form.vue @@ -54,7 +54,8 @@ validationErrors.find((err) => err.field === field.field || err.field.endsWith(`(${field.field})`)) " :badge="badge" - @update:model-value="setValue(field, $event)" + @update:model-value="setValue(field.field, $event)" + @set-field-value="setValue($event.field, $event.value)" @unset="unsetValue(field)" @toggle-batch="toggleBatchField(field)" /> @@ -310,11 +311,12 @@ export default defineComponent({ } } - function setValue(field: Field, value: any) { - if (isDisabled(field)) return; + function setValue(fieldKey: string, value: any) { + const field = props.fields?.find((field) => field.field === fieldKey); + if (!field || isDisabled(field)) return; const edits = props.modelValue ? cloneDeep(props.modelValue) : {}; - edits[field.field] = value; + edits[fieldKey] = value; emit('update:modelValue', edits); } @@ -352,7 +354,7 @@ export default defineComponent({ unsetValue(field); } else { batchActiveFields.value = [...batchActiveFields.value, field.field]; - setValue(field, field.schema?.default_value); + setValue(field.field, field.schema?.default_value); } } }