adding possibility to update another field value from a custom interface (#11620)

*  adding possibility to update another field value from a custom interface

* Rename fieldName->fieldKey for consistency

Co-authored-by: Antoine Barroux <antoine.barroux@liksi.fr>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
This commit is contained in:
AntoineBarroux
2022-04-06 15:20:11 +02:00
committed by GitHub
parent c2cd010eec
commit b4538ca7a3
3 changed files with 10 additions and 6 deletions

View File

@@ -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)"
/>
<v-notice v-else type="warning">
@@ -77,7 +78,7 @@ export default defineComponent({
default: false,
},
},
emits: ['update:modelValue'],
emits: ['update:modelValue', 'setFieldValue'],
setup(props) {
const { t } = useI18n();

View File

@@ -40,6 +40,7 @@
:disabled="isDisabled"
:primary-key="primaryKey"
@update:model-value="emitValue($event)"
@set-field-value="$emit('setFieldValue', $event)"
/>
<v-dialog v-model="showRaw" @esc="showRaw = false">

View File

@@ -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);
}
}
}