Address list query #122
|
@ -1,6 +1,6 @@
|
|||
<script setup>
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { ref, onMounted, inject } from 'vue';
|
||||
import { ref, onMounted, inject, watch } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import CardList from 'src/components/ui/CardList.vue';
|
||||
|
@ -10,13 +10,15 @@ import useNotify from 'src/composables/useNotify.js';
|
|||
import { useVnConfirm } from 'src/composables/useVnConfirm.js';
|
||||
import { useAppStore } from 'stores/app';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useUserStore } from 'stores/user';
|
||||
|
||||
const router = useRouter();
|
||||
const jApi = inject('jApi');
|
||||
const api = inject('api');
|
||||
const { notify } = useNotify();
|
||||
const { t } = useI18n();
|
||||
const { openConfirmationModal } = useVnConfirm();
|
||||
const appStore = useAppStore();
|
||||
const userStore = useUserStore();
|
||||
const { isHeaderMounted } = storeToRefs(appStore);
|
||||
|
||||
const addresses = ref([]);
|
||||
|
@ -40,12 +42,23 @@ const getDefaultAddress = async () => {
|
|||
|
||||
const getActiveAddresses = async () => {
|
||||
try {
|
||||
addresses.value = await jApi.query(
|
||||
`SELECT a.id, a.nickname, p.name province, a.postalCode, a.city, a.street, a.isActive
|
||||
FROM myAddress a
|
||||
LEFT JOIN vn.province p ON p.id = a.provinceFk
|
||||
WHERE a.isActive`
|
||||
);
|
||||
const filter = {
|
||||
where: { clientFk: userStore.user.id },
|
||||
fields: [
|
||||
'id',
|
||||
'nickname',
|
||||
'postalCode',
|
||||
'city',
|
||||
'street',
|
||||
'isActive'
|
||||
]
|
||||
};
|
||||
const { data } = await api.get('Addresses', {
|
||||
params: {
|
||||
filter: JSON.stringify(filter)
|
||||
}
|
||||
});
|
||||
addresses.value = data;
|
||||
} catch (error) {
|
||||
console.error('Error getting active addresses:', error);
|
||||
|
||||
}
|
||||
|
@ -86,8 +99,17 @@ const removeAddress = async id => {
|
|||
|
||||
onMounted(async () => {
|
||||
getDefaultAddress();
|
||||
getActiveAddresses();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => userStore?.user?.id,
|
||||
jsegarra
commented
Porque hacemos el Watch si siempre va a ser el mismo? Porque hacemos el Watch si siempre va a ser el mismo?
wbuezas
commented
Porque al momento que se monta el componente todavia no esta disponible la informacion sobre el usuario, por eso use un watch para cuando este disponible fetchearla inmediatamente Porque al momento que se monta el componente todavia no esta disponible la informacion sobre el usuario, por eso use un watch para cuando este disponible fetchearla inmediatamente
jsegarra
commented
Y la prop de autoload no serviria? Y la prop de autoload no serviria?
En lilium, para fetchdata lo tenemos asi
wbuezas
commented
No veo en que parte seria viable poner un autoload, no es un componente generico. En todo caso se puede traer el componente No veo en que parte seria viable poner un autoload, no es un componente generico.
En todo caso se puede traer el componente `FetchData` que esta en lilium y aplicarlo aca, como lo ves?
|
||||
async userId => {
|
||||
if (userId) {
|
||||
getActiveAddresses();
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
Loading…
Reference in New Issue
Este cacho sigue siendo necesario?
realmente el catch es medio irrelevante en este caso