add: share load

This commit is contained in:
Alexandro Uc Santos
2024-10-21 21:31:27 -06:00
parent 6dae5d9574
commit c8bbcdaad2
7 changed files with 193 additions and 16 deletions

View File

@@ -24,6 +24,11 @@
type: Boolean,
required: false,
default: true
},
share: {
type: Boolean,
required: false,
default: false
}
});
@@ -90,6 +95,22 @@
window.open('/publico/tracking/' + code, '_blank');
}
const sharePost = () => {
const url = `https://console.etaviaporte.com/publico/carga/${props.load._id}`;
const title = "";
navigator.share({
title: title,
url: url,
})
.then(() => {
console.log("Enlace compartido con éxito");
})
.catch((error) => {
console.log('Usuario cancelo')
});
}
</script>
<template>
@@ -161,7 +182,7 @@
{{ load.notes }}
</div>
<div class="btn-row">
<button v-if="load.status !== 'Draft' && load.load_status !== 'Published' && load.load_status !== 'Loading' && !tracking"
<button v-if="load.status !== 'Draft' && load.load_status !== 'Published' && load.load_status !== 'Loading' && !tracking && !share"
type="button"
data-toggle="modal" data-target="#attachmentModal"
class="btn-primary-sm"
@@ -171,12 +192,15 @@
{{ t('evidence.evidence') }}
</button>
</div>
<div class="btn-row" v-if="load?.company?._id === authStore?.user?.company._id">
<button
v-if="(authStore.user?.job_role === 'owner' || authStore.user?.job_role === 'manager') || authStore.user._id === props.load.posted_by"
class="btn-primary-sm bg-danger"
@click="handleDeleteLoad"
><i class="fa-solid fa-ban clear-sm"></i> {{ t('buttons.cancel') }}</button>
<div class="btn-row" v-if="load?.company?._id === authStore?.user?.company._id && !share">
<button v-if="load.status !== 'Draft' && load.load_status !== 'Delivered'"
type="button"
class="btn-primary-sm"
@click="sharePost"
>
<i class="fa-solid fa-share-nodes"></i>
<span class="clear-sm ms-1">{{t('buttons.share')}}</span>
</button>
<button v-if="load.status !== 'Draft' && load.load_status !== 'Published' && load.load_status !== 'Loading'"
type="button"
data-toggle="modal" data-target="#attachmentModal"
@@ -184,14 +208,25 @@
@click="openAttachmentsModal"
>
<i class="fa-solid fa-image"></i>
{{ t('evidence.evidence') }}
<span class="clear-sm ms-1">{{ t('evidence.evidence') }}</span>
</button>
<button
v-if="(authStore.user?.job_role === 'owner' || authStore.user?.job_role === 'manager') || authStore.user._id === props.load.posted_by"
class="btn-primary-sm"
class="btn-primary-sm bg-danger"
@click="handleDeleteLoad"
>
<i class="fa-solid fa-trash"></i>
<span class="clear-sm ms-1">{{ t('buttons.cancel') }}</span>
</button>
<button
v-if="(authStore.user?.job_role === 'owner' || authStore.user?.job_role === 'manager') || authStore.user._id === props.load.posted_by"
class="btn-primary-sm bg-dark"
data-toggle="modal" data-target="#formLoadModal"
@click="openEditModal"
><i class="fa-solid fa-pen-to-square clear-sm"></i> {{t('loads.editLoad')}}</button>
>
<i class="fa-solid fa-pen-to-square"></i>
<span class="clear-sm ms-1">{{t('loads.editLoad')}}</span>
</button>
<button
v-if="load.status !== 'Draft'"
class="btn-primary-sm"
@@ -200,7 +235,7 @@
data-target="#proposalsModal"
>#{{ load.no_of_proposals }} {{t('loads.offers')}}</button>
</div>
<div class="btn-row" v-if="readOnly && authStore.user?.permissions === 'role_carrier'">
<div class="btn-row" v-if="readOnly && authStore.user?.permissions === 'role_carrier' || share">
<button
class="btn-primary-sm bg-dark"
data-toggle="modal"

View File

@@ -82,7 +82,7 @@
<p><span>{{ t('labels.userRole') }}: </span>{{ getTypeUser(user.job_role, locale) }}</p>
<p><span>{{ t('labels.phone1') }}: </span>
{{user.phone}}
<a :href="whatsappLink" target="_blank">
<a v-if="readonly" :href="whatsappLink" target="_blank">
<i class="fab fa-whatsapp whatsapp"></i> <!-- Usando FontAwesome para el icono de WhatsApp -->
</a>
</p>

View File

@@ -60,12 +60,13 @@
});
const initData = async() => {
const companyId = localStorage.getItem('id');
isLoading.value = true;
let filterQuery = [];
filterQuery.company = "company="+ authStore.user.company._id
// filterQuery.company = "company="+ authStore.user.company._id
filterQuery.company = "company="+companyId
await vehiclesStore.fetchVehicles(filterQuery);
if(!props.proposal) {
// vehiclesAvailable.value = vehiclesStore.vehicles.filter((vehicle) => vehicle.is_available);
vehiclesAvailable.value = vehiclesStore.vehicles;
} else {
// vehiclesAvailable.value = vehiclesStore.vehicles.filter((vehicle) => vehicle._id === props.proposal.vehicle._id);