feat: add constructors selection and management
This commit is contained in:
@@ -78,11 +78,12 @@ export function useComposants() {
|
||||
try {
|
||||
const result = await patch(`/composants/${id}`, composantData)
|
||||
if (result.success) {
|
||||
const updated = result.data
|
||||
const index = composants.value.findIndex(comp => comp.id === id)
|
||||
if (index !== -1) {
|
||||
composants.value[index] = result.data
|
||||
composants.value[index] = updated
|
||||
}
|
||||
showSuccess(`Composant "${composantData.name}" mis à jour avec succès`)
|
||||
showSuccess(`Composant "${updated?.name || composantData.name || ''}" mis à jour avec succès`)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
@@ -131,4 +132,4 @@ export function useComposants() {
|
||||
getComposants,
|
||||
isLoading
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
108
app/composables/useConstructeurs.js
Normal file
108
app/composables/useConstructeurs.js
Normal file
@@ -0,0 +1,108 @@
|
||||
import { ref } from 'vue'
|
||||
import { useApi } from './useApi'
|
||||
import { useToast } from './useToast'
|
||||
|
||||
const constructeurs = ref([])
|
||||
const loading = ref(false)
|
||||
|
||||
export function useConstructeurs() {
|
||||
const { get, post, patch, delete: del } = useApi()
|
||||
const { showSuccess, showError } = useToast()
|
||||
|
||||
const loadConstructeurs = async (search = '') => {
|
||||
loading.value = true
|
||||
try {
|
||||
const query = search ? `?search=${encodeURIComponent(search)}` : ''
|
||||
const result = await get(`/constructeurs${query}`)
|
||||
if (result.success) {
|
||||
constructeurs.value = result.data
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
console.error('Erreur lors du chargement des constructeurs:', error)
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const searchConstructeurs = async (search = '') => {
|
||||
return loadConstructeurs(search)
|
||||
}
|
||||
|
||||
const createConstructeur = async (data) => {
|
||||
loading.value = true
|
||||
try {
|
||||
const result = await post('/constructeurs', data)
|
||||
if (result.success) {
|
||||
constructeurs.value = [result.data, ...constructeurs.value]
|
||||
showSuccess(`Constructeur "${result.data.name}" créé`)
|
||||
} else if (result.error) {
|
||||
showError(result.error)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la création du constructeur:', error)
|
||||
showError("Impossible de créer le constructeur")
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const updateConstructeur = async (id, data) => {
|
||||
loading.value = true
|
||||
try {
|
||||
const result = await patch(`/constructeurs/${id}`, data)
|
||||
if (result.success) {
|
||||
const index = constructeurs.value.findIndex(item => item.id === id)
|
||||
if (index !== -1) {
|
||||
constructeurs.value[index] = result.data
|
||||
}
|
||||
showSuccess(`Constructeur "${result.data.name}" mis à jour`)
|
||||
} else if (result.error) {
|
||||
showError(result.error)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la mise à jour du constructeur:', error)
|
||||
showError("Impossible de mettre à jour le constructeur")
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const deleteConstructeur = async (id) => {
|
||||
loading.value = true
|
||||
try {
|
||||
const result = await del(`/constructeurs/${id}`)
|
||||
if (result.success) {
|
||||
constructeurs.value = constructeurs.value.filter(item => item.id !== id)
|
||||
showSuccess('Constructeur supprimé')
|
||||
} else if (result.error) {
|
||||
showError(result.error)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la suppression du constructeur:', error)
|
||||
showError("Impossible de supprimer le constructeur")
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const getConstructeurById = (id) => constructeurs.value.find(item => item.id === id)
|
||||
|
||||
return {
|
||||
constructeurs,
|
||||
loading,
|
||||
loadConstructeurs,
|
||||
searchConstructeurs,
|
||||
createConstructeur,
|
||||
updateConstructeur,
|
||||
deleteConstructeur,
|
||||
getConstructeurById,
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,7 @@ export function useMachines() {
|
||||
if (index !== -1) {
|
||||
machines.value[index] = result.data
|
||||
}
|
||||
showSuccess(`Machine "${machineData.name}" mise à jour avec succès`)
|
||||
showSuccess(`Machine "${result.data?.name || machineData.name || ''}" mise à jour avec succès`)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
@@ -120,4 +120,4 @@ export function useMachines() {
|
||||
getMachines,
|
||||
isLoading
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,11 +78,12 @@ export function usePieces() {
|
||||
try {
|
||||
const result = await patch(`/pieces/${id}`, pieceData)
|
||||
if (result.success) {
|
||||
const updated = result.data
|
||||
const index = pieces.value.findIndex(piece => piece.id === id)
|
||||
if (index !== -1) {
|
||||
pieces.value[index] = result.data
|
||||
pieces.value[index] = updated
|
||||
}
|
||||
showSuccess(`Pièce "${pieceData.name}" mise à jour avec succès`)
|
||||
showSuccess(`Pièce "${updated?.name || pieceData.name || ''}" mise à jour avec succès`)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
@@ -131,4 +132,4 @@ export function usePieces() {
|
||||
getPieces,
|
||||
isLoading
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user