feat: afficher fournisseur dans les libellés front
This commit is contained in:
@@ -233,7 +233,7 @@
|
|||||||
: 'text-base-content hover:bg-primary/10 hover:text-primary'
|
: 'text-base-content hover:bg-primary/10 hover:text-primary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
Constructeurs
|
Fournisseurs
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -488,7 +488,7 @@
|
|||||||
: 'text-base-content hover:bg-primary/10 hover:text-primary'
|
: 'text-base-content hover:bg-primary/10 hover:text-primary'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
Constructeurs
|
Fournisseurs
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label"><span class="label-text font-medium">Constructeur</span></label>
|
<label class="label"><span class="label-text font-medium">Fournisseur</span></label>
|
||||||
<ConstructeurSelect
|
<ConstructeurSelect
|
||||||
v-if="isEditMode"
|
v-if="isEditMode"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
v-if="options.length === 0"
|
v-if="options.length === 0"
|
||||||
class="px-3 py-2 text-xs text-gray-500"
|
class="px-3 py-2 text-xs text-gray-500"
|
||||||
>
|
>
|
||||||
Aucun constructeur trouvé
|
Aucun fournisseur trouvé
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
v-for="option in options"
|
v-for="option in options"
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
<div class="flex flex-wrap gap-2 min-h-[1.5rem]">
|
<div class="flex flex-wrap gap-2 min-h-[1.5rem]">
|
||||||
<span v-if="!selectedConstructeurs.length" class="text-sm text-gray-500">
|
<span v-if="!selectedConstructeurs.length" class="text-sm text-gray-500">
|
||||||
Aucun constructeur sélectionné
|
Aucun fournisseur sélectionné
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
v-for="constructeur in selectedConstructeurs"
|
v-for="constructeur in selectedConstructeurs"
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-ghost btn-xs p-0"
|
class="btn btn-ghost btn-xs p-0"
|
||||||
aria-label="Retirer le constructeur"
|
aria-label="Retirer le fournisseur"
|
||||||
@click="removeConstructeur(constructeur.id)"
|
@click="removeConstructeur(constructeur.id)"
|
||||||
>
|
>
|
||||||
<IconLucideX class="w-3 h-3" aria-hidden="true" />
|
<IconLucideX class="w-3 h-3" aria-hidden="true" />
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
<dialog class="modal" :class="{ 'modal-open': openCreateModal }">
|
<dialog class="modal" :class="{ 'modal-open': openCreateModal }">
|
||||||
<div class="modal-box">
|
<div class="modal-box">
|
||||||
<h3 class="font-bold text-lg mb-4">
|
<h3 class="font-bold text-lg mb-4">
|
||||||
Nouveau constructeur
|
Nouveau fournisseur
|
||||||
</h3>
|
</h3>
|
||||||
<form @submit.prevent="handleCreate">
|
<form @submit.prevent="handleCreate">
|
||||||
<div class="form-control mb-3">
|
<div class="form-control mb-3">
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
v-model="createForm.email"
|
v-model="createForm.email"
|
||||||
class="mb-3"
|
class="mb-3"
|
||||||
label="Email"
|
label="Email"
|
||||||
placeholder="ex: contact@constructeur.com"
|
placeholder="ex: contact@fournisseur.com"
|
||||||
autocomplete="email"
|
autocomplete="email"
|
||||||
/>
|
/>
|
||||||
<FieldPhone
|
<FieldPhone
|
||||||
@@ -140,7 +140,7 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
placeholder: {
|
placeholder: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'Sélectionner ou créer un constructeur...',
|
default: 'Sélectionner ou créer un fournisseur...',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<p class="font-medium">Informations générales</p>
|
<p class="font-medium">Informations générales</p>
|
||||||
<p class="text-xs text-base-content/60">
|
<p class="text-xs text-base-content/60">
|
||||||
Nom, site et constructeur de la machine.
|
Nom, site et fournisseur de la machine.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span class="font-medium">Constructeur:</span>
|
<span class="font-medium">Fournisseur:</span>
|
||||||
<div v-if="!isEditMode" class="ml-2">
|
<div v-if="!isEditMode" class="ml-2">
|
||||||
<div v-if="pieceConstructeursDisplay.length" class="space-y-1">
|
<div v-if="pieceConstructeursDisplay.length" class="space-y-1">
|
||||||
<div
|
<div
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
v-else
|
v-else
|
||||||
class="w-full"
|
class="w-full"
|
||||||
:model-value="pieceConstructeurIds"
|
:model-value="pieceConstructeurIds"
|
||||||
placeholder="Sélectionner un ou plusieurs constructeurs..."
|
placeholder="Sélectionner un ou plusieurs fournisseurs..."
|
||||||
@update:model-value="handleConstructeurChange"
|
@update:model-value="handleConstructeurChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export function useConstructeurs () {
|
|||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erreur lors du chargement des constructeurs:', error)
|
console.error('Erreur lors du chargement des fournisseurs:', error)
|
||||||
return { success: false, error: error.message }
|
return { success: false, error: error.message }
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
@@ -36,14 +36,14 @@ export function useConstructeurs () {
|
|||||||
const result = await post('/constructeurs', data)
|
const result = await post('/constructeurs', data)
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
constructeurs.value = [result.data, ...constructeurs.value]
|
constructeurs.value = [result.data, ...constructeurs.value]
|
||||||
showSuccess(`Constructeur "${result.data.name}" créé`)
|
showSuccess(`Fournisseur "${result.data.name}" créé`)
|
||||||
} else if (result.error) {
|
} else if (result.error) {
|
||||||
showError(result.error)
|
showError(result.error)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erreur lors de la création du constructeur:', error)
|
console.error('Erreur lors de la création du fournisseur:', error)
|
||||||
showError('Impossible de créer le constructeur')
|
showError('Impossible de créer le fournisseur')
|
||||||
return { success: false, error: error.message }
|
return { success: false, error: error.message }
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
@@ -59,14 +59,14 @@ export function useConstructeurs () {
|
|||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
constructeurs.value[index] = result.data
|
constructeurs.value[index] = result.data
|
||||||
}
|
}
|
||||||
showSuccess(`Constructeur "${result.data.name}" mis à jour`)
|
showSuccess(`Fournisseur "${result.data.name}" mis à jour`)
|
||||||
} else if (result.error) {
|
} else if (result.error) {
|
||||||
showError(result.error)
|
showError(result.error)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erreur lors de la mise à jour du constructeur:', error)
|
console.error('Erreur lors de la mise à jour du fournisseur:', error)
|
||||||
showError('Impossible de mettre à jour le constructeur')
|
showError('Impossible de mettre à jour le fournisseur')
|
||||||
return { success: false, error: error.message }
|
return { success: false, error: error.message }
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
@@ -79,14 +79,14 @@ export function useConstructeurs () {
|
|||||||
const result = await del(`/constructeurs/${id}`)
|
const result = await del(`/constructeurs/${id}`)
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
constructeurs.value = constructeurs.value.filter(item => item.id !== id)
|
constructeurs.value = constructeurs.value.filter(item => item.id !== id)
|
||||||
showSuccess('Constructeur supprimé')
|
showSuccess('Fournisseur supprimé')
|
||||||
} else if (result.error) {
|
} else if (result.error) {
|
||||||
showError(result.error)
|
showError(result.error)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erreur lors de la suppression du constructeur:', error)
|
console.error('Erreur lors de la suppression du fournisseur:', error)
|
||||||
showError('Impossible de supprimer le constructeur')
|
showError('Impossible de supprimer le fournisseur')
|
||||||
return { success: false, error: error.message }
|
return { success: false, error: error.message }
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
|
|||||||
@@ -89,19 +89,19 @@
|
|||||||
type="text"
|
type="text"
|
||||||
class="input input-bordered input-sm md:input-md"
|
class="input input-bordered input-sm md:input-md"
|
||||||
:disabled="saving"
|
:disabled="saving"
|
||||||
placeholder="Référence interne ou constructeur"
|
placeholder="Référence interne ou fournisseur"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text">Constructeur</span>
|
<span class="label-text">Fournisseur</span>
|
||||||
</label>
|
</label>
|
||||||
<ConstructeurSelect
|
<ConstructeurSelect
|
||||||
v-model="editionForm.constructeurIds"
|
v-model="editionForm.constructeurIds"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
:disabled="saving"
|
:disabled="saving"
|
||||||
placeholder="Rechercher un ou plusieurs constructeurs..."
|
placeholder="Rechercher un ou plusieurs fournisseurs..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -62,19 +62,19 @@
|
|||||||
type="text"
|
type="text"
|
||||||
class="input input-bordered input-sm md:input-md"
|
class="input input-bordered input-sm md:input-md"
|
||||||
:disabled="submitting || !selectedType"
|
:disabled="submitting || !selectedType"
|
||||||
placeholder="Référence interne ou constructeur"
|
placeholder="Référence interne ou fournisseur"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text">Constructeur</span>
|
<span class="label-text">Fournisseur</span>
|
||||||
</label>
|
</label>
|
||||||
<ConstructeurSelect
|
<ConstructeurSelect
|
||||||
v-model="creationForm.constructeurIds"
|
v-model="creationForm.constructeurIds"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
:disabled="submitting || !selectedType"
|
:disabled="submitting || !selectedType"
|
||||||
placeholder="Rechercher un ou plusieurs constructeurs..."
|
placeholder="Rechercher un ou plusieurs fournisseurs..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div>
|
<div>
|
||||||
<h1 class="text-3xl font-bold">
|
<h1 class="text-3xl font-bold">
|
||||||
Constructeurs
|
Fournisseurs
|
||||||
</h1>
|
</h1>
|
||||||
<p class="text-sm text-gray-500">
|
<p class="text-sm text-gray-500">
|
||||||
Gérez les constructeurs et leurs coordonnées.
|
Gérez les fournisseurs et leurs coordonnées.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary" @click="openCreateModal">
|
<button class="btn btn-primary" @click="openCreateModal">
|
||||||
<IconLucidePlus class="w-4 h-4 mr-2" aria-hidden="true" />
|
<IconLucidePlus class="w-4 h-4 mr-2" aria-hidden="true" />
|
||||||
Nouveau constructeur
|
Nouveau fournisseur
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -46,11 +46,11 @@
|
|||||||
|
|
||||||
<div v-if="loading" class="py-16 text-center text-sm text-gray-500">
|
<div v-if="loading" class="py-16 text-center text-sm text-gray-500">
|
||||||
<span class="loading loading-spinner loading-lg mb-2" />
|
<span class="loading loading-spinner loading-lg mb-2" />
|
||||||
Chargement des constructeurs...
|
Chargement des fournisseurs...
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="filteredConstructeurs.length === 0" class="py-16 text-center text-sm text-gray-500">
|
<div v-else-if="filteredConstructeurs.length === 0" class="py-16 text-center text-sm text-gray-500">
|
||||||
Aucun constructeur trouvé.
|
Aucun fournisseur trouvé.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else class="overflow-x-auto">
|
<div v-else class="overflow-x-auto">
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
<dialog class="modal" :class="{ 'modal-open': modalOpen }">
|
<dialog class="modal" :class="{ 'modal-open': modalOpen }">
|
||||||
<div class="modal-box">
|
<div class="modal-box">
|
||||||
<h3 class="font-bold text-lg mb-4">
|
<h3 class="font-bold text-lg mb-4">
|
||||||
{{ editingConstructeur ? 'Modifier' : 'Nouveau' }} constructeur
|
{{ editingConstructeur ? 'Modifier' : 'Nouveau' }} fournisseur
|
||||||
</h3>
|
</h3>
|
||||||
<form class="space-y-4" @submit.prevent="saveConstructeur">
|
<form class="space-y-4" @submit.prevent="saveConstructeur">
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
@@ -211,7 +211,7 @@ const saveConstructeur = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const confirmDelete = async (constructeur) => {
|
const confirmDelete = async (constructeur) => {
|
||||||
if (!confirm(`Supprimer le constructeur "${constructeur.name}" ?`)) { return }
|
if (!confirm(`Supprimer le fournisseur "${constructeur.name}" ?`)) { return }
|
||||||
const result = await deleteConstructeur(constructeur.id)
|
const result = await deleteConstructeur(constructeur.id)
|
||||||
if (!result.success && result.error) {
|
if (!result.success && result.error) {
|
||||||
showError(result.error)
|
showError(result.error)
|
||||||
|
|||||||
@@ -137,14 +137,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="isEditMode || hasMachineConstructeur" class="form-control">
|
<div v-if="isEditMode || hasMachineConstructeur" class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text">Constructeur</span>
|
<span class="label-text">Fournisseur</span>
|
||||||
</label>
|
</label>
|
||||||
<ConstructeurSelect
|
<ConstructeurSelect
|
||||||
v-if="isEditMode"
|
v-if="isEditMode"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
:key="machine.value?.id"
|
:key="machine.value?.id"
|
||||||
:model-value="machineConstructeurIds"
|
:model-value="machineConstructeurIds"
|
||||||
placeholder="Rechercher un ou plusieurs constructeurs..."
|
placeholder="Rechercher un ou plusieurs fournisseurs..."
|
||||||
@update:modelValue="handleMachineConstructeurChange"
|
@update:modelValue="handleMachineConstructeurChange"
|
||||||
/>
|
/>
|
||||||
<div v-else class="input input-bordered bg-base-200">
|
<div v-else class="input input-bordered bg-base-200">
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
Référence : {{ findComponentById(entry.composantId)?.reference || "—" }}
|
Référence : {{ findComponentById(entry.composantId)?.reference || "—" }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Constructeur :
|
Fournisseur :
|
||||||
{{ findComponentById(entry.composantId)?.constructeur?.name || findComponentById(entry.composantId)?.constructeurName || "—" }}
|
{{ findComponentById(entry.composantId)?.constructeur?.name || findComponentById(entry.composantId)?.constructeurName || "—" }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
Référence : {{ findPieceById(entry.pieceId)?.reference || "—" }}
|
Référence : {{ findPieceById(entry.pieceId)?.reference || "—" }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Constructeur :
|
Fournisseur :
|
||||||
{{ findPieceById(entry.pieceId)?.constructeur?.name || findPieceById(entry.pieceId)?.constructeurName || "—" }}
|
{{ findPieceById(entry.pieceId)?.constructeur?.name || findPieceById(entry.pieceId)?.constructeurName || "—" }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -89,19 +89,19 @@
|
|||||||
type="text"
|
type="text"
|
||||||
class="input input-bordered input-sm md:input-md"
|
class="input input-bordered input-sm md:input-md"
|
||||||
:disabled="saving"
|
:disabled="saving"
|
||||||
placeholder="Référence interne ou constructeur"
|
placeholder="Référence interne ou fournisseur"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text">Constructeur</span>
|
<span class="label-text">Fournisseur</span>
|
||||||
</label>
|
</label>
|
||||||
<ConstructeurSelect
|
<ConstructeurSelect
|
||||||
v-model="editionForm.constructeurIds"
|
v-model="editionForm.constructeurIds"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
:disabled="saving"
|
:disabled="saving"
|
||||||
placeholder="Rechercher un ou plusieurs constructeurs..."
|
placeholder="Rechercher un ou plusieurs fournisseurs..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -62,19 +62,19 @@
|
|||||||
type="text"
|
type="text"
|
||||||
class="input input-bordered input-sm md:input-md"
|
class="input input-bordered input-sm md:input-md"
|
||||||
:disabled="submitting || !selectedType"
|
:disabled="submitting || !selectedType"
|
||||||
placeholder="Référence interne ou constructeur"
|
placeholder="Référence interne ou fournisseur"
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text">Constructeur</span>
|
<span class="label-text">Fournisseur</span>
|
||||||
</label>
|
</label>
|
||||||
<ConstructeurSelect
|
<ConstructeurSelect
|
||||||
v-model="creationForm.constructeurId"
|
v-model="creationForm.constructeurId"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
:disabled="submitting || !selectedType"
|
:disabled="submitting || !selectedType"
|
||||||
placeholder="Rechercher un constructeur..."
|
placeholder="Rechercher un fournisseur..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ const renderPrintPieces = (
|
|||||||
const constructeurBadges = (piece.constructeurs || [])
|
const constructeurBadges = (piece.constructeurs || [])
|
||||||
.map((constructeur, badgeIdx) => {
|
.map((constructeur, badgeIdx) => {
|
||||||
const suffix = piece.constructeurs.length > 1 ? ` ${badgeIdx + 1}` : ''
|
const suffix = piece.constructeurs.length > 1 ? ` ${badgeIdx + 1}` : ''
|
||||||
return `<span class="print-badge print-badge--subtle">Constructeur${suffix}: ${constructeur.name}</span>`
|
return `<span class="print-badge print-badge--subtle">Fournisseur${suffix}: ${constructeur.name}</span>`
|
||||||
})
|
})
|
||||||
.join('')
|
.join('')
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ const renderPrintPieces = (
|
|||||||
${piece.description ? `<p class="print-piece-description">${piece.description}</p>` : ''}
|
${piece.description ? `<p class="print-piece-description">${piece.description}</p>` : ''}
|
||||||
<div class="print-piece-meta">
|
<div class="print-piece-meta">
|
||||||
<div class="print-field-mini">
|
<div class="print-field-mini">
|
||||||
<label>Constructeur(s)</label>
|
<label>Fournisseur(s)</label>
|
||||||
<span>${piece.constructeurs?.length
|
<span>${piece.constructeurs?.length
|
||||||
? piece.constructeurs.map(constructeur => constructeur.name).join(', ')
|
? piece.constructeurs.map(constructeur => constructeur.name).join(', ')
|
||||||
: '—'}</span>
|
: '—'}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user