jws-frontend/src/pages/MainPage.vue

137 lines
3.2 KiB
Vue
Raw Normal View History

2024-04-02 11:02:16 +07:00
<script setup lang="ts">
2024-08-09 14:39:15 +07:00
import MenuItem from 'components/00_home/MenuItem.vue';
import { useNavigator } from 'src/stores/navigator';
2024-08-15 12:31:30 +07:00
import { onMounted, ref } from 'vue';
import { getRole } from 'src/services/keycloak';
2024-04-04 11:28:52 +07:00
const navigatorStore = useNavigator();
2024-08-15 12:31:30 +07:00
const menu = ref<InstanceType<typeof MenuItem>['$props']['list']>([]);
const role = ref();
2024-07-02 09:11:39 +00:00
onMounted(() => {
navigatorStore.current.title = '';
navigatorStore.current.path = [{ text: '' }];
2024-08-15 12:31:30 +07:00
role.value = getRole();
menu.value = [
{
value: 'branch-management',
icon: 'mdi-chart-donut',
color: 'green',
2024-08-26 16:24:08 +07:00
title: 'menu.branch',
caption: 'menu.branchCaption',
2024-08-15 12:31:30 +07:00
hidden:
role.value.includes('admin') ||
role.value.includes('branch_admin') ||
2024-08-15 12:34:59 +07:00
role.value.includes('head_of_admin') ||
role.value.includes('system') ||
role.value.includes('owner')
2024-08-15 12:31:30 +07:00
? false
: true,
},
{
value: 'personnel-management',
icon: 'fa6-solid:building-user',
color: 'cyan',
2024-08-26 16:24:08 +07:00
title: 'menu.user',
caption: 'menu.userCaption',
2024-08-15 12:31:30 +07:00
hidden:
role.value.includes('admin') ||
role.value.includes('branch_admin') ||
2024-08-15 12:34:59 +07:00
role.value.includes('head_of_admin') ||
role.value.includes('system') ||
2024-08-30 11:01:03 +07:00
role.value.includes('owner') ||
role.value.includes('branch_manager')
2024-08-15 12:31:30 +07:00
? false
: true,
},
{
value: 'customer-management',
icon: 'isax-frame5',
color: 'cyan',
2024-08-26 16:24:08 +07:00
title: 'menu.customer',
caption: 'menu.customerCaption',
2024-08-15 12:31:30 +07:00
isax: true,
},
{
value: 'product-service',
icon: 'heroicons-truck-solid',
color: 'orange',
2024-08-26 16:24:08 +07:00
title: 'menu.product',
caption: 'menu.productCaption',
2024-08-15 12:31:30 +07:00
},
{
2024-10-17 16:09:59 +07:00
value: 'quotation',
2024-08-15 12:31:30 +07:00
icon: 'mdi-file-document',
color: 'violet',
2024-08-26 16:24:08 +07:00
title: 'menu.quotation',
caption: 'menu.quotationCaption',
2024-08-15 12:31:30 +07:00
},
{
2024-12-04 11:49:46 +07:00
value: 'request-list',
2024-08-15 12:31:30 +07:00
icon: 'isax-device-message5',
color: 'purple',
2024-08-26 16:24:08 +07:00
title: 'menu.requestList',
caption: 'menu.requestListCaption',
2024-08-15 12:31:30 +07:00
isax: true,
},
{
2024-12-04 11:49:46 +07:00
value: 'task-order',
2024-08-15 12:31:30 +07:00
icon: 'isax-receipt-2-15',
color: 'red',
2024-12-04 11:49:46 +07:00
title: 'menu.taskOrder',
2024-08-26 16:24:08 +07:00
caption: 'menu.workOrderCaption',
2024-08-15 12:31:30 +07:00
isax: true,
},
{
value: '',
icon: 'material-symbols:box',
color: 'camo',
2024-08-26 16:24:08 +07:00
title: 'menu.invoice',
caption: 'menu.invoiceCaption',
2024-08-15 12:31:30 +07:00
disabled: true,
},
{
value: '',
icon: 'isax-dollar-circle4',
color: 'lime',
2024-08-26 16:24:08 +07:00
title: 'menu.accountingLedger',
caption: 'menu.accountingLedgerCaption',
2024-08-15 12:31:30 +07:00
isax: true,
disabled: true,
},
{
value: '',
icon: 'isax-element-35',
color: 'cyan',
2024-08-26 16:24:08 +07:00
title: 'menu.dashboard',
caption: 'menu.dashboardCaption',
2024-08-15 12:31:30 +07:00
isax: true,
disabled: true,
},
{
value: '',
icon: 'mdi-file-document',
color: 'indigo',
2024-08-26 16:24:08 +07:00
title: 'menu.report',
caption: 'menu.reportCaption',
2024-08-15 12:31:30 +07:00
disabled: true,
},
];
2024-07-02 09:11:39 +00:00
});
2024-04-02 11:02:16 +07:00
</script>
<template>
2024-07-02 10:52:28 +00:00
<div class="q-pb-lg">
2024-07-02 09:11:39 +00:00
<MenuItem :list="menu" />
</div>
2024-04-02 11:02:16 +07:00
</template>
<style scoped>
.person {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: var(--size-6);
}
</style>