PR-CUSTOMER #186

Merged
jsegarra merged 105 commits from :PR-CUSTOMER into dev 2024-04-19 15:55:53 +00:00
12 changed files with 208 additions and 255 deletions
Showing only changes of commit b06e5b9252 - Show all commits

View File

@ -22,12 +22,12 @@ const state = useState();
const user = state.getUser();
const clientRisks = ref(null);
const clientRisksRef = ref(null);
const companiesOptions = ref([]);
const companyId = ref(null);
const rows = ref(null);
const workerId = ref(0);
const receiptsRef = ref(null);
const clientRisksRef = ref(null);
const rows = ref([]);
const workerId = ref(null);
const filterCompanies = { order: ['code'] };
const params = {
@ -44,44 +44,42 @@ const tableColumnComponents = {
payed: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
created: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
userName: {
component: QBtn,
props: () => ({ flat: true, color: 'blue' }),
event: (prop) => {
workerId.value = prop.row.clientFk;
},
event: ({ row }) => (workerId.value = row.clientFk),
},
description: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
bankFk: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
debit: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
credit: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
balance: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
isConciliate: {
component: QCheckbox,
@ -89,7 +87,7 @@ const tableColumnComponents = {
disable: true,
'model-value': Boolean(prop.value),
}),
event: () => {},
event: () => (workerId.value = null),
},
};

View File

@ -88,6 +88,7 @@ const updateData = () => {
:class="{
'customer-card': true,
'q-mb-md': index < rows.length - 1,
'is-active': !item.finished,
}"
>
<QCardSection class="flex q-py-none">
@ -192,12 +193,14 @@ const updateData = () => {
}
.customer-card {
border: 2px solid var(--vn-light-gray);
background-color: var(--vn-light-gray);
border-radius: 10px;
padding: 10px;
display: flex;
justify-content: space-between;
}
.is-active {
background-color: var(--vn-light-gray);
}
</style>
<i18n>

View File

@ -1,65 +1,52 @@
<script setup>
import { ref, computed, onBeforeMount } from 'vue';
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute, useRouter } from 'vue-router';
import { date, QBtn } from 'quasar';
import { toCurrency } from 'src/filters';
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
const { t } = useI18n();
const route = useRoute();
const router = useRouter();
const stateStore = useStateStore();
const arrayData = ref(null);
const workerId = ref(0);
const rows = computed(() => arrayData.value.store.data);
const workerId = ref(null);
const rows = ref([]);
onBeforeMount(async () => {
const filter = {
include: [
{
relation: 'worker',
scope: {
fields: ['id'],
include: { relation: 'user', scope: { fields: ['name'] } },
},
const filter = {
include: [
{
relation: 'worker',
scope: {
fields: ['id'],
include: { relation: 'user', scope: { fields: ['name'] } },
},
],
where: { clientFk: `${route.params.id}` },
order: ['created DESC'],
limit: 20,
};
arrayData.value = useArrayData('CustomerCreditsCard', {
url: 'ClientCredits',
filter,
});
await arrayData.value.fetch({ append: false });
stateStore.rightDrawer = true;
});
},
],
where: { clientFk: `${route.params.id}` },
order: ['created DESC'],
limit: 20,
};
const tableColumnComponents = {
created: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
employee: {
component: QBtn,
props: () => ({ flat: true, color: 'blue' }),
event: (prop) => {
selectWorkerId(prop.row.clientFk);
},
event: ({ row }) => (workerId.value = row.clientFk),
},
amount: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
};
@ -86,16 +73,19 @@ const columns = computed(() => [
},
]);
const selectWorkerId = (id) => {
workerId.value = id;
};
const toCustomerCreditCreate = () => {
router.push({ name: 'CustomerCreditCreate' });
};
</script>
<template>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="ClientCredits"
/>
<QPage class="column items-center q-pa-md">
<QTable
:columns="columns"

View File

@ -1,87 +1,70 @@
<script setup>
import { ref, computed, onBeforeMount } from 'vue';
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute, useRouter } from 'vue-router';
import { date, QBtn } from 'quasar';
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import { toCurrency } from 'src/filters';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
const { t } = useI18n();
const route = useRoute();
const router = useRouter();
const stateStore = useStateStore();
const arrayData = ref(null);
const rows = ref([]);
const totalAmount = ref(0);
const workerId = ref(0);
const rows = computed(() => arrayData.value.store.data);
const workerId = ref(null);
onBeforeMount(async () => {
const filter = {
include: [
{
relation: 'greugeType',
scope: {
fields: ['id', 'name'],
},
const filter = {
include: [
{
relation: 'greugeType',
scope: {
fields: ['id', 'name'],
},
{
relation: 'user',
scope: {
fields: ['id', 'name'],
},
},
],
order: 'shipped DESC, amount',
where: {
clientFk: `${route.params.id}`,
},
limit: 20,
};
arrayData.value = useArrayData('CustomerGreugesCard', {
url: 'greuges',
filter,
});
await arrayData.value.fetch({ append: false });
totalAmount.value = arrayData.value.store.data.reduce((accumulator, currentValue) => {
return accumulator + currentValue.amount;
}, 0);
stateStore.rightDrawer = true;
});
{
relation: 'user',
scope: {
fields: ['id', 'name'],
},
},
],
order: 'shipped DESC, amount',
where: {
clientFk: `${route.params.id}`,
},
limit: 20,
};
const tableColumnComponents = {
date: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
createdBy: {
component: QBtn,
props: () => ({ flat: true, color: 'blue' }),
event: (prop) => {
selectWorkerId(prop.row.clientFk);
},
event: ({ row }) => (workerId.value = row.clientFk),
},
comment: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
type: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
amount: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
};
@ -120,8 +103,11 @@ const columns = computed(() => [
},
]);
const selectWorkerId = (id) => {
workerId.value = id;
const setRows = (data) => {
rows.value = data;
totalAmount.value = data.reduce((accumulator, currentValue) => {
return accumulator + currentValue.amount;
}, 0);
};
const toCustomerGreugeCreate = () => {
@ -130,6 +116,8 @@ const toCustomerGreugeCreate = () => {
</script>
<template>
<FetchData :filter="filter" @on-fetch="setRows" auto-load url="greuges" />
<QPage class="column items-center q-pa-md">
<QCard class="full-width" v-if="totalAmount">
<h6 class="flex justify-end q-my-lg q-pr-lg">

View File

@ -1,39 +1,24 @@
<script setup>
import { ref, computed, onBeforeMount } from 'vue';
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute, useRouter } from 'vue-router';
import { date, QBtn } from 'quasar';
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import { toCurrency } from 'src/filters';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
import FetchData from 'components/FetchData.vue';
const { t } = useI18n();
const route = useRoute();
const router = useRouter();
const stateStore = useStateStore();
const rows = ref([]);
const arrayData = ref(null);
const workerId = ref(0);
const rows = computed(() => arrayData.value.store.data);
onBeforeMount(async () => {
const filter = {
where: { clientFk: `${route.params.id}` },
order: ['started DESC'],
limit: 20,
};
arrayData.value = useArrayData('CustomerRecoveriesCard', {
url: 'Recoveries',
filter,
});
await arrayData.value.fetch({ append: false });
stateStore.rightDrawer = true;
});
const filter = {
where: { clientFk: `${route.params.id}` },
order: ['started DESC'],
limit: 20,
};
const tableColumnComponents = {
since: {
@ -94,6 +79,13 @@ const toCustomerRecoverieCreate = () => {
</script>
<template>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="Recoveries"
/>
<QPage class="column items-center q-pa-md">
<QTable
:columns="columns"
@ -113,7 +105,6 @@ const toCustomerRecoverieCreate = () => {
@click="tableColumnComponents[props.col.name].event(props)"
>
{{ props.value }}
<WorkerDescriptorProxy :id="workerId" />
</component>
</QTr>
</QTd>

View File

@ -1,66 +1,51 @@
<script setup>
import { ref, computed, onBeforeMount } from 'vue';
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute, useRouter } from 'vue-router';
import { date, QBtn } from 'quasar';
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
const { t } = useI18n();
const route = useRoute();
const router = useRouter();
const stateStore = useStateStore();
const arrayData = ref(null);
const workerId = ref(0);
const rows = computed(() => arrayData.value.store.data);
const workerId = ref(null);
const rows = ref([]);
onBeforeMount(async () => {
const filter = {
include: [
{ relation: 'type', scope: { fields: ['code', 'description'] } },
{ relation: 'user', scope: { fields: ['id', 'name'] } },
{ relation: 'company', scope: { fields: ['code'] } },
],
where: { clientFk: route.params.id },
order: ['created DESC'],
limit: 20,
};
arrayData.value = useArrayData('CustomerSamplesCard', {
url: 'ClientSamples',
filter,
});
await arrayData.value.fetch({ append: false });
stateStore.rightDrawer = true;
});
const filter = {
include: [
{ relation: 'type', scope: { fields: ['code', 'description'] } },
{ relation: 'user', scope: { fields: ['id', 'name'] } },
{ relation: 'company', scope: { fields: ['code'] } },
],
where: { clientFk: route.params.id },
order: ['created DESC'],
limit: 20,
};
const tableColumnComponents = {
sent: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
description: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
worker: {
component: QBtn,
props: () => ({ flat: true, color: 'blue' }),
event: (prop) => {
selectWorkerId(prop.row.clientFk);
},
event: ({ row }) => (workerId.value = row.clientFk),
},
company: {
component: 'span',
props: () => {},
event: () => {},
event: () => (workerId.value = null),
},
};
@ -92,16 +77,19 @@ const columns = computed(() => [
},
]);
const selectWorkerId = (id) => {
workerId.value = id;
};
const toCustomerSamplesCreate = () => {
router.push({ name: 'CustomerSamplesCreate' });
};
</script>
<template>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="ClientSamples"
/>
<QPage class="column items-center q-pa-md">
<QTable
:columns="columns"

View File

@ -1,13 +1,12 @@
<script setup>
jsegarra marked this conversation as resolved
Review

En el formulario de crear customer o basic-data, hemos encontrado que el campo email permite añadir cualquier formato. Propuesta, añadir type="email"
Este campo email, tampoco tiene el icono de info

En el formulario de crear customer o basic-data, hemos encontrado que el campo email permite añadir cualquier formato. Propuesta, añadir type="email" Este campo email, tampoco tiene el icono de info
Review

Corregido: 3cf3687b84

Corregido: 3cf3687b84
Review

El formulario de crear customer no tiene el mismo formato que en Salix

El formulario de crear customer no tiene el mismo formato que en Salix
Review

Corregido: 17a0afda73

Corregido: 17a0afda73
import { ref, computed, onBeforeMount } from 'vue';
import { ref, computed } from 'vue';
jsegarra marked this conversation as resolved
Review

En customer/1112/summary, en el componente descriptor tenemos:

  1. Falta el icono de Sin acceso web
  2. Riesgo debería tener un icono de información.
  3. Faltan los botones de hacer nueva compra y añadir usuario.
  4. Los 3 puntos con las acciones

En esa misma ruta pero en la parte central, no se visualiza la tabla de "Últimos tickets"

En customer/1112/summary, en el componente descriptor tenemos: 1. Falta el icono de Sin acceso web 2. Riesgo debería tener un icono de información. 3. Faltan los botones de hacer nueva compra y añadir usuario. 4. Los 3 puntos con las acciones En esa misma ruta pero en la parte central, no se visualiza la tabla de "Últimos tickets"
Review

Corregido: 17a0afda73

Corregido: 17a0afda73
Review

El icono de información de riesgo, no lo veo añadido...es correcto?

El icono de información de riesgo, no lo veo añadido...es correcto?
Review

Se agrega icono faltante: d0cf13d0af

Se agrega icono faltante: d0cf13d0af
Review

Riesgo está repetido 2 veces. En uno está el icono y el otro no. quitar el que corresponda

Riesgo está repetido 2 veces. En uno está el icono y el otro no. quitar el que corresponda
import { useI18n } from 'vue-i18n';
jsegarra marked this conversation as resolved
Review

En el formulario de basic-data:
El campo cliente anterior no aparece

En el formulario de basic-data: El campo cliente anterior no aparece
Review

Corregido: 3cf3687b84

Corregido: 3cf3687b84
import { QBtn, QCheckbox, useQuasar } from 'quasar';
jsegarra marked this conversation as resolved
Review

En fiscal-data, los campos: razón social, vies y recargo de equivalencia deberían tener el icono de info.

En billing-data, iban tampoco tiene.

En fiscal-data, los campos: razón social, vies y recargo de equivalencia deberían tener el icono de info. En billing-data, iban tampoco tiene.
Review

Corregido: 11eb597fa3

Corregido: 11eb597fa3
Review

Carlos, en el comentario anterior indicaba sugerencias para fiscal-data y billing-data.
Billing-data, el campo IBAN sigue sin tener icono

Carlos, en el comentario anterior indicaba sugerencias para fiscal-data y billing-data. Billing-data, el campo IBAN sigue sin tener icono
Review

No se hace ninguna corrección, se hace el commit: 6bf9b7c0c8 solo deshaciendo los cambios que se hicieron en el commit 11eb597fa3, quedando exactamente igual que antes del comentario.

No se hace ninguna corrección, se hace el commit: 6bf9b7c0c8 solo deshaciendo los cambios que se hicieron en el commit 11eb597fa3, quedando exactamente igual que antes del comentario.
import { toCurrency, toDate } from 'filters/index';
Review

Revisar los campos de los formularios de datos básicos, datos fiscales, formas de pago y consignatarios porque hay muchos campos que no tienen añadida la funcionalidad de clearable.
No pongo el nombre de cada campo de cada vista porque, como digo, son muchos.

Revisar los campos de los formularios de datos básicos, datos fiscales, formas de pago y consignatarios porque hay muchos campos que no tienen añadida la funcionalidad de clearable. No pongo el nombre de cada campo de cada vista porque, como digo, son muchos.
Review

Corregidos todos los de Customer: 7f1c4690e8

Corregidos todos los de Customer: 7f1c4690e8
Review

Basic-data: comercialm canal de contacto, tipo de negocio. Son desplegables y otro campos similares si que tienen esa acción.
Habria que revisar porque en VnSelectAction/VnSelectCreate/VnSelectDialog lo añadimos pero no funciona, pero creo que esa pelota no está en vuestro tejado.

Basic-data: comercialm canal de contacto, tipo de negocio. Son desplegables y otro campos similares si que tienen esa acción. Habria que revisar porque en VnSelectAction/VnSelectCreate/VnSelectDialog lo añadimos pero no funciona, pero creo que esa pelota no está en vuestro tejado.
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import FetchData from 'components/FetchData.vue';
import CustomerNotificationsFilter from './CustomerDefaulterFilter.vue';
import CustomerBalanceDueTotal from './CustomerBalanceDueTotal.vue';
import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue';
@ -15,16 +14,13 @@ import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.v
import CustomerDefaulterAddObservation from './CustomerDefaulterAddObservation.vue';
const { t } = useI18n();
const stateStore = useStateStore();
const quasar = useQuasar();
const arrayData = ref(null);
const balanceDueTotal = ref(0);
const customerId = ref(0);
const selected = ref([]);
const workerId = ref(0);
const rows = computed(() => arrayData.value.store.data);
const rows = ref([]);
const tableColumnComponents = {
client: {
@ -155,23 +151,11 @@ const columns = computed(() => [
},
]);
onBeforeMount(() => {
getArrayData();
});
const getArrayData = async () => {
arrayData.value = useArrayData('CustomerDefaulter', {
url: 'Defaulters/filter',
limit: 0,
});
await arrayData.value.fetch({ append: false });
balanceDueTotal.value = arrayData.value.store.data.reduce(
(accumulator, currentValue) => {
return accumulator + (currentValue['amount'] || 0);
},
0
);
stateStore.rightDrawer = true;
const setRows = (data) => {
rows.value = data;
balanceDueTotal.value = data.reduce((accumulator, currentValue) => {
return accumulator + (currentValue['amount'] || 0);
}, 0);
};
const selectCustomerId = (id) => {
@ -195,12 +179,19 @@ const viewAddObservation = (rowsSelected) => {
};
const refreshData = () => {
getArrayData();
setRows();
};
</script>
<template>
<QDrawer v-model="stateStore.rightDrawer" side="right" :width="256" show-if-above>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="Defaulters/filter"
/>
<QDrawer side="right" :width="256" show-if-above>
<QScrollArea class="fit text-grey-8">
<CustomerNotificationsFilter data-key="CustomerDefaulter" />
</QScrollArea>

View File

@ -1,33 +1,29 @@
<script setup>
import { ref, computed, onBeforeMount, onMounted } from 'vue';
import { ref, computed, onMounted } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router';
import { QBtn, QIcon } from 'quasar';
import { useStateStore } from 'stores/useStateStore';
import { dashIfEmpty, toDate } from 'src/filters';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue';
import CustomerExtendedListActions from './CustomerExtendedListActions.vue';
import CustomerExtendedListFilter from './CustomerExtendedListFilter.vue';
import TableVisibleColumns from 'src/components/common/TableVisibleColumns.vue';
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import { dashIfEmpty, toDate } from 'src/filters';
const { t } = useI18n();
const router = useRouter();
const stateStore = useStateStore();
const arrayData = ref(null);
onBeforeMount(async () => {
arrayData.value = useArrayData('CustomerExtendedList', {
url: 'Clients/extendedListFilter',
limit: 0,
});
await arrayData.value.fetch({ append: false });
stateStore.rightDrawer = true;
});
const allColumnNames = ref([]);
const rows = ref([]);
const selectedCustomerId = ref(0);
const selectedSalesPersonId = ref(0);
const visibleColumns = ref([]);
onMounted(() => {
const filteredColumns = columns.value.filter(
@ -36,13 +32,6 @@ onMounted(() => {
allColumnNames.value = filteredColumns.map((col) => col.name);
});
const rows = computed(() => arrayData.value.store.data);
const selectedCustomerId = ref(0);
const selectedSalesPersonId = ref(0);
const allColumnNames = ref([]);
const visibleColumns = ref([]);
const tableColumnComponents = {
customerStatus: {
component: QIcon,
@ -490,6 +479,13 @@ const selectSalesPersonId = (id) => {
</script>
<template>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="Clients/extendedListFilter"
/>
<QDrawer v-model="stateStore.rightDrawer" side="right" :width="256" show-if-above>
<QScrollArea class="fit text-grey-8">
<CustomerExtendedListFilter

View File

@ -1,32 +1,17 @@
<script setup>
import { ref, computed, onBeforeMount } from 'vue';
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { QBtn } from 'quasar';
import { useArrayData } from 'composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import FetchData from 'components/FetchData.vue';
import CustomerNotificationsFilter from './CustomerNotificationsFilter.vue';
import CustomerDescriptorProxy from '../Card/CustomerDescriptorProxy.vue';
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
const { t } = useI18n();
const stateStore = useStateStore();
const arrayData = ref(null);
onBeforeMount(async () => {
arrayData.value = useArrayData('CustomerNotifications', {
url: 'Clients',
limit: 0,
});
await arrayData.value.fetch({ append: false });
stateStore.rightDrawer = true;
});
const rows = computed(() => arrayData.value.store.data);
const rows = ref([]);
const selected = ref([]);
const selectedCustomerId = ref(0);
@ -97,7 +82,14 @@ const selectCustomerId = (id) => {
</script>
<template>
<QDrawer v-model="stateStore.rightDrawer" side="right" :width="256" show-if-above>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="Clients"
/>
<QDrawer side="right" :width="256" show-if-above>
<QScrollArea class="fit text-grey-8">
<CustomerNotificationsFilter data-key="CustomerNotifications" />
</QScrollArea>

View File

@ -1,35 +1,25 @@
<script setup>
import { computed, onBeforeMount, ref } from 'vue';
import { computed, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router';
import { date } from 'quasar';
import { useArrayData } from 'src/composables/useArrayData';
import { toCurrency } from 'src/filters';
import { useStateStore } from 'src/stores/useStateStore';
import FetchData from 'components/FetchData.vue';
const { t } = useI18n();
const route = useRoute();
const stateStore = useStateStore();
const arrayData = ref(null);
const rows = computed(() => arrayData.value.store.data);
const rows = ref([]);
onBeforeMount(async () => {
const filter = {
where: {
creditClassificationFk: `${route.params.creditId}`,
},
limit: 20,
};
arrayData.value = useArrayData('CustomerCreditsContractsInsuranceCard', {
url: 'CreditInsurances',
filter,
});
await arrayData.value.fetch({ append: false });
stateStore.rightDrawer = true;
});
const filter = {
where: {
creditClassificationFk: `${route.params.creditId}`,
},
limit: 20,
};
const tableColumnComponents = {
created: {
@ -74,6 +64,13 @@ const columns = computed(() => [
</script>
<template>
<FetchData
:filter="filter"
@on-fetch="(data) => (rows = data)"
auto-load
url="CreditInsurances"
/>
<QPage class="column items-center q-pa-md">
<QTable
:columns="columns"

View File

@ -227,14 +227,6 @@ const onDataSaved = async ({
</FormModel>
</template>
<style lang="scss" scoped>
.add-icon {
cursor: pointer;
background-color: $primary;
border-radius: 50px;
}
</style>
<i18n>
es:
Sample: Plantilla

View File

@ -561,6 +561,33 @@ export default {
'src/pages/Customer/Card/CustomerFileManagement.vue'
),
},
{
path: 'file-management',
name: 'CustomerFileManagementCard',
redirect: { name: 'CustomerFileManagement' },
children: [
{
path: '',
name: 'CustomerFileManagement',
meta: {
title: 'fileManagement',
icon: 'paid',
},
component: () =>
import(
'src/pages/Customer/Card/CustomerFileManagement.vue'
),
},
{
path: 'create',
name: 'CustomerFileManagementCreate',
component: () =>
import(
'src/pages/Customer/components/CustomerFileManagementCreate.vue'
),
},
],
},
{
path: 'unpaid',
name: 'CustomerUnpaid',