fix: drivers list & remove drive asign
This commit is contained in:
@@ -386,6 +386,7 @@ const en = {
|
|||||||
segments: 'Transportation segment',
|
segments: 'Transportation segment',
|
||||||
destinationState: 'Destination state',
|
destinationState: 'Destination state',
|
||||||
destinationCity: 'Destination city',
|
destinationCity: 'Destination city',
|
||||||
|
unassigned: 'Unassigned',
|
||||||
|
|
||||||
titleDel: 'Delete vehicle',
|
titleDel: 'Delete vehicle',
|
||||||
textDel: 'Are you sure to delete this vehicle?',
|
textDel: 'Are you sure to delete this vehicle?',
|
||||||
@@ -398,6 +399,7 @@ const en = {
|
|||||||
assignedDriver: 'Assigned driver',
|
assignedDriver: 'Assigned driver',
|
||||||
selectDriver: 'Select driver',
|
selectDriver: 'Select driver',
|
||||||
msgAssigedDriver: 'Driver assigned successfully!',
|
msgAssigedDriver: 'Driver assigned successfully!',
|
||||||
|
msgRomveDriver: 'Driver successfully removed from vehicle!',
|
||||||
|
|
||||||
changeStatus: 'Change vehicle status',
|
changeStatus: 'Change vehicle status',
|
||||||
statusVehicle: 'Vehicle status',
|
statusVehicle: 'Vehicle status',
|
||||||
|
|||||||
@@ -393,6 +393,7 @@ const es = {
|
|||||||
segments: 'Segmento del transporte',
|
segments: 'Segmento del transporte',
|
||||||
destinationState: 'Estado de destino',
|
destinationState: 'Estado de destino',
|
||||||
destinationCity: 'Ciudad de destino',
|
destinationCity: 'Ciudad de destino',
|
||||||
|
unassigned: 'Sin asignar',
|
||||||
|
|
||||||
titleDel: 'Eliminar vehiculo',
|
titleDel: 'Eliminar vehiculo',
|
||||||
textDel: '¿Estás seguro de eliminar este vehiculo?',
|
textDel: '¿Estás seguro de eliminar este vehiculo?',
|
||||||
@@ -405,6 +406,7 @@ const es = {
|
|||||||
assignedDriver: 'Conductor asignado',
|
assignedDriver: 'Conductor asignado',
|
||||||
selectDriver: 'Seleccionar conductor',
|
selectDriver: 'Seleccionar conductor',
|
||||||
msgAssigedDriver: 'Conductor asignado con éxito!',
|
msgAssigedDriver: 'Conductor asignado con éxito!',
|
||||||
|
msgRomveDriver: 'Conductor removido del vehiculo con éxito!',
|
||||||
|
|
||||||
changeStatus: 'Cambiar status vehiculo',
|
changeStatus: 'Cambiar status vehiculo',
|
||||||
statusVehicle: 'Estado del vehiculo',
|
statusVehicle: 'Estado del vehiculo',
|
||||||
|
|||||||
@@ -90,24 +90,24 @@ export const useCompanyStore = defineStore('company', () => {
|
|||||||
const updateUserCompany = async(id, formData, localData) => {
|
const updateUserCompany = async(id, formData, localData) => {
|
||||||
const data = await updateUser(id, formData);
|
const data = await updateUser(id, formData);
|
||||||
if(data) {
|
if(data) {
|
||||||
const index = users.value.findIndex((user) => user._id === id);
|
const index = users.value.findIndex((user) => user._id === id); /// Actualizamos la lista de usuarios globales
|
||||||
if(index !== -1) {
|
if(index !== -1) {
|
||||||
users.value[index] = {
|
users.value[index] = {
|
||||||
...users.value[index],
|
...users.value[index],
|
||||||
...data,
|
...data,
|
||||||
...localData
|
...localData
|
||||||
};
|
};
|
||||||
|
}
|
||||||
if(data.job_role === 'driver' && drivers.value.length > 0) { // Actualizamos en la lista drivers
|
if(data.job_role === 'driver' && drivers.value.length > 0) { // Actualizamos en la lista drivers
|
||||||
const indexd = drivers.value.findIndex((user) => user._id === id);
|
const index = drivers.value.findIndex((user) => user._id === id);
|
||||||
if(indexd !== -1) {
|
if(index !== -1) {
|
||||||
drivers.value[indexd] = {
|
drivers.value[index] = {
|
||||||
...drivers.value[index],
|
...drivers.value[index],
|
||||||
...data,
|
...data,
|
||||||
...localData
|
...localData
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return 'success';
|
return 'success';
|
||||||
} else {
|
} else {
|
||||||
return t('errors.generic');
|
return t('errors.generic');
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
watch(selectedState, () => {
|
watch(selectedState, () => {
|
||||||
if(selectedState.value != null){
|
if(selectedState.value != null){
|
||||||
setFilterUnlimited()
|
setFilterUnlimited()
|
||||||
filterQuery.value.state = "state[$in][]="+ selectedState.value.state_name;
|
filterQuery.value.state = "available_in[$regex]="+ selectedState.value.state_name;
|
||||||
getVehiclesPublished(filterQuery.value);
|
getVehiclesPublished(filterQuery.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
watch(selectedCities, () => {
|
watch(selectedCities, () => {
|
||||||
if(selectedCities.value != null){
|
if(selectedCities.value != null){
|
||||||
setFilterUnlimited()
|
setFilterUnlimited()
|
||||||
filterQuery.value.city = "city[$regex]="+ selectedCities.value.city_name;
|
filterQuery.value.city = "available_in[$regex]="+ selectedCities.value.city_name;
|
||||||
getVehiclesPublished(filterQuery.value);
|
getVehiclesPublished(filterQuery.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -149,6 +149,8 @@
|
|||||||
filterQuery.value.limit = "elements="+ 100;
|
filterQuery.value.limit = "elements="+ 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Importante: comprueba que el nuevo vehículo esté disponible y libre de cargas activas para garantizar una logística sin contratiempos.
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@@ -24,14 +24,15 @@
|
|||||||
const drivers = ref([]);
|
const drivers = ref([]);
|
||||||
const error = ref(null)
|
const error = ref(null)
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
const currentDriver = ref(null);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
drivers.value = companyStore.drivers;
|
drivers.value = companyStore.drivers.filter((e) => (e.vehicle === undefined || e.vehicle === null))
|
||||||
if(props?.vehicle?.driver) {
|
if(props?.vehicle?.driver) {
|
||||||
const index = drivers.value.findIndex((d) => d._id === props.vehicle.driver?._id);
|
const index = companyStore.drivers.findIndex((d) => d._id === props.vehicle.driver?._id);
|
||||||
driverSelected.value = drivers.value[index];
|
driverSelected.value = companyStore.drivers[index];
|
||||||
} else {
|
currentDriver.value = driverSelected.value;
|
||||||
drivers.value = companyStore.drivers.filter((e) => !e.vehicle)
|
drivers.value.push(driverSelected.value)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -42,13 +43,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
let vehicle_id = props.vehicle._id;
|
let vehicle_id = props.vehicle._id;
|
||||||
let driver_id = driverSelected.value._id;
|
let driver_id = driverSelected.value === 'remove'
|
||||||
|
? currentDriver.value._id
|
||||||
|
: driverSelected.value._id;
|
||||||
|
|
||||||
let vehicleData ={
|
let vehicleData ={
|
||||||
driver : driverSelected.value
|
driver : driverSelected.value === 'remove' ? null : driverSelected.value
|
||||||
}
|
}
|
||||||
let localData ={
|
let localData ={
|
||||||
driver : driverSelected.value,
|
driver : driverSelected.value === 'remove' ? null : driverSelected.value,
|
||||||
categories: props.vehicle.categories
|
categories: props.vehicle.categories
|
||||||
}
|
}
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
@@ -57,7 +60,7 @@
|
|||||||
if( result === 'success' ) {
|
if( result === 'success' ) {
|
||||||
//Actualizamos el vehiculo
|
//Actualizamos el vehiculo
|
||||||
let userData = {
|
let userData = {
|
||||||
vehicle : vehicle_id
|
vehicle : driverSelected.value === 'remove' ? null : vehicle_id
|
||||||
}
|
}
|
||||||
|
|
||||||
let localUser = {
|
let localUser = {
|
||||||
@@ -68,7 +71,7 @@
|
|||||||
if(result2 === 'success' ){
|
if(result2 === 'success' ){
|
||||||
document.getElementById('btnCloseeditDriverVehicle').click();
|
document.getElementById('btnCloseeditDriverVehicle').click();
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: `<strong>${t('vehicles.msgAssigedDriver')}</strong>`,
|
title: `<strong>${driverSelected.value === 'remove' ? t('vehicles.msgRomveDriver') : t('vehicles.msgAssigedDriver')}</strong>`,
|
||||||
icon: 'success'
|
icon: 'success'
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -117,6 +120,8 @@
|
|||||||
v-model="driverSelected"
|
v-model="driverSelected"
|
||||||
>
|
>
|
||||||
<option disabled value="">-- {{ t('vehicles.selectDriver') }} --</option>
|
<option disabled value="">-- {{ t('vehicles.selectDriver') }} --</option>
|
||||||
|
<option v-if="driverSelected !== null"
|
||||||
|
value="remove">{{ t('vehicles.unassigned') }}</option>
|
||||||
<option v-for="driver in drivers" :value="driver">{{driver.first_name}} {{ driver.last_name }}</option>
|
<option v-for="driver in drivers" :value="driver">{{driver.first_name}} {{ driver.last_name }}</option>
|
||||||
</select>
|
</select>
|
||||||
<span class="error-msg mt-2" v-if="error">{{ error }}</span>
|
<span class="error-msg mt-2" v-if="error">{{ error }}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user