From c286da773ec244471d6f920498357fddc0ffadbc Mon Sep 17 00:00:00 2001 From: Alexandro Uc Santos Date: Wed, 13 Mar 2024 21:39:26 -0600 Subject: [PATCH 1/5] fixes: pagination & users permissions --- src/components/CardLoad.vue | 2 ++ src/components/CardLocation.vue | 4 +++- src/components/CardProposal.vue | 7 ++++++- src/components/CardUser.vue | 10 ++++++---- src/components/CardVehicle.vue | 4 ++++ src/components/CreateUserModal.vue | 11 +++++++++-- src/components/Pagination.vue | 11 ++++++----- src/components/ui/CustomInput.vue | 6 +++++- src/services/company.js | 4 ++-- src/stores/company.js | 23 ++++++++++++----------- src/stores/loads.js | 4 ++-- src/stores/vehicles.js | 6 +++--- src/views/LoadsPublishedView.vue | 20 ++++++++++---------- src/views/LocationsView.vue | 16 +++++++++------- src/views/MyCompanyView.vue | 1 + src/views/TrucksPublishedView.vue | 7 +++---- src/views/UsersView.vue | 3 +-- src/views/VehiclesView.vue | 16 ++++++++-------- 18 files changed, 92 insertions(+), 63 deletions(-) diff --git a/src/components/CardLoad.vue b/src/components/CardLoad.vue index 24228f6..86123ae 100644 --- a/src/components/CardLoad.vue +++ b/src/components/CardLoad.vue @@ -151,6 +151,7 @@
@@ -164,6 +165,7 @@ Evidencias
- diff --git a/src/components/Pagination.vue b/src/components/Pagination.vue index f9de790..56625a2 100644 --- a/src/components/Pagination.vue +++ b/src/components/Pagination.vue @@ -12,19 +12,20 @@ import { onMounted, ref } from 'vue'; }, currentPage: { type: Number, - default: 1 + default: 0 } }) const emits = defineEmits(['get-elements']) - const currentPage = ref(1); + const currentPage = ref(0); const totalPage = ref(0) onMounted(() => { currentPage.value = props.currentPage; totalPage.value = Math.ceil(props.total / props.limit) }) - const setPage = (p) => { + const setPage = (p) => { + console.log('Page:', p); currentPage.value = p const skip = (p - 1) * props.limit; emits('get-elements', {skip: skip, page: p}); @@ -37,8 +38,8 @@ import { onMounted, ref } from 'vue';
{{ p }}
diff --git a/src/components/ui/CustomInput.vue b/src/components/ui/CustomInput.vue index 346d350..dd7efa8 100644 --- a/src/components/ui/CustomInput.vue +++ b/src/components/ui/CustomInput.vue @@ -35,6 +35,10 @@ }, error: { type: String, + }, + step: { + type: Number, + default: 0.1 } }) @@ -52,7 +56,7 @@ :id="name" :name="name" :min="0" - :step="0.1" + :step="step" :value="field" :disabled="readonly" :readonly="readonly" diff --git a/src/services/company.js b/src/services/company.js index aab5265..2e1bbc9 100644 --- a/src/services/company.js +++ b/src/services/company.js @@ -25,7 +25,7 @@ export const updateCompany = async(formData) => { export const getUsers = async(filter) => { try { - const endpoint = `/v1/users/find?${filter}`; + const endpoint = `/v1/users/find?${filter}&$sort%5BcreatedAt%5D=-1`; const {data} = await api.get(endpoint); return data; } catch (error) { @@ -126,7 +126,7 @@ export const deleteBudget = async(id) => { export const getLocations = async(filter) => { try { - const endpoint = `/v1/branches/find${filter}&$limit=3&$sort%5BcreatedAt%5D=-1`; + const endpoint = `/v1/branches/find${filter}&$sort%5BcreatedAt%5D=-1`; console.log(endpoint); const {data} = await api.get(endpoint); return data; diff --git a/src/stores/company.js b/src/stores/company.js index 4f2f243..edec500 100644 --- a/src/stores/company.js +++ b/src/stores/company.js @@ -10,17 +10,17 @@ export const useCompanyStore = defineStore('company', () => { const users = ref([]); const drivers = ref([]); const usersTotal = ref(0); - const usersCurrentPage = ref(1); + const usersCurrentPage = ref(0); const budgets = ref([]); const budgetsTotal = ref(0); - const budgetsCurrentPage = ref(1); + const budgetsCurrentPage = ref(0); const locations = ref([]); const locationsLoads = ref([]); const locationsTotal = ref(0); - const locationsCurrentPage = ref(1); + const locationsCurrentPage = ref(0); const proposals = ref([]); const proposalsTotal = ref(0); - const proposalsCurrentPage = ref(1) + const proposalsCurrentPage = ref(0) const loading = ref(false); const getCompanyData = async() => { @@ -35,10 +35,11 @@ export const useCompanyStore = defineStore('company', () => { loading.value = false; } - const getUsersCompany = async(limit = 10, skip = 0, reload = false) => { + const getUsersCompany = async(limit = 1, page = 0, reload = false) => { const companyId = localStorage.getItem('id'); if(users.value.length <= 0 || reload === true) { - const filter = `company=${companyId}`; + // const filter = `company=${companyId}`; + const filter = `company=${companyId}&elements=${limit}&page=${page}`; const resp = await getUsers(filter); if(resp !== null && resp.total > 0) { usersTotal.value = resp.total; @@ -142,17 +143,17 @@ export const useCompanyStore = defineStore('company', () => { users.value = []; drivers.value = []; usersTotal.value = 0; - usersCurrentPage.value = 1; + usersCurrentPage.value = 0; budgets.value = []; budgetsTotal.value = 0; - budgetsCurrentPage.value = 1; + budgetsCurrentPage.value = 0; locations.value = []; locationsLoads.value = []; locationsTotal.value = 0; - locationsCurrentPage.value = 1; + locationsCurrentPage.value = 0; proposals.value = []; proposalsTotal.value = 0; - proposalsCurrentPage.value = 1; + proposalsCurrentPage.value = 0; // companyid = null; loading.value = false; } @@ -170,7 +171,7 @@ export const useCompanyStore = defineStore('company', () => { const companyId = localStorage.getItem('id'); try { if(proposals.value.length <= 0 || reload) { - const endpoint = `/v1/proposals/find?carrier=${companyId}&$sort%5BcreatedAt%5D=-1&${filter}`; + const endpoint = `/v1/proposals/find?carrier=${companyId}&${filter}&$sort%5BcreatedAt%5D=-1`; console.log(endpoint) const {data} = await api.get(endpoint); proposals.value = data.data; diff --git a/src/stores/loads.js b/src/stores/loads.js index 38b211a..6461af3 100644 --- a/src/stores/loads.js +++ b/src/stores/loads.js @@ -8,7 +8,7 @@ export const useLoadsStore = defineStore('load', () => { const loads = ref([]) const loadsDashboard = ref([]); const loadsTotal = ref(0) - const loadsCurrentPage = ref(1) + const loadsCurrentPage = ref(0) const proposalsOfLoads = ref([]); const openModalEdit = ref(false); const openAttachmentsModal = ref(false); @@ -152,7 +152,7 @@ export const useLoadsStore = defineStore('load', () => { loads.value = []; loadsDashboard.value = []; loadsTotal.value = 0; - loadsCurrentPage.value = 1; + loadsCurrentPage.value = 0; proposalsOfLoads.value = []; openModalEdit.value = false; openAttachmentsModal.value = false; diff --git a/src/stores/vehicles.js b/src/stores/vehicles.js index 962a5b4..5290953 100644 --- a/src/stores/vehicles.js +++ b/src/stores/vehicles.js @@ -5,7 +5,7 @@ export const useVehiclesStore = defineStore('vehicles', () => { const vehicles = ref([]); const vehiclesTotal = ref(0); - const vehiclesCurrentPage = ref(1) + const vehiclesCurrentPage = ref(0) const fetchVehicles = async(filterQuery, reload = false) => { let filterArr = Object.values(filterQuery); @@ -17,7 +17,7 @@ export const useVehiclesStore = defineStore('vehicles', () => { } if(vehicles.value.length <= 0 || reload === true) { const resp = await getVehicles(filterStr + '&$sort%5BcreatedAt%5D=-1'); - console.log(resp.data); + console.log(resp); if(resp !== null) { vehiclesTotal.value = resp.total; vehicles.value = resp.data; @@ -71,7 +71,7 @@ export const useVehiclesStore = defineStore('vehicles', () => { const clear = () => { vehicles.value = []; vehiclesTotal.value = 0; - vehiclesCurrentPage.value = 1; + vehiclesCurrentPage.value = 0; } diff --git a/src/views/LoadsPublishedView.vue b/src/views/LoadsPublishedView.vue index 36ad821..80ef112 100644 --- a/src/views/LoadsPublishedView.vue +++ b/src/views/LoadsPublishedView.vue @@ -13,18 +13,18 @@ const loading = ref(false); const query = ref(''); const filterQuery = ref([]); - const limit = 3; + const limit = 5; onMounted(() =>{ console.log('init') getDataLoadsInit(false); }) - ///loads?company=64fa70c130d2650011ac4f3a&$limit=3&$skip=0&status[$ne]=Closed&$sort%5BcreatedAt%5D=-1 + ///loads?company=64fa70c130d2650011ac4f3a&elements=3&page=0&status[$ne]=Closed&$sort%5BcreatedAt%5D=-1 watch(query, () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ 100; + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ 100; if(query.value.length === 0){ console.log('Clear manueal') // console.log(loadStore.loadsTotal) @@ -35,8 +35,8 @@ }); const getDataLoadsInit = async(reload) => { - filterQuery.value.limit = '$limit=' + limit; - filterQuery.value.skip = "$skip=0" + filterQuery.value.limit = 'elements=' + limit; + filterQuery.value.page = "page=0" filterQuery.value.status = "status[$ne]="+"Closed"; loading.value = true; await loadStore.getCompanyLoads(filterQuery.value, reload); @@ -46,7 +46,7 @@ const getLoadsByPage = async(data) => { console.log(data); loading.value = true; - filterQuery.value.skip = "$skip="+ data.skip; + filterQuery.value.page = "page="+ data.page; loadStore.loadsCurrentPage = data.page await loadStore.getCompanyLoads(filterQuery.value, true) loading.value = false; @@ -82,9 +82,9 @@ } const clearRequest = () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ limit; - loadStore.loadsCurrentPage = 1; + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ limit; + loadStore.loadsCurrentPage = 0; } const loadHistory = () => { diff --git a/src/views/LocationsView.vue b/src/views/LocationsView.vue index ab4b085..e8b453a 100644 --- a/src/views/LocationsView.vue +++ b/src/views/LocationsView.vue @@ -19,12 +19,14 @@ getInitData(); }) - const limit = 3; + const limit = 5; const getInitData = async() => { loading.value = true; // companyStore.locationsCurrentPage = companyStore.locationsCurrentPage; filterQuery.value.company = "company="+ localStorage.getItem('id'); + filterQuery.value.limit = "elements=" + limit; + filterQuery.value.page = "page=" + 0; await companyStore.getLocationsCompany(filterQuery.value, false) loading.value = false; } @@ -32,7 +34,7 @@ const getLocationsByPage = async(data) => { loading.value = true; filterQuery.value.company = "company="+ localStorage.getItem('id'); - filterQuery.value.skip = "$skip="+ data.skip; + filterQuery.value.page = "page=" + data.page; companyStore.locationsCurrentPage = data.page await companyStore.getLocationsCompany(filterQuery.value, true) loading.value = false; @@ -45,8 +47,8 @@ } watch(query, () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ 100; + filterQuery.value.page = "page=" + 0; + filterQuery.value.limit = "elements=" + 100; if(query.value.length === 0){ clearRequest(); filterQuery.value.search = ""; @@ -77,9 +79,9 @@ } const clearRequest = () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ limit; - companyStore.locationsCurrentPage = 1; + filterQuery.value.page = "page=" + 0; + filterQuery.value.limit = "elements="+ limit; + companyStore.locationsCurrentPage = 0; } const handleSetCurrentLocation = (location) => { diff --git a/src/views/MyCompanyView.vue b/src/views/MyCompanyView.vue index 8753849..c9fbcff 100644 --- a/src/views/MyCompanyView.vue +++ b/src/views/MyCompanyView.vue @@ -44,6 +44,7 @@ import { storeToRefs } from 'pinia';

{{ company.company?.company_name }}

diff --git a/src/views/TrucksPublishedView.vue b/src/views/TrucksPublishedView.vue index 855b3dd..ab26fe8 100644 --- a/src/views/TrucksPublishedView.vue +++ b/src/views/TrucksPublishedView.vue @@ -12,7 +12,7 @@ const proposalCurrent = ref(null); const openModal = ref(false); const openModalProposal = ref(false); - const limit = 3; + const limit = 5; onMounted(() =>{ getInitData(); @@ -20,15 +20,14 @@ const getInitData = async() => { loading.value = true; - const filter = '$limit=' + limit + "&$skip=0"; + const filter = 'elements=' + limit + "&page=0"; await companyStore.getProposalsCompany(filter, false); loading.value = false; } const getProposalsByPage = async(data) => { - console.log(data) loading.value = true; - const filter = '$limit=' + limit + "&$skip=" + data.skip; + const filter = 'elements=' + limit + "&page=" + data.page; companyStore.proposalsCurrentPage = data.page; await companyStore.getProposalsCompany(filter, true); loading.value = false; diff --git a/src/views/UsersView.vue b/src/views/UsersView.vue index ca9a7b1..318ea28 100644 --- a/src/views/UsersView.vue +++ b/src/views/UsersView.vue @@ -24,10 +24,9 @@ } const getUsersByPage = async(data) => { - console.log(data) loading.value = true; companyStore.usersCurrentPage = data.page - await companyStore.getUsersCompany(limit, data.skip, true); + await companyStore.getUsersCompany(limit, companyStore.usersCurrentPage, true); loading.value = false; } diff --git a/src/views/VehiclesView.vue b/src/views/VehiclesView.vue index 4ccec49..ffad538 100644 --- a/src/views/VehiclesView.vue +++ b/src/views/VehiclesView.vue @@ -29,8 +29,8 @@ const getInitData = async() => { loading.value = true; - filterQuery.value.limit = '$limit=' + limit; - filterQuery.value.skip = "$skip=0" + filterQuery.value.limit = 'elements=' + limit; + filterQuery.value.page = "page=0" filterQuery.value.company = "company="+ localStorage.getItem('id'); await vehicleStore.fetchVehicles(filterQuery.value, false); await companyStore.getDrivers(); @@ -44,8 +44,8 @@ } watch(query, () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ 100; + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ 100; if(query.value.length === 0){ clearRequest() filterQuery.value.search = ""; @@ -75,9 +75,9 @@ } const clearRequest = () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ limit; - vehicleStore.vehiclesCurrentPage = 1; + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ limit; + vehicleStore.vehiclesCurrentPage = 0; } const handleSetCurrentVehicle = (data) => { @@ -102,7 +102,7 @@ const getVehiclesByPage = async(data) => { loading.value = true; filterQuery.value.company = "company="+ localStorage.getItem('id'); - filterQuery.value.skip = "$skip="+ data.skip; + filterQuery.value.page = "page="+ data.page; vehicleStore.vehiclesCurrentPage = data.page await vehicleStore.fetchVehicles(filterQuery.value, true); loading.value = false; From f8dfe4a3adf2ddd357823cee5fb186c14f1c7c76 Mon Sep 17 00:00:00 2001 From: Alexandro Uc Santos Date: Sat, 16 Mar 2024 18:20:59 -0600 Subject: [PATCH 2/5] add: pagination in search loads y companies --- src/components/CardLoad.vue | 6 ++-- src/components/CardVehicle.vue | 2 +- src/components/CreateUserModal.vue | 23 +++++++++++++ src/components/CreateVehicleModal.vue | 3 ++ src/components/DriverVehicleModal.vue | 2 +- src/composables/useDirectory.js | 2 +- src/composables/userSearchLoads.js | 2 +- src/router/index.js | 4 +-- src/services/auth.js | 2 ++ src/stores/vehicles.js | 2 +- src/views/CarriersView.vue | 32 ++++++++++++++++-- src/views/CompleteRegisterView.vue | 48 ++++++++++++++++++--------- src/views/LoginView.vue | 9 +++-- src/views/SearchLoadsView.vue | 19 ++++++----- src/views/ShippersView.vue | 6 ++-- src/views/UsersView.vue | 3 ++ src/views/VehiclesView.vue | 2 +- 17 files changed, 122 insertions(+), 45 deletions(-) diff --git a/src/components/CardLoad.vue b/src/components/CardLoad.vue index 86123ae..b3eae46 100644 --- a/src/components/CardLoad.vue +++ b/src/components/CardLoad.vue @@ -151,8 +151,8 @@
diff --git a/src/composables/useDirectory.js b/src/composables/useDirectory.js index 9c400d1..5e73b78 100644 --- a/src/composables/useDirectory.js +++ b/src/composables/useDirectory.js @@ -6,7 +6,7 @@ export default function useDirectory() { const loading = ref(false); const users = ref([]); const companiesTotal = ref(0); - const currentCompaniesPage = ref(1); + const currentCompaniesPage = ref(0); const getCompaniesData = async(filterQuery) => { diff --git a/src/composables/userSearchLoads.js b/src/composables/userSearchLoads.js index d3984f8..3c00dcc 100644 --- a/src/composables/userSearchLoads.js +++ b/src/composables/userSearchLoads.js @@ -5,7 +5,7 @@ export default function useSearchLoads() { const loads = ref([]); const loading = ref(false); const total = ref(0); - const currentPage = ref(1); + const currentPage = ref(0); const getLoadsPublished = async(filterQuery) => { loading.value = true; diff --git a/src/router/index.js b/src/router/index.js index 6cb36a5..9538606 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -119,12 +119,12 @@ const router = createRouter({ component: () => import('../views/VehiclesView.vue'), }, { - path: 'embarcadores', + path: 'transportistas', name: 'carriers', component: () => import('../views/CarriersView.vue'), }, { - path: 'transportistas', + path: 'embarcadores', name: 'shippers', component: () => import('../views/ShippersView.vue'), }, diff --git a/src/services/auth.js b/src/services/auth.js index ca667d6..8abc9bb 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -6,6 +6,7 @@ export const login = async(body) => { try { const endpoint = "/v1/account/authorize"; const {data} = await apiPublic.post(endpoint, body); + console.log('auth: ', data); if(data.accessToken !== null){ if(data.user.job_role !== 'driver'){ //TODO: Guardar token y datos del usuario @@ -78,6 +79,7 @@ export const regiterConfirm = async(body) => { try { const endpoint = "/v1/account/signup"; const {data} = await apiPublic.patch(endpoint, body); + console.log('register auth: ', data); return { msg: 'success', data diff --git a/src/stores/vehicles.js b/src/stores/vehicles.js index 5290953..1ebd0b5 100644 --- a/src/stores/vehicles.js +++ b/src/stores/vehicles.js @@ -28,7 +28,7 @@ export const useVehiclesStore = defineStore('vehicles', () => { const createVehicleCompany = async(formData, localData = {}) => { const data = await createVehicle(formData); if(data) { - vehicles.value.push({ + vehicles.value.unshift({ ...data, ...localData }); diff --git a/src/views/CarriersView.vue b/src/views/CarriersView.vue index d50e489..f2b3ec7 100644 --- a/src/views/CarriersView.vue +++ b/src/views/CarriersView.vue @@ -7,8 +7,9 @@ import Segments from '../components/ui/Segments.vue'; import States from '../components/ui/States.vue'; import Cities from '../components/ui/Cities.vue'; +import Pagination from '../components/Pagination.vue'; - const {loading, companies, getCompaniesData} = useDirectory(); + const {loading, companies, getCompaniesData, companiesTotal, currentCompaniesPage} = useDirectory(); const query = ref(''); const selectedTruckType = ref([]); const selectedCategory = ref([]); @@ -16,11 +17,24 @@ const selectedCities = ref([]); const filterQuery = ref([]); + const limit = 5; + onMounted(() => { filterQuery.value.company_type = 'carrier'; + filterQuery.value.limit = 'elements=' + limit; + filterQuery.value.page = "page=0"; getCompaniesData(filterQuery.value); }); + const getCompaniesByPage = (data) => { + console.log(data); + // filterQuery.value.company_type = 'shipper'; + filterQuery.value.page = "page="+ data.page; + currentCompaniesPage.value = data.page + getCompaniesData(filterQuery.value); + } + + watch(query, () => { if(query.value.length === 0){ filterQuery.value.search = ""; @@ -66,7 +80,7 @@ } const clearFilter = () => { - + clearRequest(); selectedCities.value = null; selectedCategory.value = null; selectedState.value = null; @@ -86,6 +100,12 @@ } } + const clearRequest = () => { + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ limit; + currentCompaniesPage.value = 0; + } + const clearState = () => { filterQuery.value.state = ""; getCompaniesData(filterQuery.value); @@ -151,6 +171,14 @@ :key="company._id" :company="company" /> + +
diff --git a/src/views/CompleteRegisterView.vue b/src/views/CompleteRegisterView.vue index 5bba134..9ccc7dc 100644 --- a/src/views/CompleteRegisterView.vue +++ b/src/views/CompleteRegisterView.vue @@ -13,6 +13,7 @@ import { useAuthStore } from '../stores/auth'; import { complete_registry } from "../services/auth"; import { updateMyUserProfile } from "../services/company" +import Spiner from '../components/ui/Spiner.vue'; const notifications = useNotificationsStore(); const auth = useAuthStore(); @@ -72,6 +73,7 @@ clearMessages(); return; } + localStorage.setItem('access', auth.token); const companyData = { company_name : company.name, rfc : company.rfc, @@ -82,31 +84,40 @@ company_description : company.description, company_type : typeCompany.typeCompany, }; + loading.value = true; const result = await complete_registry( companyData ); - console.log(result); - if(result.msg === 'success' && result.data !== null){ - localStorage.setItem('id', result.data._id); + + if(result.msg !== 'success') { + msgError.value = result.msg; + localStorage.removeItem('access'); + loading.value = false; + clearMessages(); + return; } + console.log(result); + localStorage.setItem('id', result.data._id); + localStorage.setItem('session', auth.sesion); + // localStorage.setItem('access', auth.token); + const userData = { "first_name" : user.name, "last_name" : user.lastName, "phone" : user.phone1, "phone2" : user.phone2, }; - await updateMyUserProfile( userData ); + let respUser = await updateMyUserProfile( userData ); + console.log('User create: ', respUser); + if(respUser === null) { + auth.user = userData; + } else { + auth.user = respUser; + } /////// Datos debug /////// notifications.show = true; notifications.text = 'Los datos se llenaron correctamente'; - localStorage.setItem('session', 'jssksksksk2skskkskskkskss'); - auth.$patch({ - sesion: 'jssksksksk2skskkskskkskss', - token: 'jkdkdkdkeoee00kelldd', - user: { - first_name: user.name, - last_name: user.lastName - }, - }) + + loading.value = false; router.push({name: 'home'}); /////////////////////////// } @@ -292,6 +303,7 @@ label="Teléfono 1: *" type="number" name="phone1" + :step="1" :filled="false" v-model:field="user.phone1" /> @@ -299,12 +311,18 @@ label="Teléfono 2:" type="number" name="phone2" + :step="1" :filled="false" v-model:field="user.phone2" /> - - + + diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 8a1eb63..d6f68d2 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -37,8 +37,7 @@ } const resp = await login(data); if(resp.msg === 'success') { - console.log(resp.data.user); - if( resp.data.user.company ) { + if( resp.data.user.company ) { // Registro completo localStorage.setItem('session', resp.data.session_token); localStorage.setItem('access', resp.data.accessToken); localStorage.setItem('id', resp.data.user.company); @@ -49,14 +48,14 @@ token: resp.data.accessToken, user: resp.data.user, }) - } else { + } else { // Completar registro auth.$patch({ sesion: resp.data.session_token, token: resp.data.accessToken, user: resp.data.user, }) - localStorage.setItem('session', resp.data.session_token); - localStorage.setItem('access', resp.data.accessToken); + // localStorage.setItem('session', resp.data.session_token); + // localStorage.setItem('access', resp.data.accessToken); router.push({name: 'register-company'}); } } else { diff --git a/src/views/SearchLoadsView.vue b/src/views/SearchLoadsView.vue index 42c2d36..bb297fb 100644 --- a/src/views/SearchLoadsView.vue +++ b/src/views/SearchLoadsView.vue @@ -10,13 +10,14 @@ import Cities from '../components/ui/Cities.vue'; import MakeProposalModal from '../components/MakeProposalModal.vue'; import Pagination from '../components/Pagination.vue'; + const filterQuery = ref([]); const query = ref(''); const selectedTruckType = ref([]); const selectedCategory = ref([]); const selectedState = ref([]); const selectedCities = ref([]); - const limit = 3; + const limit = 1; const isSearch = ref(false); const { getLoadsPublished, loads, loading, currentPage, total } = useSearchLoads(); @@ -121,8 +122,8 @@ } const getInitData = async() => { - filterQuery.value.limit = '$limit=' + limit; - filterQuery.value.skip = "$skip=0"; + filterQuery.value.limit = 'elements=' + limit; + filterQuery.value.page = "page=0"; filterQuery.value.company = ""; filterQuery.value.status = "status=Published", @@ -131,20 +132,20 @@ const getLoadsByPage = (data) => { console.log(data); - filterQuery.value.skip = "$skip="+ data.skip; + filterQuery.value.page = "page="+ data.page; currentPage.value = data.page getLoadsPublished(filterQuery.value); } const clearRequest = () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ limit; - currentPage.value = 1; + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ limit; + currentPage.value = 0; } const setFilterUnlimited = () => { - filterQuery.value.skip = "$skip="+ 0; - filterQuery.value.limit = "$limit="+ 100; + filterQuery.value.page = "page="+ 0; + filterQuery.value.limit = "elements="+ 100; } const currentLoad = ref(null); diff --git a/src/views/ShippersView.vue b/src/views/ShippersView.vue index 0316e68..0844908 100644 --- a/src/views/ShippersView.vue +++ b/src/views/ShippersView.vue @@ -17,7 +17,7 @@ const selectedCities = ref([]); const filterQuery = ref([]); - const limit = 3; + const limit = 5; onMounted(() => { filterQuery.value.company_type = 'shipper'; @@ -102,9 +102,9 @@ } const clearRequest = () => { - filterQuery.value.page = "page="+ 1; + filterQuery.value.page = "page="+ 0; filterQuery.value.limit = "elements="+ limit; - currentPage.value = 1; + currentCompaniesPage.value = 0; } const clearState = () => { diff --git a/src/views/UsersView.vue b/src/views/UsersView.vue index 318ea28..19a80aa 100644 --- a/src/views/UsersView.vue +++ b/src/views/UsersView.vue @@ -5,8 +5,10 @@ import { useCompanyStore } from '../stores/company'; import CreateUserModal from '../components/CreateUserModal.vue'; import Pagination from '../components/Pagination.vue'; +import { useAuthStore } from '../stores/auth'; const companyStore = useCompanyStore(); + const authStore = useAuthStore(); onMounted(() => { getInitData(); @@ -54,6 +56,7 @@

Usuarios

-

COVO

-

{{ auth.user?.first_name + ' ' + auth.user?.last_name }}

+

{{auth.user?.company?.company_name}}

+

{{ auth.user?.first_name + ' ' + auth.user?.last_name }}

    @@ -167,6 +167,18 @@ margin-bottom: 8px; } + .icon-header { + font-size: 24px; + // color: #FBBA33; + color: #FFF; + margin-right: 8px; + } + + .company-name { + font-size: 2rem; + font-weight: 900; + } + .logo { display: flex; justify-content: center; diff --git a/src/services/auth.js b/src/services/auth.js index 8abc9bb..5341b16 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -38,7 +38,6 @@ export const renewToken = async() => { try { const endpoint = `/v1/account/authorize/${session}`; const {data} = await apiPublic.get(endpoint); - console.log(data); if(data.accessToken !== null){ return { msg: 'success', diff --git a/src/stores/auth.js b/src/stores/auth.js index 98eafd5..e746dab 100644 --- a/src/stores/auth.js +++ b/src/stores/auth.js @@ -34,9 +34,10 @@ export const useAuthStore = defineStore('auth', () => { user.value = resp.data.user; sesion.value = resp.data.session_token; token.value = resp.data.accessToken; + console.log(resp.data.user) localStorage.setItem('session', resp.data.session_token); localStorage.setItem('access', resp.data.accessToken); - localStorage.setItem('id', resp.data.user.company); + localStorage.setItem('id', resp.data.user.company._id); checking.value = false; } else { noty.show = true; diff --git a/src/stores/company.js b/src/stores/company.js index edec500..67f1444 100644 --- a/src/stores/company.js +++ b/src/stores/company.js @@ -37,6 +37,7 @@ export const useCompanyStore = defineStore('company', () => { const getUsersCompany = async(limit = 1, page = 0, reload = false) => { const companyId = localStorage.getItem('id'); + console.log(companyId); if(users.value.length <= 0 || reload === true) { // const filter = `company=${companyId}`; const filter = `company=${companyId}&elements=${limit}&page=${page}`; diff --git a/src/stores/loads.js b/src/stores/loads.js index 6461af3..b7ee0cb 100644 --- a/src/stores/loads.js +++ b/src/stores/loads.js @@ -18,7 +18,7 @@ export const useLoadsStore = defineStore('load', () => { const companyid = localStorage.getItem('id'); if(loadsDashboard.value.length <= 0 || reload) { try { - const endpoint = `/v1/loads/find`; + const endpoint = `/v1/loads/find?elements=100`; const {data} = await api.get(endpoint); loadsDashboard.value = data.data; } catch (error) { @@ -32,8 +32,9 @@ export const useLoadsStore = defineStore('load', () => { const companyId = localStorage.getItem('id'); try { if(loadsDashboard.value.length <= 0 || reload) { - const endpoint = `/v1/proposals/find?carrier=${companyId}`; + const endpoint = `/v1/proposals/find?carrier=${companyId}&elements=100`; const {data} = await api.get(endpoint); + console.log(data); loadsDashboard.value = data.data.map( (e) => e.load); } } catch (error) { diff --git a/src/views/CompleteRegisterView.vue b/src/views/CompleteRegisterView.vue index 9ccc7dc..ff29f99 100644 --- a/src/views/CompleteRegisterView.vue +++ b/src/views/CompleteRegisterView.vue @@ -122,6 +122,8 @@ import Spiner from '../components/ui/Spiner.vue'; /////////////////////////// } + /// Falta el populate en la respuesta para completar el registro y luego de recargar la pagina + const handleBack = (val) => { step.value = val; } diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index cf1c981..d33e0fc 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -6,6 +6,7 @@ import { useLoadsStore } from '../stores/loads'; import { onMounted, ref, watch } from 'vue'; import Spiner from '../components/ui/Spiner.vue'; + import CardEmpty from '../components/CardEmpty.vue'; import { useAuthStore } from '../stores/auth'; import { storeToRefs } from 'pinia'; @@ -33,7 +34,6 @@ } }); - const getData = async() => { loading.value = true; if(user.value?.permissions === "role_carrier") { @@ -52,10 +52,15 @@ if(e?.load_status) { loadsData.value.push(e.load_status); } - if( (user.value?.permissions === "role_shipper") && e?.categories) { + if( e?.categories) { segmentsData.value.push(e?.categories[0].name) } - if( (user.value?.permissions === "role_shipper" ) && e?.origin?.city) { + + // if( (user.value?.permissions === "role_carrier") && e?.load?.categories) { + // segmentsData.value.push(e?.load?.categories[0].name) + // } + + if( e?.origin?.city) { cities.value.push(e?.origin.city) } if(e?.origin?.state){ @@ -70,10 +75,8 @@