diff --git a/src/components/CardFaq.vue b/src/components/CardFaq.vue new file mode 100644 index 0000000..d62887e --- /dev/null +++ b/src/components/CardFaq.vue @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/src/components/CardLoad.vue b/src/components/CardLoad.vue index e713656..e0d8ce0 100644 --- a/src/components/CardLoad.vue +++ b/src/components/CardLoad.vue @@ -134,7 +134,7 @@

Fecha de descarga: {{getDateMonthDay(load.est_unloading_date) }}

-

Segmento: {{ load._categories }}

+

Segmento: {{ load.categories?.map((e) => e.name).join(', ') }}

Código de carga: {{ load.shipment_code }} diff --git a/src/components/Footer.vue b/src/components/Footer.vue index 564f919..1a741f5 100644 --- a/src/components/Footer.vue +++ b/src/components/Footer.vue @@ -19,8 +19,9 @@

- Aviso de privacidad - Terminos y condiciones + Aviso de privaciadad + Términos y condiciones + Faqs

2023 ETA VIAPORTE | TODOS LOS DERECHOS RESERVADOS

diff --git a/src/components/FormLoadModal.vue b/src/components/FormLoadModal.vue index 8fcb3b6..02d913a 100644 --- a/src/components/FormLoadModal.vue +++ b/src/components/FormLoadModal.vue @@ -39,7 +39,6 @@ const errors = ref({ segment: null, - product: null, truckType: null, cityOrigin: null, stateOrigin: null, @@ -78,9 +77,12 @@ //origin_formatted_address if(loadStore.currentLoad){ formLoad.price = loadStore.currentLoad.actual_cost; - formLoad.segment = loadStore.currentLoad.categories.map(m =>{ + formLoad.segment = loadStore.currentLoad.categories?.length <= 0 ? [] : loadStore.currentLoad.categories.map(m =>{ return m; }); + // formLoad.segment = loadStore.currentLoad.categories?.length <= 0 ? null : loadStore.currentLoad.categories.map(m =>{ + // return m; + // }); startLocation.value = loadStore.currentLoad.origin_formatted_address; endLocation.value = loadStore.currentLoad.destination_formatted_address; formLoad.terms = loadStore.currentLoad.product; @@ -89,20 +91,20 @@ formLoad.weight = loadStore.currentLoad.weight; formLoad.dateLoad = loadStore.currentLoad.est_loading_date?.substring(0, 10); formLoad.dateDownload = loadStore.currentLoad.est_unloading_date?.substring(0, 10); - formLoad.truckType = {meta_value: loadStore.currentLoad.truck_type}; + formLoad.truckType = loadStore.currentLoad.truck_type ? {meta_value: loadStore.currentLoad.truck_type} : null; origin.locationName = loadStore.currentLoad.origin.company_name; origin.address = loadStore.currentLoad.origin.street_address1; - origin.state = { state_name: loadStore.currentLoad.origin.state }; - origin.city = { city_name: loadStore.currentLoad.origin.city }; + origin.state = loadStore.currentLoad.origin?.state ? { state_name: loadStore.currentLoad.origin.state } : null; + origin.city = loadStore.currentLoad.origin?.city ? { city_name: loadStore.currentLoad.origin.city } : null; origin.country = loadStore.currentLoad.origin.country; origin.postalCode = loadStore.currentLoad.origin.zipcode; origin.ref = loadStore.currentLoad.origin.landmark; destination.locationName = loadStore.currentLoad.destination.company_name; destination.address = loadStore.currentLoad.destination.street_address1; - destination.state = { state_name: loadStore.currentLoad.destination.state }; - destination.city = { city_name: loadStore.currentLoad.destination.city }; + destination.state = loadStore.currentLoad.destination?.state ? { state_name: loadStore.currentLoad.destination.state } : null; + destination.city = loadStore.currentLoad.destination?.city ? { city_name: loadStore.currentLoad.destination.city } : null; destination.country = loadStore.currentLoad.destination.country; destination.postalCode = loadStore.currentLoad.destination.zipcode; destination.ref = loadStore.currentLoad.destination.landmark; @@ -110,27 +112,21 @@ } watch(origin, async() => { - // console.log(origin); - if(origin.address && origin.city && origin.state) { + if(origin.city && origin.state) { startLocation.value = origin.address + ', ' + origin.city.city_name + ', ' + origin.state.state_name + ', ' + origin.country + ', ' +origin.postalCode; originCoords.value = await geocodeAddress(startLocation.value); - // console.log('Origin:') - // console.log(originCoords.value) } }) watch(destination, async() => { - if(destination.address && destination.city && destination.state) { + if(destination.city && destination.state) { endLocation.value = destination.address + ', ' + destination.city.city_name + ', ' + destination.state.state_name + ', ' + destination.country + ', ' +destination.postalCode; destinationCoords.value = await geocodeAddress(endLocation.value); - // console.log('Destination:') - // console.log(destinationCoords.value); } }) }) watch(locationLoadSelected, () => { - console.log(locationLoadSelected); origin.locationName = locationLoadSelected.value.branch_name; origin.address = locationLoadSelected.value.address; origin.state = { state_name: locationLoadSelected.value.state }; @@ -167,8 +163,8 @@ dateLoad: '', dateDownload: '', segment: [], - truckType: [], - terms: [], + truckType: '', + terms: '', price: 0, weight: 0, notes: '', @@ -198,32 +194,32 @@ const setLoadData = () => { let loadData = { actual_cost: formLoad.price, - truck_type: formLoad.truckType.meta_value || null, + truck_type: formLoad.truckType?.meta_value || null, est_loading_date : formLoad.dateLoad, est_unloading_date : formLoad.dateDownload, notes : formLoad.notes, weight : formLoad.weight, - product: formLoad.terms.length <= 0 ? null : formLoad.terms, + product: formLoad.terms?.length <= 0 ? null : formLoad.terms, categories: formLoad.segment || null, origin:{ - company_name : origin.locationName, - street_address1 : origin.address, - state : origin.state.state_name, - city : origin.city.city_name, - country : origin.country, - landmark : origin.ref, - zipcode : origin.postalCode, + company_name : origin?.locationName, + street_address1 : origin?.address, + state : origin.state?.state_name, + city : origin.city?.city_name, + country : origin?.country, + landmark : origin?.ref, + zipcode : origin?.postalCode, lat : originCoords.value?.lat, lng : originCoords.value?.lng }, destination:{ - company_name : destination.locationName, - street_address1 : destination.address, - state : destination.state.state_name, - city : destination.city.city_name, - country : destination.country, - landmark : destination.ref, - zipcode : destination.postalCode, + company_name : destination?.locationName, + street_address1 : destination?.address, + state : destination.state?.state_name, + city : destination.city?.city_name, + country : destination?.country, + landmark : destination?.ref, + zipcode : destination?.postalCode, lat : destinationCoords.value?.lat, lng : destinationCoords.value?.lng }, @@ -232,6 +228,7 @@ posted_by_name: formLoad.owner }; + return loadData; } @@ -246,6 +243,7 @@ ...loadStore.loads[index], ...resp }; + return 'success'; } else { return 'error'; @@ -254,10 +252,12 @@ const resp = await loadStore.saveLoad(loadData); isLoading.value = false; if(resp) { - loadStore.loads.push({ + const load = { ...resp, - ...loadData - }); + ...loadData, + categories: [loadData.categories] + } + loadStore.loads.push(load); return 'success'; } else { return 'error'; @@ -284,35 +284,31 @@ const validations = () => { errors.value = { - segment: formLoad.segment.length <= 0 ? 'Seleccione segmento' : null, - product: formLoad.terms.length <= 0 ? 'Seleccione producto' : null, - truckType: formLoad.truckType.length <= 0 ? 'Seleccione tipo de transporte' : null, - cityOrigin: origin.city.length <= 0 ? 'Seleccione ciudad' : null, - stateOrigin: origin.state.length <= 0 ? 'Seleccione estado' : null, - cityDestination: destination.city.length <= 0 ? 'Seleccione ciudad' : null, - stateDestination: destination.state.length <= 0 ? 'Seleccione estado' : null, + segment: (!formLoad.segment || formLoad.segment?.length <= 0) ? 'Seleccione segmento' : null, + truckType: formLoad.truckType ? null : 'Seleccione tipo de transporte', + cityOrigin: origin.city ? null : 'Seleccione ciudad', + stateOrigin: origin.state ? null : 'Seleccione estado', + cityDestination: destination.city ? null : 'Seleccione ciudad', + stateDestination: destination.state ? null : 'Seleccione estado', }; - } + } const handlePostLoad = async() => { submited.value = true; - let loadData = setLoadData(); - - loadData = { - ...loadData, - status: "Published", - load_status: "Published" - } - setTimeout(async() => { const formValid = formRef.value.checkValidity(); validations() - console.log(formValid); if(formValid){ const hasError = Object.values(errors.value).some(val => val != null); - console.log(hasError); if(!hasError) { + let loadData = setLoadData(); + + loadData = { + ...loadData, + status: "Published", + load_status: "Published" + } const resp = await updateLoad(loadData); if(resp === 'success') { notyStore.show = 'true'; @@ -325,8 +321,6 @@ icon: "error" }); } - } else { - console.log('Hay errores'); } } }, 200) @@ -398,20 +392,17 @@
- + - {{ errors.product }}
@@ -485,22 +472,18 @@ {{ errors.stateOrigin }}
@@ -563,22 +542,18 @@ {{ errors.stateDestination }}
- - Aviso de privaciadad - Terminos y condiciones + Términos y condiciones FAQS
diff --git a/src/data/faqs.json b/src/data/faqs.json new file mode 100644 index 0000000..bab1115 --- /dev/null +++ b/src/data/faqs.json @@ -0,0 +1,86 @@ +[ + { + "section": "Cuenta", + "items": [ + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + } + ] + }, + { + "section": "Precios y planes", + "items": [ + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + } + ] + }, + { + "section": "Publicaciones de cargas", + "items": [ + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + } + ] + }, + { + "section": "Publicaciones de vehiculos", + "items": [ + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + }, + { + "question": "¿lorem losks sld dkkd sjjs sjksks?", + "answer": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Consectetur libero id faucibus nisl tincidunt eget nullam non nisi." + } + ] + } +] \ No newline at end of file diff --git a/src/layouts/PublicLayout.vue b/src/layouts/PublicLayout.vue new file mode 100644 index 0000000..b048fec --- /dev/null +++ b/src/layouts/PublicLayout.vue @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index f628926..6cb36a5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,5 +1,6 @@ import { createRouter, createWebHistory } from 'vue-router' import AuthLayout from '../layouts/AuthLayout.vue' +import PublicLayout from '../layouts/PublicLayout.vue' // import {useAuthStore} from '../stores/auth'; // const authStore = useAuthStore(); @@ -37,6 +38,7 @@ const router = createRouter({ { path: '/publico', name: 'public', + component: PublicLayout, children: [ { path: 'terminos-y-condiciones', @@ -47,6 +49,11 @@ const router = createRouter({ path: 'eviso-de-privacidad', name: 'notice-privacy', component: () => import('../views/NoticeOfPrivacyView.vue') + }, + { + path: 'faqs', + name: 'faqs', + component: () => import('../views/FaqsView.vue') } ] }, diff --git a/src/views/FaqsView.vue b/src/views/FaqsView.vue new file mode 100644 index 0000000..bf6eced --- /dev/null +++ b/src/views/FaqsView.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/src/views/RegisterView.vue b/src/views/RegisterView.vue index 69cdabc..e51c1ec 100644 --- a/src/views/RegisterView.vue +++ b/src/views/RegisterView.vue @@ -174,7 +174,18 @@ type="submit" class="btn-primary-lg btn-lg-block radius-1 mt-5" value="Continuar"> -

Al registrarte aceptas nuestros términos y cóndiciones

+

+ Al registrarte aceptas nuestros + términos y condiciones + y + Aviso de privaciadad +

¿Ya tienes una cuenta? Ingresa aqui