0
0
Fork 0

fix: refs #8114 fix removeAddress

This commit is contained in:
Carlos Satorres 2024-11-28 11:11:45 +01:00
parent 59648d14f0
commit aaeabefdfe
2 changed files with 14 additions and 38 deletions

View File

@ -1,9 +1,8 @@
<script setup> <script setup>
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { reactive, onMounted, ref } from 'vue'; import { reactive, ref } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import axios from 'axios'; import axios from 'axios';
import { useState } from 'composables/useState';
import FormModelPopup from 'components/FormModelPopup.vue'; import FormModelPopup from 'components/FormModelPopup.vue';
import VnRow from 'components/ui/VnRow.vue'; import VnRow from 'components/ui/VnRow.vue';
import VnSelect from 'components/common/VnSelect.vue'; import VnSelect from 'components/common/VnSelect.vue';
@ -11,39 +10,26 @@ import VnInputDate from 'components/common/VnInputDate.vue';
import { useDialogPluginComponent } from 'quasar'; import { useDialogPluginComponent } from 'quasar';
const { t } = useI18n(); const { t } = useI18n();
const state = useState();
const ORDER_MODEL = 'order'; const ORDER_MODEL = 'order';
const router = useRouter(); const router = useRouter();
const agencyList = ref([]); const agencyList = ref([]);
const addressList = ref([]);
defineEmits(['confirm', ...useDialogPluginComponent.emits]); defineEmits(['confirm', ...useDialogPluginComponent.emits]);
const fetchAddressList = async (addressId) => {
const { data } = await axios.get('addresses', {
params: {
filter: JSON.stringify({
fields: ['id', 'nickname', 'street', 'city'],
where: { id: addressId },
}),
},
});
addressList.value = data;
if (addressList.value?.length === 1) {
state.get(ORDER_MODEL).addressId = addressList.value[0].id;
}
};
const fetchAgencyList = async (landed, addressFk) => { const fetchAgencyList = async (landed, addressFk) => {
console.log('hola');
if (!landed || !addressFk) { if (!landed || !addressFk) {
return; return;
} }
console.log('despuesdelIf');
const { data } = await axios.get('Agencies/landsThatDay', { const { data } = await axios.get('Agencies/landsThatDay', {
params: { params: {
addressFk, addressFk,
landed: new Date(landed).toISOString(), landed: new Date(landed).toISOString(),
}, },
}); });
console.log('fetchAgency', data);
agencyList.value = data; agencyList.value = data;
}; };
@ -59,17 +45,9 @@ const initialFormState = reactive({
clientFk: $props.clientFk, clientFk: $props.clientFk,
}); });
// const onClientChange = async (clientId = $props.clientFk) => {
// const { data } = await axios.get(`Clients/${clientId}`);
// await fetchAddressList(data.defaultAddressFk);
// };
async function onDataSaved(_, id) { async function onDataSaved(_, id) {
await router.push({ path: `/order/${id}/catalog` }); await router.push({ path: `/order/${id}/catalog` });
} }
// onMounted(async () => {
// await onClientChange();
// });
</script> </script>
<template> <template>

View File

@ -1,7 +1,7 @@
<script setup> <script setup>
import axios from 'axios'; import axios from 'axios';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { computed, onMounted, ref } from 'vue'; import { computed, ref } from 'vue';
import { dashIfEmpty, toCurrency, toDate } from 'src/filters'; import { dashIfEmpty, toCurrency, toDate } from 'src/filters';
import OrderSummary from 'pages/Order/Card/OrderSummary.vue'; import OrderSummary from 'pages/Order/Card/OrderSummary.vue';
import { useSummaryDialog } from 'src/composables/useSummaryDialog'; import { useSummaryDialog } from 'src/composables/useSummaryDialog';
@ -14,14 +14,12 @@ import OrderFilter from './Card/OrderFilter.vue';
import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue'; import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue';
import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue'; import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue';
import { toDateTimeFormat } from 'src/filters/date'; import { toDateTimeFormat } from 'src/filters/date';
import { useRoute } from 'vue-router';
const { t } = useI18n(); const { t } = useI18n();
const { viewSummary } = useSummaryDialog(); const { viewSummary } = useSummaryDialog();
const tableRef = ref(); const tableRef = ref();
const agencyList = ref([]); const agencyList = ref([]);
const addressesList = ref([]); const addressOptions = ref([]);
const route = useRoute();
const columns = computed(() => [ const columns = computed(() => [
{ {
align: 'left', align: 'left',
@ -141,12 +139,13 @@ const columns = computed(() => [
], ],
}, },
]); ]);
async function fetchClientAddress(id, formData = {}) { async function fetchClientAddress(id, formData = {}) {
const { data } = await axios.get(`Clients/${id}`, { const { data } = await axios.get(
params: { filter: { include: { relation: 'addresses' } } }, `Clients/${id}/addresses?filter[order]=isActive DESC`
}); );
addressesList.value = data.addresses; addressOptions.value = data;
formData.addressId = data.defaultAddressFk; console.log('formData', formData);
fetchAgencies(formData); fetchAgencies(formData);
} }
@ -240,11 +239,10 @@ const getDateColor = (date) => {
</VnSelect> </VnSelect>
<VnSelect <VnSelect
v-model="data.addressId" v-model="data.addressId"
:options="addressesList" :options="addressOptions"
:label="t('module.address')" :label="t('module.address')"
option-value="id" option-value="id"
option-label="nickname" option-label="nickname"
@update:model-value="() => fetchClientAddress(data)"
> >
<template #option="scope"> <template #option="scope">
<QItem v-bind="scope.itemProps"> <QItem v-bind="scope.itemProps">