feat: use clientFK in dialog

This commit is contained in:
Javier Segarra 2025-02-15 23:59:22 +01:00
parent cad6b077f0
commit 3b3332f15c
2 changed files with 23 additions and 7 deletions

View File

@ -4,12 +4,12 @@ export async function getAddresses(clientId, _filter = {}) {
if (!clientId) return; if (!clientId) return;
const filter = { const filter = {
..._filter, ..._filter,
fields: ['nickname', 'street', 'city', 'id'], fields: ['nickname', 'street', 'city', 'id', 'isActive'],
where: { isActive: true }, where: { isActive: true },
order: 'nickname ASC', order: ['isDefaultAddress DESC', 'isActive DESC', 'nickname ASC'],
}; };
const params = { filter: JSON.stringify(filter) }; const params = { filter: JSON.stringify(filter) };
return await axios.get(`Clients/${clientId}/addresses`, { return await axios.get(`Clients/${clientId}/addresses`, {
params, params,
}); });
}; }

View File

@ -1,6 +1,6 @@
<script setup> <script setup>
import axios from 'axios'; import axios from 'axios';
import { computed, ref, onBeforeMount } from 'vue'; import { computed, ref, onBeforeMount, watch } from 'vue';
import { useRoute, useRouter } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { useStateStore } from 'stores/useStateStore'; import { useStateStore } from 'stores/useStateStore';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
@ -425,6 +425,23 @@ function setReference(data) {
dialogData.value.value.description = newDescription; dialogData.value.value.description = newDescription;
} }
const formInitialData = ref({});
watch(
() => route.query.table,
(newValue) => {
if (newValue) {
const clientId = +JSON.parse(newValue)?.clientFk;
if (!clientFk) return;
formInitialData.value = {
clientId,
};
if (tableRef.value) tableRef.value.create.formInitialData = { clientId };
onClientSelected({ clientId });
}
},
{ immediate: true },
);
</script> </script>
<template> <template>
@ -462,11 +479,10 @@ function setReference(data) {
urlCreate: 'Tickets/new', urlCreate: 'Tickets/new',
title: t('ticketList.createTicket'), title: t('ticketList.createTicket'),
onDataSaved: ({ id }) => tableRef.redirect(id), onDataSaved: ({ id }) => tableRef.redirect(id),
formInitialData: { clientId: null }, formInitialData,
}" }"
default-mode="table" default-mode="table"
:columns="columns" :columns="columns"
:user-params="userParams"
:right-search="false" :right-search="false"
redirect="ticket" redirect="ticket"
v-model:selected="selectedRows" v-model:selected="selectedRows"