add: asign driver to vehicle
This commit is contained in:
@@ -2,28 +2,85 @@
|
||||
import { onMounted, ref } from 'vue';
|
||||
import { useCompanyStore } from '../stores/company';
|
||||
import Spiner from './ui/Spiner.vue';
|
||||
import { useVehiclesStore } from '../stores/vehicles';
|
||||
import Swal from 'sweetalert2';
|
||||
|
||||
const props = defineProps({
|
||||
driver: {
|
||||
type: Object
|
||||
vehicle: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
defineEmits(['reset-vehicle']);
|
||||
|
||||
const companyStore = useCompanyStore();
|
||||
const vehicleStore = useVehiclesStore();
|
||||
|
||||
const driverSelected = ref(null);
|
||||
const drivers = ref([]);
|
||||
const error = ref(null)
|
||||
const loading = ref(false);
|
||||
|
||||
onMounted(() => {
|
||||
drivers.value = companyStore.users?.filter((u) => u.job_role == 'driver');
|
||||
if(props.driver) {
|
||||
const index = drivers.value.findIndex((d) => d._id === props.driver?._id);
|
||||
if(props?.vehicle?.driver) {
|
||||
const index = drivers.value.findIndex((d) => d._id === props.vehicle.driver?._id);
|
||||
driverSelected.value = drivers.value[index];
|
||||
}
|
||||
});
|
||||
|
||||
const handleSetDriver = async() => {
|
||||
if(driverSelected.value === null) {
|
||||
error.value = 'Seleccione un conductor';
|
||||
return
|
||||
}
|
||||
|
||||
let vehicle_id = props.vehicle._id;
|
||||
let driver_id = driverSelected.value._id;
|
||||
|
||||
let vehicleData ={
|
||||
driver : driverSelected.value
|
||||
}
|
||||
loading.value = true;
|
||||
const result = await vehicleStore.updateVehicleCompany(vehicle_id, vehicleData, vehicleData);
|
||||
|
||||
if( result === 'success' ) {
|
||||
//Actualizamos el vehiculo
|
||||
let userData = {
|
||||
vehicle : vehicle_id
|
||||
}
|
||||
|
||||
let localUser = {
|
||||
categories: driverSelected.value.categories,
|
||||
}
|
||||
|
||||
const result2 = await companyStore.updateUserCompany(driver_id, userData, localUser);
|
||||
if(result2 === 'success' ){
|
||||
document.getElementById('btnCloseeditDriverVehicle').click();
|
||||
Swal.fire({
|
||||
title: `<strong>Driver asignado con éxito!</strong>`,
|
||||
icon: 'success'
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
title: result2,
|
||||
icon: 'error'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
Swal.fire({
|
||||
title: result,
|
||||
icon: 'error'
|
||||
})
|
||||
}
|
||||
|
||||
loading.value = false;
|
||||
|
||||
//Continua en la lina 568 web_main
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
@@ -56,20 +113,25 @@
|
||||
<option disabled value="">-- Seleccionar conductor --</option>
|
||||
<option v-for="driver in drivers" :value="driver">{{driver.name}}</option>
|
||||
</select>
|
||||
<span class="error-msg" v-if="error">{{ error }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-dark radius-sm"
|
||||
data-dismiss="modal"
|
||||
@click="$emit('reset-vehicle')"
|
||||
>Cancelar</button>
|
||||
<button
|
||||
class="btn-primary-sm radius-sm"
|
||||
>
|
||||
<span class="clear-xsm">Guardar</span>
|
||||
</button>
|
||||
<Spiner v-if="loading"/>
|
||||
<div v-else class="btns-footer">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-dark radius-sm"
|
||||
data-dismiss="modal"
|
||||
@click="$emit('reset-vehicle')"
|
||||
>Cancelar</button>
|
||||
<button
|
||||
class="btn-primary-sm radius-sm"
|
||||
@click="handleSetDriver"
|
||||
>
|
||||
<span class="clear-xsm">Guardar</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -82,4 +144,9 @@
|
||||
flex-direction: column;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.btns-footer {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user