diff --git a/app/components/ComponentItem.vue b/app/components/ComponentItem.vue
index af2f54b..a4bf63a 100644
--- a/app/components/ComponentItem.vue
+++ b/app/components/ComponentItem.vue
@@ -81,7 +81,9 @@
@@ -260,6 +262,11 @@ const documentsLoaded = ref(!!(props.piece.documents && props.piece.documents.le
const pieceDocuments = computed(() => props.piece.documents || [])
const documentIcon = (doc) => getFileIcon({ name: doc.filename || doc.name, mime: doc.mimeType })
+const handleConstructeurChange = (value) => {
+ props.piece.constructeurId = value
+ updatePiece()
+}
+
const { uploadDocuments, deleteDocument, loadDocumentsByPiece } = useDocuments()
const refreshDocuments = async () => {
@@ -337,16 +344,6 @@ watch(
}
)
-watch(
- () => props.piece.constructeurId,
- (newVal, oldVal) => {
- if (!props.isEditMode) return
- if (oldVal === undefined) return
- if (newVal !== oldVal) {
- updatePiece()
- }
- }
-)
// Méthodes pour gérer les champs personnalisés
const setCustomFieldValue = (fieldValueId, value) => {
diff --git a/app/pages/machine/[id].vue b/app/pages/machine/[id].vue
index 19f66ff..aac401b 100644
--- a/app/pages/machine/[id].vue
+++ b/app/pages/machine/[id].vue
@@ -107,15 +107,17 @@
@@ -366,6 +368,7 @@ import { getFileIcon } from '~/utils/fileIcons'
import ComponentHierarchy from '~/components/ComponentHierarchy.vue'
import DocumentUpload from '~/components/DocumentUpload.vue'
import ConstructeurSelect from '~/components/ConstructeurSelect.vue'
+import { useConstructeurs } from '~/composables/useConstructeurs'
const route = useRoute()
const machineId = route.params.id
@@ -401,11 +404,18 @@ const machine = ref(null)
const components = ref([])
const pieces = ref([])
+const { constructeurs, loadConstructeurs } = useConstructeurs()
+
// Champs de la machine
const machineName = ref('')
const machineReference = ref('')
const machineEmplacement = ref('')
const machineConstructeurId = ref(null)
+const machineConstructeurDisplay = computed(() => {
+ const id = machineConstructeurId.value || machine.value?.constructeur?.id || machine.value?.constructeurId
+ if (!id) return machine.value?.constructeur || null
+ return constructeurs.value.find(item => item.id === id) || machine.value?.constructeur || null
+})
// Valeurs des champs personnalisés de la machine
const machineCustomFieldValues = reactive({})
@@ -413,18 +423,11 @@ const machineCustomFieldValues = reactive({})
const machineDocumentFiles = ref([])
const machineDocumentsUploading = ref(false)
const machineDocumentsLoaded = ref(false)
-const machineConstructeurInitialized = ref(false)
-watch(machineConstructeurId, (newValue, oldValue) => {
- if (!machine.value) return
- if (!machineConstructeurInitialized.value) {
- machineConstructeurInitialized.value = true
- return
- }
- if (newValue !== oldValue) {
- updateMachineInfo()
- }
-})
+const handleMachineConstructeurChange = async (value) => {
+ machineConstructeurId.value = value
+ await updateMachineInfo()
+}
// Mode d'édition
const isEditMode = ref(false)
@@ -451,7 +454,6 @@ const initMachineFields = () => {
machineReference.value = machine.value.reference || ''
machineEmplacement.value = machine.value.emplacement || ''
machineConstructeurId.value = machine.value.constructeurId || machine.value.constructeur?.id || null
- machineConstructeurInitialized.value = false
}
}
@@ -839,7 +841,10 @@ const toggleEditMode = () => {
// Lifecycle
onMounted(() => {
loadMachineData()
-
+ if (!constructeurs.value.length) {
+ loadConstructeurs()
+ }
+
// Vérifier si on doit activer le mode édition depuis l'URL
const route = useRoute()
if (route.query.edit === 'true') {