feat: add constructors selection and management
This commit is contained in:
@@ -34,15 +34,16 @@
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-medium">Constructeur:</span>
|
||||
<input
|
||||
v-if="isEditMode"
|
||||
:id="`piece-constructeur-${piece.id}`"
|
||||
v-model="pieceData.constructeur"
|
||||
type="text"
|
||||
class="input input-sm input-bordered ml-2"
|
||||
@blur="updatePiece"
|
||||
<span v-if="!isEditMode" class="ml-2">
|
||||
<span class="font-medium">{{ piece.constructeur?.name || 'Non défini' }}</span>
|
||||
<span v-if="piece.constructeur" class="block text-xs text-gray-500">
|
||||
{{ [piece.constructeur?.email, piece.constructeur?.phone].filter(Boolean).join(' • ') }}
|
||||
</span>
|
||||
</span>
|
||||
<ConstructeurSelect
|
||||
v-else
|
||||
v-model="piece.constructeurId"
|
||||
/>
|
||||
<span v-else class="ml-2">{{ pieceData.constructeur || 'Non défini' }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-medium">Emplacement:</span>
|
||||
@@ -229,6 +230,7 @@ import { useToast } from '~/composables/useToast'
|
||||
import { useDocuments } from '~/composables/useDocuments'
|
||||
import { getFileIcon } from '~/utils/fileIcons'
|
||||
import DocumentUpload from '~/components/DocumentUpload.vue'
|
||||
import ConstructeurSelect from './ConstructeurSelect.vue'
|
||||
|
||||
const props = defineProps({
|
||||
piece: {
|
||||
@@ -247,7 +249,6 @@ const emit = defineEmits(['update', 'edit', 'custom-field-update'])
|
||||
const pieceData = reactive({
|
||||
name: props.piece.name || '',
|
||||
reference: props.piece.reference || '',
|
||||
constructeur: props.piece.constructeur || '',
|
||||
emplacement: props.piece.emplacement || '',
|
||||
prix: props.piece.prix || ''
|
||||
})
|
||||
@@ -336,6 +337,17 @@ 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) => {
|
||||
const fieldValue = props.piece.customFieldValues?.find(fv => fv.id === fieldValueId)
|
||||
@@ -349,7 +361,8 @@ const updatePiece = () => {
|
||||
emit('update', {
|
||||
...props.piece,
|
||||
...pieceData,
|
||||
prix: prixValue && prixValue !== '' ? parseFloat(prixValue) : null
|
||||
prix: prixValue && prixValue !== '' ? parseFloat(prixValue) : null,
|
||||
constructeurId: props.piece.constructeurId || null,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -377,7 +390,6 @@ onMounted(() => {
|
||||
// Initialiser les données avec les props
|
||||
pieceData.name = props.piece.name || ''
|
||||
pieceData.reference = props.piece.reference || ''
|
||||
pieceData.constructeur = props.piece.constructeur || ''
|
||||
pieceData.emplacement = props.piece.emplacement || ''
|
||||
pieceData.prix = props.piece.prix || ''
|
||||
|
||||
|
||||
Reference in New Issue
Block a user