From b5f619187424663371c25529eae9030a59113a28 Mon Sep 17 00:00:00 2001 From: Alexandro Uc Santos Date: Sat, 30 Dec 2023 18:04:42 -0600 Subject: [PATCH] add: view users of company --- src/assets/main.css | 8 ++ src/components/CardUser.vue | 119 +++++++++++++++++++++++++ src/components/Sidebar.vue | 15 ++-- src/components/ui/EditCompanyModal.vue | 6 -- src/services/company.js | 14 ++- src/stores/auth.js | 13 +-- src/stores/company.js | 35 ++++++-- src/views/LoginView.vue | 1 + src/views/MyCompanyView.vue | 2 +- src/views/PublicUsersCompanyView.vue | 49 ++-------- src/views/UsersView.vue | 29 +++++- 11 files changed, 219 insertions(+), 72 deletions(-) create mode 100644 src/components/CardUser.vue diff --git a/src/assets/main.css b/src/assets/main.css index 25b0209..2ed5f38 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -176,6 +176,14 @@ td { border: none; } +.btn-row { + margin-top: 2rem; + display: flex; + flex-direction: row; + justify-content: end; + gap: 1rem; +} + @media (max-width: 1024px) { th { font-size: 13px; diff --git a/src/components/CardUser.vue b/src/components/CardUser.vue new file mode 100644 index 0000000..981ee25 --- /dev/null +++ b/src/components/CardUser.vue @@ -0,0 +1,119 @@ + + + + + \ No newline at end of file diff --git a/src/components/Sidebar.vue b/src/components/Sidebar.vue index 2793688..8871946 100644 --- a/src/components/Sidebar.vue +++ b/src/components/Sidebar.vue @@ -7,13 +7,14 @@ const auth = useAuthStore(); const handleLogout = () => { - auth.$patch({ - sesion: '', - token: '', - user: {}, - }); - localStorage.removeItem('session'); - router.push({name: 'login'}); + // auth.$patch({ + // sesion: '', + // token: '', + // user: {}, + // }); + // localStorage.removeItem('session'); + // router.push({name: 'login'}); + auth.logout(); } diff --git a/src/components/ui/EditCompanyModal.vue b/src/components/ui/EditCompanyModal.vue index 591c31a..f7de42d 100644 --- a/src/components/ui/EditCompanyModal.vue +++ b/src/components/ui/EditCompanyModal.vue @@ -17,19 +17,13 @@ const loading = ref(false); const msgError = ref(''); - const msgSuccess = ref(''); const companyCategories = ref([]); const companyStates = ref([]); const companyCity = ref([]); const companyTruckType = ref([]); onMounted(() => { - console.log('EditCompanyModal'); - console.log(companyStore.company) if(companyStore.company){ - // companyCategories.value = companyStore.company.categories.map(m =>{ - // return { name: m.name }; - // }); companyCategories.value = companyStore.company.categories; } if(companyStore.company){ diff --git a/src/services/company.js b/src/services/company.js index 69921ca..006cb4e 100644 --- a/src/services/company.js +++ b/src/services/company.js @@ -15,8 +15,18 @@ export const getCompany = async(companyId) => { export const updateCompany = async(companyId, formData) => { try { const endpoint = `/companies/${companyId}`; - console.log(endpoint); const {data} = await api.patch(endpoint, formData); + return data; + } catch (error) { + console.log(error); + return null; + } +} + +export const getUsers = async(companyId) => { + try { + const endpoint = `/users?company=${companyId}`; + const {data} = await api.get(endpoint); console.log(data); return data; } catch (error) { @@ -29,7 +39,7 @@ export const getBudgets = async(filter) => { try { const endpoint = `/budgets/${filter}`; const {data} = await api.get(endpoint); - console.log(data); + // console.log(data); return data; } catch (error) { console.log(error); diff --git a/src/stores/auth.js b/src/stores/auth.js index 7b2bd4b..6b3ae09 100644 --- a/src/stores/auth.js +++ b/src/stores/auth.js @@ -52,15 +52,16 @@ export const useAuthStore = defineStore('auth', () => { }); const logout = () => { - - localStorage.removeItem('session'); - localStorage.removeItem('access'); - localStorage.removeItem('id'); - company.clear(); - router.push({name: 'login'}); + console.log('logoo....'); sesion.value = ''; token.value = ''; + company.clear(); user.value = null; + console.log(company.company); + localStorage.removeItem('access'); + localStorage.removeItem('id'); + localStorage.removeItem('session'); + router.push({name: 'login'}); } return { diff --git a/src/stores/company.js b/src/stores/company.js index a212f34..175eadb 100644 --- a/src/stores/company.js +++ b/src/stores/company.js @@ -1,27 +1,41 @@ import { defineStore } from "pinia"; import { ref } from "vue"; -import { getBudgets, getCompany, updateBudget, updateCompany, deleteBudget, createBudget } from "../services/company"; +import { getBudgets, getCompany, updateBudget, updateCompany, deleteBudget, createBudget, getUsers } from "../services/company"; import api from "../lib/axios"; export const useCompanyStore = defineStore('company', () => { - const companyid = localStorage.getItem('id'); const company = ref(null) + const users = ref([]); const budgets = ref([]); const proposals = ref([]) const loading = ref(false); const getCompanyData = async() => { + const companyId = localStorage.getItem('id'); loading.value = true; if(!company.value) { loading.value = true; - const resp = await getCompany(companyid); + const resp = await getCompany(companyId); console.log(resp); company.value = resp; } loading.value = false; } + const getUsersCompany = async() => { + const companyId = localStorage.getItem('id'); + if(users.value.length <= 0) { + const resp = await getUsers(companyId); + console.log(resp); + if(resp !== null && resp.total > 0) { + users.value = resp.data; + } else { + users.value = []; + } + } + } + const editCompany = async(formData) => { const data = await updateCompany(company.value._id, formData); if(data === null) { @@ -32,14 +46,19 @@ export const useCompanyStore = defineStore('company', () => { ...formData, }; - console.log(company.value); return 'success'; } } const clear = () => { company.value = null; - companyid = null; + // companyid = null; + loading.value = false; + } + + const $reset = () => { + company.value = null; + // companyid = null; loading.value = false; } @@ -47,8 +66,9 @@ export const useCompanyStore = defineStore('company', () => { ///loads?company=64fa70c130d2650011ac4f3a&status[$ne]=Closed,posted_by_name[$regex]=ju&posted_by_name[$options]=i const getProposalsCompany = async() => { + const companyId = localStorage.getItem('id'); try { - const endpoint = `/proposals?carrier=${companyid}`; + const endpoint = `/proposals?carrier=${companyId}`; const {data} = await api.get(endpoint); proposals.value = data.data; console.log(data); @@ -137,12 +157,15 @@ export const useCompanyStore = defineStore('company', () => { getCompanyData, getProposalsCompany, getBudgetsCompany, + getUsersCompany, editCompany, updateBudgetCompany, createBudgetCompany, deleteBudgetCompany, budgets, + users, clear, + $reset, loading, proposals, company, diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index d818c2e..58676ae 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -42,6 +42,7 @@ localStorage.setItem('session', resp.data.session_token); localStorage.setItem('access', resp.data.accessToken); localStorage.setItem('id', resp.data.user.company); + console.log('id', resp.data.user.company) router.push({name: 'home'}); auth.$patch({ sesion: resp.data.session_token, diff --git a/src/views/MyCompanyView.vue b/src/views/MyCompanyView.vue index 26aec44..763a5ef 100644 --- a/src/views/MyCompanyView.vue +++ b/src/views/MyCompanyView.vue @@ -106,7 +106,7 @@ } .item-company { - margin-bottom: 8px; + margin-bottom: 1rem; font-size: 1.2rem; color: #323030; /* font-weight: bold; */ diff --git a/src/views/PublicUsersCompanyView.vue b/src/views/PublicUsersCompanyView.vue index 7926441..b3746f2 100644 --- a/src/views/PublicUsersCompanyView.vue +++ b/src/views/PublicUsersCompanyView.vue @@ -2,8 +2,8 @@ import { onMounted, ref } from 'vue'; import Spiner from '../components/ui/Spiner.vue'; import { useRoute } from 'vue-router'; - import { getDateMonthDay } from '../helpers/date_formats'; import useDirectory from '../composables/useDirectory'; + import CardUser from '../components/CardUser.vue'; const {loading, users, getUsersData} = useDirectory(); @@ -26,51 +26,14 @@ logo

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/UsersView.vue b/src/views/UsersView.vue index 6bf3930..fdda933 100644 --- a/src/views/UsersView.vue +++ b/src/views/UsersView.vue @@ -1,10 +1,37 @@