From bc49895b013ed8f3eeed7974366b697b86ebe6f1 Mon Sep 17 00:00:00 2001
From: Alexandro Uc Santos
Date: Mon, 18 Dec 2023 21:25:56 -0600
Subject: [PATCH] add: search loads
---
src/components/CardCompany.vue | 6 +-
src/components/CardLoad.vue | 19 ++-
src/composables/useDirectory.js | 16 ++-
src/composables/userSearchLoads.js | 33 +++++
src/router/index.js | 5 +
src/services/public.js | 12 ++
src/views/CarriersView.vue | 4 +-
src/views/PublicUsersCompanyView.vue | 76 ++++++++++++
src/views/SearchLoadsView.vue | 172 ++++++++++++++++++++++++++-
src/views/ShippersView.vue | 4 +-
10 files changed, 335 insertions(+), 12 deletions(-)
create mode 100644 src/composables/userSearchLoads.js
create mode 100644 src/views/PublicUsersCompanyView.vue
diff --git a/src/components/CardCompany.vue b/src/components/CardCompany.vue
index c16f057..1e13078 100644
--- a/src/components/CardCompany.vue
+++ b/src/components/CardCompany.vue
@@ -30,12 +30,12 @@
Información general de la empresa: {{company.company_description}}
-
+
diff --git a/src/components/CardLoad.vue b/src/components/CardLoad.vue
index d1d467a..327a771 100644
--- a/src/components/CardLoad.vue
+++ b/src/components/CardLoad.vue
@@ -5,9 +5,11 @@
import { getStatusLoad } from '../helpers/status';
import { useLoadsStore } from '../stores/loads';
import Swal from 'sweetalert2'
+ import { useAuthStore } from '../stores/auth';
const router = useRouter();
const loadsStore = useLoadsStore();
+ const authStore = useAuthStore();
const props = defineProps({
load: {
@@ -112,7 +114,7 @@
-
+
Status de la publicación: {{ getStatusPublished(load) }}
Status de la carga: {{ getStatusLoad(load).status }}
@@ -146,7 +148,7 @@
{{ load.notes }}
-
+
#{{ load.no_of_proposals }} Ofertas
+
+ Hacer oferta
+ Llamar ahora
+
diff --git a/src/composables/useDirectory.js b/src/composables/useDirectory.js
index 45fb445..fabbc02 100644
--- a/src/composables/useDirectory.js
+++ b/src/composables/useDirectory.js
@@ -1,9 +1,11 @@
import { ref } from "vue";
-import { getCompanies } from '../services/public';
+import { getCompanies, getPublicUsersCompany } from '../services/public';
-export default function useDirecty() {
+export default function useDirectory() {
const companies = ref([]);
const loading = ref(false);
+ const users = ref([]);
+
const getCompaniesData = async(filterQuery) => {
let filterArr = Object.values(filterQuery);
@@ -21,8 +23,18 @@ export default function useDirecty() {
loading.value = false;
}
+ const getUsersData = async(companyId) => {
+ const filter = companyId;
+ loading.value = true;
+ const resp = await getPublicUsersCompany(filter);
+ users.value = resp;
+ loading.value = false;
+ }
+
return {
getCompaniesData,
+ getUsersData,
+ users,
loading,
companies
}
diff --git a/src/composables/userSearchLoads.js b/src/composables/userSearchLoads.js
new file mode 100644
index 0000000..c9198cb
--- /dev/null
+++ b/src/composables/userSearchLoads.js
@@ -0,0 +1,33 @@
+import { ref } from "vue";
+import api from "../lib/axios";
+
+export default function useSearchLoads() {
+ const loads = ref([]);
+ const loading = ref(false);
+
+ const getLoadsPublished = async(filterQuery) => {
+ loading.value = true;
+ let filterArr = Object.values(filterQuery);
+ let cleanfilterArr = filterArr.filter(n=>n);
+ var filterStr = "";
+ if(cleanfilterArr.length >0){
+ filterStr = "?"+cleanfilterArr.join("&");
+ }
+ try {
+ const endpoint = `/loads/${filterStr}`;
+ console.log(endpoint)
+ const {data} = await api.get(endpoint);
+ loads.value = data.data;
+ } catch (error) {
+ loads.value = [];
+ console.log(error);
+ }
+ loading.value = false;
+ }
+
+ return {
+ getLoadsPublished,
+ loading,
+ loads
+ }
+}
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 8b4aa45..60fe201 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -50,6 +50,11 @@ const router = createRouter({
name: 'company',
component: () => import('../views/MyCompanyView.vue'),
},
+ {
+ path: 'empresa/:id',
+ name: 'public-users',
+ component: () => import('../views/PublicUsersCompanyView.vue'),
+ },
{
path: 'ubicaciones',
name: 'locations',
diff --git a/src/services/public.js b/src/services/public.js
index 1458caa..f958d91 100644
--- a/src/services/public.js
+++ b/src/services/public.js
@@ -66,6 +66,18 @@ export const getUsersCompany = async(filter) => {
const endpoint = `/v1/users?${filter}`;
// console.log({endpoint});
const {data} = await api.get(endpoint);
+ return data;
+ } catch (error) {
+ console.log(error);
+ return [];
+ }
+}
+
+export const getPublicUsersCompany = async(filter) => {
+ try {
+ const endpoint = `/v1/public-companies/users/${filter}`;
+ // console.log({endpoint});
+ const {data} = await api.get(endpoint);
// console.log(data);
return data.data;
} catch (error) {
diff --git a/src/views/CarriersView.vue b/src/views/CarriersView.vue
index 1d15ddc..87abab0 100644
--- a/src/views/CarriersView.vue
+++ b/src/views/CarriersView.vue
@@ -1,14 +1,14 @@
+
+
+
+
Usuarios de la Empresa
+
+
+
+
No hay registros
+
+
+
+
+
Nombre de usuario: {{user.name}}
+
Número de registro: {{user.employee_id}}
+
Teléfono 1: {{user.phone}}
+
Teléfono 2: {{user.phone2}}
+
Email: {{user.email}}
+
+
+
Segmento: {{user._categories}}
+
Locaciones de carga por municipio: {{user._user_city}}
+
Locaciones de carga por estado: {{user._user_state}}
+
Tipos de transporte que utiliza: {{user._truck_types}}
+
Información adicional del embarcador: {{user.user_description}}
+
Miembro desde: {{getDateMonthDay(user.createdAt)}}
+
Tipo de afiliación: {{user.company.membership}}
+
Rol del usuario: {{user.job_role}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/SearchLoadsView.vue b/src/views/SearchLoadsView.vue
index 06bf670..d403a5f 100644
--- a/src/views/SearchLoadsView.vue
+++ b/src/views/SearchLoadsView.vue
@@ -1,11 +1,181 @@
- Buscar cargas
+ Buscar cargas
+
+
+
+ Buscar
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/ShippersView.vue b/src/views/ShippersView.vue
index 0c1a7f8..4b67835 100644
--- a/src/views/ShippersView.vue
+++ b/src/views/ShippersView.vue
@@ -1,14 +1,14 @@