From 3ff6715528bdf73d7f3ca7f49907202d57c2dc24 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 24 Mar 2025 10:27:33 +0700 Subject: [PATCH] refactor: menu role --- src/layouts/DrawerComponent.vue | 106 ++++++++++++++++++++++++-------- 1 file changed, 81 insertions(+), 25 deletions(-) diff --git a/src/layouts/DrawerComponent.vue b/src/layouts/DrawerComponent.vue index b3c4fd61..e7664456 100644 --- a/src/layouts/DrawerComponent.vue +++ b/src/layouts/DrawerComponent.vue @@ -7,6 +7,7 @@ import useMyBranch from 'stores/my-branch'; import { getUserId, getRole } from 'src/services/keycloak'; import { useQuasar } from 'quasar'; import { useI18n } from 'vue-i18n'; +import { isRoleInclude } from 'src/stores/utils'; type Menu = { label: string; @@ -70,44 +71,82 @@ function initMenu() { { label: 'branch', route: '/branch-management', - hidden: !( - role.value.includes('admin') || - role.value.includes('branch_manager') || - role.value.includes('head_of_admin') || - role.value.includes('system') || - role.value.includes('owner') || - role.value.includes('head_of_account') - ), + hidden: !isRoleInclude([ + 'system', + 'head_of_admin', + 'admin', + 'branch_manager', + 'head_of_accountant', + ]), }, { label: 'personnel', route: '/personnel-management', - hidden: !( - role.value.includes('admin') || - role.value.includes('head_of_admin') || - role.value.includes('system') || - role.value.includes('owner') || - role.value.includes('branch_manager') - ), + hidden: !isRoleInclude([ + 'owner', + 'system', + 'head_of_admin', + 'admin', + 'branch_manager', + ]), + }, + { + label: 'workflow', + route: '/workflow', + hidden: !isRoleInclude(['system', 'head_of_admin', 'admin']), }, - { label: 'workflow', route: '/workflow' }, { label: 'property', route: '/property', - hidden: !( - role.value.includes('admin') || - role.value.includes('head_of_admin') || - role.value.includes('system') - ), + hidden: !isRoleInclude(['system', 'head_of_admin', 'admin']), + }, + { + label: 'productService', + route: '/product-service', + hidden: !isRoleInclude([ + 'system', + 'head_of_admin', + 'admin', + 'branch_manager', + 'head_of_accountant', + 'head_of_sale', + 'sale', + ]), + }, + { + label: 'customer', + route: '/customer-management', + hidden: !isRoleInclude([ + 'system', + 'head_of_admin', + 'admin', + 'branch_manager', + 'head_of_accountant', + 'accountant', + 'head_of_sale', + 'sale', + ]), + }, + { + label: 'agencies', + route: '/agencies-management', + hidden: !isRoleInclude(['system', 'head_of_admin', 'admin']), }, - { label: 'productService', route: '/product-service' }, - { label: 'customer', route: '/customer-management' }, - { label: 'agencies', route: '/agencies-management' }, ], }, { label: 'menu.sales', icon: 'mdi-store-settings-outline', + hidden: !isRoleInclude([ + 'system', + 'head_of_admin', + 'admin', + 'branch_manager', + 'head_of_accountant', + 'account', + 'head_of_sale', + 'sale', + ]), children: [ { label: 'quotation', route: '/quotation' }, { label: 'invoice', route: '/invoice' }, @@ -130,6 +169,16 @@ function initMenu() { label: 'menu.account', icon: 'mdi-bank-outline', disabled: false, + hidden: !isRoleInclude([ + 'system', + 'head_of_admin', + 'admin', + 'branch_manager', + 'head_of_accountant', + 'account', + 'head_of_sale', + 'sale', + ]), children: [ { label: 'receipt', route: '/receipt' }, { label: 'creditNote', route: '/credit-note' }, @@ -151,6 +200,7 @@ function initMenu() { { label: 'menu.overall', icon: 'mdi-monitor-dashboard', + hidden: !isRoleInclude(['system', 'head_of_admin', 'admin', 'executive']), children: [ { label: 'report', route: '/report' }, { label: 'dashboard', route: '/dash-board' }, @@ -250,7 +300,13 @@ onMounted(async () => {
-