diff --git a/src/layouts/DrawerComponent.vue b/src/layouts/DrawerComponent.vue index 889bb301..9dbe28c4 100644 --- a/src/layouts/DrawerComponent.vue +++ b/src/layouts/DrawerComponent.vue @@ -10,18 +10,107 @@ defineProps<{ mini?: boolean; }>(); +const role = ref(); + onMounted(async () => { const uid = getUserId(); - const role = getRole(); + role.value = getRole(); if (!uid) return; - if (role?.includes('system')) { + if (role.value.includes('system')) { const result = await userBranch.fetchListOptionBranch(); if (result && result.total > 0) currentMyBranch.value = result.result[0]; } const result = await userBranch.fetchListMyBranch(uid); if (result && result.total > 0) currentMyBranch.value = result.result[0]; + + labelMenu.value = [ + { + label: 'drawerDashboard', + icon: 'isax-element-35', + route: '', + isax: true, + disabled: true, + }, + { + label: 'drawerBranchManagement', + icon: 'mdi-chart-donut', + route: '/branch-management', + hidden: + role.value.includes('admin') || + role.value.includes('branch_admin') || + role.value.includes('head_of_admin') + ? false + : true, + }, + { + label: 'drawerPersonnelManagement', + icon: 'fa6-solid:building-user', + route: '/personnel-management', + hidden: + role.value.includes('admin') || + role.value.includes('branch_admin') || + role.value.includes('head_of_admin') + ? false + : true, + }, + { + label: 'drawerCustomerManagement', + icon: 'isax-frame5', + route: '/customer-management', + isax: true, + }, + { + label: 'drawerProductsAndServices', + icon: 'heroicons-truck-solid', + route: '/product-service', + }, + { + label: 'menu.dms', + icon: 'mdi-folder-file', + route: '/document-management', + }, + { + label: 'drawerQuotation', + icon: 'mdi-file-document', + route: '', + disabled: true, + }, + { + label: 'drawerRequestList', + icon: 'isax-device-message5', + route: '', + disabled: true, + isax: true, + }, + { + label: 'drawerWorkOrder', + icon: 'isax-receipt-2-15', + route: '', + disabled: true, + isax: true, + }, + { + label: 'drawerInvoice', + icon: 'material-symbols:box', + route: '', + disabled: true, + }, + { + label: 'drawerAccountingLedger', + icon: 'isax-dollar-circle4', + route: '', + isax: true, + disabled: true, + }, + { + label: 'drawerReport', + icon: 'mdi-file-document', + route: '', + disabled: true, + }, + ]; }); const router = useRouter(); @@ -42,80 +131,7 @@ const labelMenu = ref< disabled?: boolean; isax?: boolean; }[] ->([ - { - label: 'drawerDashboard', - icon: 'isax-element-35', - route: '', - isax: true, - disabled: true, - }, - { - label: 'drawerBranchManagement', - icon: 'mdi-chart-donut', - route: '/branch-management', - }, - { - label: 'drawerPersonnelManagement', - icon: 'fa6-solid:building-user', - route: '/personnel-management', - }, - { - label: 'drawerCustomerManagement', - icon: 'isax-frame5', - route: '/customer-management', - isax: true, - }, - { - label: 'drawerProductsAndServices', - icon: 'heroicons-truck-solid', - route: '/product-service', - }, - { - label: 'menu.dms', - icon: 'mdi-folder-file', - route: '/document-management', - }, - { - label: 'drawerQuotation', - icon: 'mdi-file-document', - route: '', - disabled: true, - }, - { - label: 'drawerRequestList', - icon: 'isax-device-message5', - route: '', - disabled: true, - isax: true, - }, - { - label: 'drawerWorkOrder', - icon: 'isax-receipt-2-15', - route: '', - disabled: true, - isax: true, - }, - { - label: 'drawerInvoice', - icon: 'material-symbols:box', - route: '', - disabled: true, - }, - { - label: 'drawerAccountingLedger', - icon: 'isax-dollar-circle4', - route: '', - isax: true, - disabled: true, - }, - { - label: 'drawerReport', - icon: 'mdi-file-document', - route: '', - disabled: true, - }, -]); +>([]); const leftDrawerOpen = defineModel('leftDrawerOpen', { default: true, diff --git a/src/pages/MainPage.vue b/src/pages/MainPage.vue index 645e6676..b80bbdba 100644 --- a/src/pages/MainPage.vue +++ b/src/pages/MainPage.vue @@ -1,104 +1,121 @@