This commit is contained in:
parent
0150de9661
commit
3ff6715528
1 changed files with 81 additions and 25 deletions
|
|
@ -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 () => {
|
|||
</header>
|
||||
|
||||
<div id="drawer-menu" class="q-pl-md q-mr-xs q-gutter-y-sm">
|
||||
<template v-for="(menu, i) in menuData" :key="i">
|
||||
<template
|
||||
v-for="(menu, i) in menuData.filter(
|
||||
(v) =>
|
||||
!(v.children?.length === 0 || v.children?.every((i) => i.hidden)),
|
||||
)"
|
||||
:key="i"
|
||||
>
|
||||
<q-expansion-item
|
||||
v-if="!menu.hidden"
|
||||
:id="menu.label"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue