forked from verdnatura/salix-front
refactor: refs #8316 used VnSection and VnCardBeta
This commit is contained in:
parent
93047ab179
commit
37a87fa8e1
|
@ -1,25 +1,12 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue';
|
import VnCardBeta from 'components/common/VnCardBeta.vue';
|
||||||
import { useRoute } from 'vue-router';
|
|
||||||
|
|
||||||
import VnCard from 'components/common/VnCard.vue';
|
|
||||||
import CustomerDescriptor from './CustomerDescriptor.vue';
|
import CustomerDescriptor from './CustomerDescriptor.vue';
|
||||||
import CustomerFilter from '../CustomerFilter.vue';
|
|
||||||
const route = useRoute();
|
|
||||||
|
|
||||||
const routeName = computed(() => route.name);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<VnCard
|
<VnCardBeta
|
||||||
data-key="Client"
|
data-key="Client"
|
||||||
base-url="Clients"
|
base-url="Clients"
|
||||||
:descriptor="CustomerDescriptor"
|
:descriptor="CustomerDescriptor"
|
||||||
:filter-panel="routeName != 'CustomerConsumption' && CustomerFilter"
|
|
||||||
search-data-key="CustomerList"
|
|
||||||
:searchbar-props="{
|
|
||||||
url: 'Clients/filter',
|
|
||||||
label: 'Search customer',
|
|
||||||
info: 'You can search by customer id or name',
|
|
||||||
}"
|
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -5,18 +5,19 @@ import { useRouter } from 'vue-router';
|
||||||
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
||||||
import { toDate } from 'src/filters';
|
import { toDate } from 'src/filters';
|
||||||
|
|
||||||
import RightMenu from 'src/components/common/RightMenu.vue';
|
|
||||||
import CustomerSummary from './Card/CustomerSummary.vue';
|
import CustomerSummary from './Card/CustomerSummary.vue';
|
||||||
import CustomerFilter from './CustomerFilter.vue';
|
import CustomerFilter from './CustomerFilter.vue';
|
||||||
import VnTable from 'components/VnTable/VnTable.vue';
|
import VnTable from 'components/VnTable/VnTable.vue';
|
||||||
import VnLocation from 'src/components/common/VnLocation.vue';
|
import VnLocation from 'src/components/common/VnLocation.vue';
|
||||||
import VnSearchbar from 'components/ui/VnSearchbar.vue';
|
|
||||||
import VnLinkPhone from 'src/components/ui/VnLinkPhone.vue';
|
import VnLinkPhone from 'src/components/ui/VnLinkPhone.vue';
|
||||||
import VnSelectWorker from 'src/components/common/VnSelectWorker.vue';
|
import VnSelectWorker from 'src/components/common/VnSelectWorker.vue';
|
||||||
|
import VnSection from 'src/components/common/VnSection.vue';
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const tableRef = ref();
|
const tableRef = ref();
|
||||||
|
const dataKey = 'CustomerList';
|
||||||
|
|
||||||
const columns = computed(() => [
|
const columns = computed(() => [
|
||||||
{
|
{
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
@ -390,21 +391,23 @@ function handleLocation(data, location) {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<VnSearchbar
|
<VnSection
|
||||||
:info="t('You can search by customer id or name')"
|
:data-key="dataKey"
|
||||||
:label="t('Search customer')"
|
:columns="columns"
|
||||||
data-key="CustomerList"
|
prefix="customer"
|
||||||
/>
|
:array-data-props="{
|
||||||
<RightMenu>
|
url: 'Clients/filter',
|
||||||
<template #right-panel>
|
exprBuilder,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template #rightMenu>
|
||||||
<CustomerFilter data-key="CustomerList" />
|
<CustomerFilter data-key="CustomerList" />
|
||||||
</template>
|
</template>
|
||||||
</RightMenu>
|
<template #body>
|
||||||
<VnTable
|
<VnTable
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
data-key="CustomerList"
|
:data-key="dataKey"
|
||||||
url="Clients/filter"
|
url="Clients/filter"
|
||||||
order="id DESC"
|
|
||||||
:create="{
|
:create="{
|
||||||
urlCreate: 'Clients/createWithUser',
|
urlCreate: 'Clients/createWithUser',
|
||||||
title: t('globals.pageTitles.customerCreate'),
|
title: t('globals.pageTitles.customerCreate'),
|
||||||
|
@ -466,6 +469,8 @@ function handleLocation(data, location) {
|
||||||
</QInput>
|
</QInput>
|
||||||
</template>
|
</template>
|
||||||
</VnTable>
|
</VnTable>
|
||||||
|
</template>
|
||||||
|
</VnSection>
|
||||||
</template>
|
</template>
|
||||||
<i18n>
|
<i18n>
|
||||||
es:
|
es:
|
||||||
|
|
|
@ -94,3 +94,5 @@ customer:
|
||||||
hasToInvoiceByAddress: Invoice by address
|
hasToInvoiceByAddress: Invoice by address
|
||||||
isToBeMailed: Mailing
|
isToBeMailed: Mailing
|
||||||
hasSepaVnl: VNL B2B received
|
hasSepaVnl: VNL B2B received
|
||||||
|
search: Search customer
|
||||||
|
searchInfo: You can search by customer ID
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
Search customer: Buscar cliente
|
|
||||||
You can search by customer id or name: Puedes buscar por id o nombre del cliente
|
|
||||||
customer:
|
customer:
|
||||||
card:
|
card:
|
||||||
debt: Riesgo
|
debt: Riesgo
|
||||||
|
@ -96,3 +94,5 @@ customer:
|
||||||
hasToInvoiceByAddress: Factura por consigna
|
hasToInvoiceByAddress: Factura por consigna
|
||||||
isToBeMailed: Env. emails
|
isToBeMailed: Env. emails
|
||||||
hasSepaVnl: Recibido B2B VNL
|
hasSepaVnl: Recibido B2B VNL
|
||||||
|
search: Buscar cliente
|
||||||
|
searchInfo: Puedes buscar por id o nombre del cliente
|
||||||
|
|
|
@ -1,24 +1,12 @@
|
||||||
import { RouterView } from 'vue-router';
|
import { RouterView } from 'vue-router';
|
||||||
|
|
||||||
export default {
|
const customerCard = {
|
||||||
path: '/customer',
|
name: 'CustomerCard',
|
||||||
name: 'Customer',
|
path: ':id',
|
||||||
|
component: () => import('src/pages/Customer/Card/CustomerCard.vue'),
|
||||||
|
redirect: { name: 'CustomerSummary' },
|
||||||
meta: {
|
meta: {
|
||||||
title: 'customers',
|
menu: [
|
||||||
icon: 'vn:client',
|
|
||||||
moduleName: 'Customer',
|
|
||||||
keyBinding: 'c',
|
|
||||||
},
|
|
||||||
component: RouterView,
|
|
||||||
redirect: { name: 'CustomerMain' },
|
|
||||||
menus: {
|
|
||||||
main: [
|
|
||||||
'CustomerList',
|
|
||||||
'CustomerPayments',
|
|
||||||
'CustomerNotifications',
|
|
||||||
'CustomerDefaulter',
|
|
||||||
],
|
|
||||||
card: [
|
|
||||||
'CustomerBasicData',
|
'CustomerBasicData',
|
||||||
'CustomerFiscalData',
|
'CustomerFiscalData',
|
||||||
'CustomerBillingData',
|
'CustomerBillingData',
|
||||||
|
@ -35,70 +23,6 @@ export default {
|
||||||
'CustomerOthers',
|
'CustomerOthers',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: '',
|
|
||||||
name: 'CustomerMain',
|
|
||||||
component: () => import('src/components/common/VnModule.vue'),
|
|
||||||
redirect: { name: 'CustomerList' },
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: 'list',
|
|
||||||
name: 'CustomerList',
|
|
||||||
meta: {
|
|
||||||
title: 'list',
|
|
||||||
icon: 'view_list',
|
|
||||||
},
|
|
||||||
component: () => import('src/pages/Customer/CustomerList.vue'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'create',
|
|
||||||
name: 'CustomerCreate',
|
|
||||||
meta: {
|
|
||||||
title: 'customerCreate',
|
|
||||||
icon: 'add',
|
|
||||||
},
|
|
||||||
component: () => import('src/pages/Customer/CustomerCreate.vue'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'payments',
|
|
||||||
name: 'CustomerPayments',
|
|
||||||
meta: {
|
|
||||||
title: 'webPayments',
|
|
||||||
icon: 'vn:onlinepayment',
|
|
||||||
},
|
|
||||||
component: () =>
|
|
||||||
import('src/pages/Customer/Payments/CustomerPayments.vue'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'notifications',
|
|
||||||
name: 'CustomerNotifications',
|
|
||||||
meta: {
|
|
||||||
title: 'notifications',
|
|
||||||
icon: 'campaign',
|
|
||||||
},
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
'src/pages/Customer/Notifications/CustomerNotifications.vue'
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'defaulter',
|
|
||||||
name: 'CustomerDefaulter',
|
|
||||||
meta: {
|
|
||||||
title: 'defaulter',
|
|
||||||
icon: 'vn:defaulter',
|
|
||||||
},
|
|
||||||
component: () =>
|
|
||||||
import('src/pages/Customer/Defaulter/CustomerDefaulter.vue'),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'CustomerCard',
|
|
||||||
path: ':id',
|
|
||||||
component: () => import('src/pages/Customer/Card/CustomerCard.vue'),
|
|
||||||
redirect: { name: 'CustomerSummary' },
|
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: 'CustomerSummary',
|
name: 'CustomerSummary',
|
||||||
|
@ -107,8 +31,7 @@ export default {
|
||||||
title: 'summary',
|
title: 'summary',
|
||||||
icon: 'launch',
|
icon: 'launch',
|
||||||
},
|
},
|
||||||
component: () =>
|
component: () => import('src/pages/Customer/Card/CustomerSummary.vue'),
|
||||||
import('src/pages/Customer/Card/CustomerSummary.vue'),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'basic-data',
|
path: 'basic-data',
|
||||||
|
@ -503,6 +426,91 @@ export default {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Customer',
|
||||||
|
path: '/customer',
|
||||||
|
meta: {
|
||||||
|
title: 'customers',
|
||||||
|
icon: 'vn:client',
|
||||||
|
moduleName: 'Customer',
|
||||||
|
keyBinding: 'c',
|
||||||
|
menu: [
|
||||||
|
'CustomerList',
|
||||||
|
'CustomerPayments',
|
||||||
|
'CustomerNotifications',
|
||||||
|
'CustomerDefaulter',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
component: RouterView,
|
||||||
|
redirect: { name: 'CustomerMain' },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
name: 'CustomerMain',
|
||||||
|
path: '',
|
||||||
|
component: () => import('src/components/common/VnModule.vue'),
|
||||||
|
redirect: { name: 'CustomerIndexMain' },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
name: 'CustomerIndexMain',
|
||||||
|
redirect: { name: 'CustomerList' },
|
||||||
|
component: () => import('src/pages/Customer/CustomerList.vue'),
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
name: 'CustomerList',
|
||||||
|
path: 'list',
|
||||||
|
meta: {
|
||||||
|
title: 'list',
|
||||||
|
icon: 'view_list',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
customerCard,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'create',
|
||||||
|
name: 'CustomerCreate',
|
||||||
|
meta: {
|
||||||
|
title: 'customerCreate',
|
||||||
|
icon: 'add',
|
||||||
|
},
|
||||||
|
component: () => import('src/pages/Customer/CustomerCreate.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'payments',
|
||||||
|
name: 'CustomerPayments',
|
||||||
|
meta: {
|
||||||
|
title: 'webPayments',
|
||||||
|
icon: 'vn:onlinepayment',
|
||||||
|
},
|
||||||
|
component: () =>
|
||||||
|
import('src/pages/Customer/Payments/CustomerPayments.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'notifications',
|
||||||
|
name: 'CustomerNotifications',
|
||||||
|
meta: {
|
||||||
|
title: 'notifications',
|
||||||
|
icon: 'campaign',
|
||||||
|
},
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
'src/pages/Customer/Notifications/CustomerNotifications.vue'
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'defaulter',
|
||||||
|
name: 'CustomerDefaulter',
|
||||||
|
meta: {
|
||||||
|
title: 'defaulter',
|
||||||
|
icon: 'vn:defaulter',
|
||||||
|
},
|
||||||
|
component: () =>
|
||||||
|
import('src/pages/Customer/Defaulter/CustomerDefaulter.vue'),
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue