fix: ui actions in proposals & load publish
This commit is contained in:
@@ -53,7 +53,7 @@
|
||||
<VehicleInfo
|
||||
v-if="load.vehicle"
|
||||
:vehicle="load.vehicle"
|
||||
:driver="load.driver"
|
||||
:driver="load?.driver"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -14,8 +14,6 @@ import { useI18n } from 'vue-i18n';
|
||||
}
|
||||
})
|
||||
|
||||
console.log(props.vehicle)
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
const isShow = ref(false);
|
||||
@@ -26,10 +24,13 @@ import { useI18n } from 'vue-i18n';
|
||||
|
||||
const driver = computed(() => {
|
||||
if(props?.driver) {
|
||||
return !props?.driver ? 'No definido'
|
||||
: props?.driver.first_name + ' ' + props?.driver.last_name
|
||||
return !props?.driver
|
||||
? 'No definido'
|
||||
: props?.driver?.first_name + ' ' + props?.driver?.last_name
|
||||
} else {
|
||||
return props.vehicle.driver.first_name + ' ' + props.vehicle.driver.last_name;
|
||||
return !props.vehicle?.driver?.first_name
|
||||
? 'No definido'
|
||||
: props.vehicle?.driver?.first_name + ' ' + props.vehicle?.driver?.last_name;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -277,6 +277,9 @@
|
||||
product: formLoad.terms?.length <= 0 ? null : formLoad.terms,
|
||||
origin_warehouse: locationLoadSelected.value,
|
||||
destination_warehouse: locationDownloadSelected.value,
|
||||
carrier: loadStore?.currentLoad?.carrier || null,
|
||||
vehicle: loadStore?.currentLoad?.vehicle || null,
|
||||
driver: loadStore?.currentLoad?.driver || null,
|
||||
};
|
||||
if(resp) {
|
||||
const index = loadStore.loads.findIndex((load) => load._id === resp._id);
|
||||
@@ -614,9 +617,11 @@
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-dark"
|
||||
:class="[loadStore.currentLoad?.status !== 'Draft' ? 'btn-primary-sm radius-sm' : '']"
|
||||
@click="handleSave"
|
||||
>{{ t('buttons.save') }}</button>
|
||||
<button
|
||||
v-if="loadStore.currentLoad?.status === 'Draft'"
|
||||
type="submit"
|
||||
@click.prevent="handlePostLoad"
|
||||
class="btn-primary-sm radius-sm"
|
||||
|
||||
@@ -42,8 +42,6 @@
|
||||
vehicle: proposal.vehicle._id,
|
||||
}
|
||||
|
||||
console.log(proposal)
|
||||
|
||||
isLoadingActions.value = true;
|
||||
let load = await loadsStore.updateLoad(load_id, loadData);
|
||||
if(load != null) {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
import { useAuthStore } from '../../../stores/auth';
|
||||
import { useLoadsStore } from '../../../stores/loads';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { computed } from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
proposal: {
|
||||
@@ -77,13 +78,16 @@
|
||||
loadsStore.currentLoad = props.proposal.load;
|
||||
loadsStore.openAttachmentsModal = true;
|
||||
}
|
||||
|
||||
const enablePermission = computed(() => props.proposal?.load?.load_status === 'Published'
|
||||
&& (authStore.user?.job_role === 'owner' || authStore.user?.job_role === 'manager'));
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="card-fixed card-load mt-4">
|
||||
<br>
|
||||
<div class="box-proposal">
|
||||
<div class="">
|
||||
<div v-if="proposal.vehicle">
|
||||
<p v-if="proposal.vehicle"><span>{{ t('labels.codeId') }}:</span> {{proposal.vehicle.vehicle_code?.toUpperCase()}}</p>
|
||||
<p v-if="proposal.load"><span>{{ t('global.segment') }}:</span> {{proposal.load.categories?.map((e) => e.name).join(', ')}}</p>
|
||||
<p v-if="proposal.vehicle"><span>{{ t('directory.typeTruck') }}:</span> {{proposal.vehicle.truck_type}}</p>
|
||||
@@ -91,10 +95,16 @@
|
||||
<p v-if="proposal.vehicle?.is_available"><span>{{ t('labels.dateAvailable') }}:</span> {{ getDateOnly(proposal.vehicle.available_date) }}</p>
|
||||
<p v-if="proposal.vehicle?.is_available"><span>{{ t('vehicles.availableIn') }}:</span> {{proposal.vehicle.city}}<template v-if="proposal.vehicle.state">, {{proposal.vehicle.state}}</template></p>
|
||||
<p v-if="proposal.vehicle"><span>{{ t('loads.destination') }}:</span> {{proposal.vehicle?.destino.replace(';', ', ')}}</p>
|
||||
<p><span>{{ t('vehicles.truckPlates') }}:</span> {{ proposal.vehicle.circulation_serial_number }}</p>
|
||||
<p v-if="proposal.vehicle?.circulation_serial_number"><span>{{ t('vehicles.truckPlates') }}:</span> {{ proposal.vehicle?.circulation_serial_number }}</p>
|
||||
<p v-if="proposal.vehicle"><span>{{ t('vehicles.trailerPlates') }} 1:</span> {{proposal.vehicle.trailer_plate_1}}</p>
|
||||
<p v-if="proposal.vehicle"><span>{{ t('vehicles.trailerPlates') }} 2:</span> {{proposal.vehicle.trailer_plate_2}}</p>
|
||||
</div>
|
||||
<div v-else
|
||||
class="no-data"
|
||||
>
|
||||
<i class="fa-regular fa-face-frown"></i>
|
||||
<p>Sin vehiculo asignado o el vehiculo ya no existe</p>
|
||||
</div>
|
||||
|
||||
<div class="" v-if="proposal.load">
|
||||
<p v-if="proposal.load"> <span>{{ t('loads.loadCode') }}: </span>
|
||||
@@ -128,6 +138,12 @@
|
||||
<p v-if="proposal._driver">{{ t('labels.operator') }}: {{proposal._driver}}</p>
|
||||
|
||||
</div>
|
||||
<div v-else
|
||||
class="no-data"
|
||||
>
|
||||
<i class="fa-regular fa-face-frown"></i>
|
||||
<p>La carga fue eliminada</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-row">
|
||||
<button
|
||||
@@ -145,7 +161,7 @@
|
||||
</div>
|
||||
<button
|
||||
v-else
|
||||
v-if="authStore.user?.job_role === 'owner' || authStore.user?.job_role === 'manager'"
|
||||
v-if="enablePermission"
|
||||
type="button"
|
||||
class="btn btn-danger radius-sm"
|
||||
@click="handleWithdrawnProposal"
|
||||
@@ -154,7 +170,7 @@
|
||||
{{ t('proposals.withdraw') }}
|
||||
</button>
|
||||
<button
|
||||
v-if="authStore.user?.job_role === 'owner' || authStore.user?.job_role === 'manager'"
|
||||
v-if="enablePermission"
|
||||
class="btn-primary-sm radius-sm"
|
||||
@click="$emit('set-proposal', {proposal: proposal, modal: 'edit'})"
|
||||
data-toggle="modal" data-target="#makeProposalModal"
|
||||
@@ -235,6 +251,23 @@
|
||||
border-radius: 13px;
|
||||
}
|
||||
|
||||
.no-data {
|
||||
align-content: center;
|
||||
text-align: center;
|
||||
gap: 1rem;
|
||||
padding: 1rem;
|
||||
}
|
||||
.no-data p{
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2rem;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.no-data i{
|
||||
font-size: 2.5rem;
|
||||
color: #e3a11e;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.box-proposal {
|
||||
flex-direction: column-reverse;
|
||||
|
||||
Reference in New Issue
Block a user