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"
/>
+
+
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)