diff --git a/frontend/app/components/PieceItem.vue b/frontend/app/components/PieceItem.vue index 0264494..e79ba80 100644 --- a/frontend/app/components/PieceItem.vue +++ b/frontend/app/components/PieceItem.vue @@ -245,6 +245,19 @@ @field-blur="handleCustomFieldBlur" /> + +
+

+ Champs contextuels +

+ +
+
Documents
@@ -303,11 +316,13 @@ import { } from '~/shared/constructeurUtils' import { resolveFieldId, - resolveFieldReadOnly, + resolveFieldReadOnly, mergeFieldDefinitionsWithValues, dedupeMergedFields } from '~/shared/utils/entityCustomFieldLogic' import { useEntityDocuments } from '~/composables/useEntityDocuments' import { useEntityProductDisplay } from '~/composables/useEntityProductDisplay' import { useEntityCustomFields } from '~/composables/useEntityCustomFields' +import { useCustomFields } from '~/composables/useCustomFields' +import { useToast } from '~/composables/useToast' const props = defineProps({ piece: { type: Object, required: true }, @@ -375,6 +390,40 @@ const { updateCustomField, } = useEntityCustomFields({ entity: () => props.piece, entityType: 'piece' }) +const { upsertCustomFieldValue } = useCustomFields() +const { showSuccess, showError } = useToast() + +const mergedContextFields = computed(() => { + const definitions = props.piece?.contextCustomFields ?? [] + const values = props.piece?.contextCustomFieldValues ?? [] + if (!definitions.length && !values.length) return [] + return dedupeMergedFields( + mergeFieldDefinitionsWithValues(definitions, values), + ) +}) + +const updateContextCustomField = async (field) => { + const linkId = props.piece?.linkId + if (!linkId || !field) return + + const customFieldId = field.customFieldId || field.customField?.id + if (!customFieldId) return + + const result = await upsertCustomFieldValue( + customFieldId, + 'machinePieceLink', + linkId, + field.value ?? '', + ) + + if (result.success) { + showSuccess(`Champ contextuel "${field.name || field.customField?.name}" mis à jour`) + } + else { + showError(`Erreur lors de la mise à jour du champ contextuel`) + } +} + // --- Document edit modal --- const editingDocument = ref(null) const editModalVisible = ref(false)