From a01b80703ed7e24df405a762c840189ef6060f89 Mon Sep 17 00:00:00 2001 From: wbuezas Date: Sat, 27 Jan 2024 12:08:56 -0300 Subject: [PATCH] Create child submodules feature --- src/components/LeftMenu.vue | 10 +++++ src/i18n/en/index.js | 4 +- src/i18n/es/index.js | 2 + .../Customer/Card/CustomerCreditContracts.vue | 1 + .../Customer/Card/CustomerCreditOpinion.vue | 1 + src/router/modules/customer.js | 39 +++++++++++++++++++ src/stores/useNavigationStore.js | 9 ++++- 7 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 src/pages/Customer/Card/CustomerCreditContracts.vue create mode 100644 src/pages/Customer/Card/CustomerCreditOpinion.vue diff --git a/src/components/LeftMenu.vue b/src/components/LeftMenu.vue index 2eac97c65..019e75f4b 100644 --- a/src/components/LeftMenu.vue +++ b/src/components/LeftMenu.vue @@ -206,6 +206,16 @@ async function togglePinned(item, event) { diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js index 742134ecd..ef2667b89 100644 --- a/src/i18n/en/index.js +++ b/src/i18n/en/index.js @@ -131,6 +131,8 @@ export default { log: 'Log', sms: 'Sms', creditManagement: 'Credit management', + creditContracts: 'Credit contracts', + creditOpinion: 'Credit opinion', others: 'Others', }, list: { @@ -886,7 +888,7 @@ export default { RouteList: 'List', create: 'Create', basicData: 'Basic Data', - summary: 'Summary' + summary: 'Summary', }, cmr: { list: { diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js index ed6633bd9..4991d8320 100644 --- a/src/i18n/es/index.js +++ b/src/i18n/es/index.js @@ -131,6 +131,8 @@ export default { log: 'Historial', sms: 'Sms', creditManagement: 'Gestión de crédito', + creditContracts: 'Contratos de crédito', + creditOpinion: 'Opinión de crédito', others: 'Otros', }, list: { diff --git a/src/pages/Customer/Card/CustomerCreditContracts.vue b/src/pages/Customer/Card/CustomerCreditContracts.vue new file mode 100644 index 000000000..190307f13 --- /dev/null +++ b/src/pages/Customer/Card/CustomerCreditContracts.vue @@ -0,0 +1 @@ + diff --git a/src/pages/Customer/Card/CustomerCreditOpinion.vue b/src/pages/Customer/Card/CustomerCreditOpinion.vue new file mode 100644 index 000000000..605f3db2e --- /dev/null +++ b/src/pages/Customer/Card/CustomerCreditOpinion.vue @@ -0,0 +1 @@ + diff --git a/src/router/modules/customer.js b/src/router/modules/customer.js index a17ef4271..9a1abc8bd 100644 --- a/src/router/modules/customer.js +++ b/src/router/modules/customer.js @@ -352,10 +352,49 @@ export default { meta: { title: 'creditManagement', icon: 'paid', + children: [ + { + name: 'CustomerCreditContracts', + title: 'creditContracts', + icon: 'paid', + }, + { + name: 'CustomerCreditOpinion', + title: 'creditOpinion', + icon: 'paid', + }, + ], }, component: () => import('src/pages/Customer/Card/CustomerCreditManagement.vue'), + children: [ + { + path: 'credit-contracts', + name: 'CustomerCreditContracts', + meta: { + title: 'creditContracts', + icon: 'paid', + }, + component: () => + import( + 'src/pages/Customer/Card/CustomerCreditContracts.vue' + ), + }, + { + path: 'credit-opinion', + name: 'CustomerCreditOpinion', + meta: { + title: 'creditOpinion', + icon: 'paid', + }, + component: () => + import( + 'src/pages/Customer/Card/CustomerCreditOpinion.vue' + ), + }, + ], }, + { path: 'others', name: 'CustomerOthers', diff --git a/src/stores/useNavigationStore.js b/src/stores/useNavigationStore.js index 2eda6f686..aa3e95a1a 100644 --- a/src/stores/useNavigationStore.js +++ b/src/stores/useNavigationStore.js @@ -52,13 +52,20 @@ export const useNavigationStore = defineStore('navigationStore', () => { function addMenuItem(module, route, parent) { const { meta } = route; + let { children = null } = meta; + if (children) + children = children.map(({ name, title, icon }) => ({ + name, + icon, + title: `${module}.pageTitles.${title}`, + })); if (meta && meta.roles && role.hasAny(meta.roles) === false) return; const item = { name: route.name, + children: children, }; - if (meta) { item.title = `${module}.pageTitles.${meta.title}`; item.icon = meta.icon;