feat: disabled menu
This commit is contained in:
parent
8cb6a87be1
commit
17bf0737eb
3 changed files with 51 additions and 8 deletions
|
|
@ -7,7 +7,9 @@ const router = useRouter();
|
|||
|
||||
const currentRoute = ref<string>('');
|
||||
|
||||
const labelMenu = ref<{ label: string; icon: string; route: string }[]>([
|
||||
const labelMenu = ref<
|
||||
{ label: string; icon: string; route: string; disabled?: boolean }[]
|
||||
>([
|
||||
{
|
||||
label: 'drawerDashboard',
|
||||
icon: 'img:/file-account-outline.png',
|
||||
|
|
@ -33,16 +35,43 @@ const labelMenu = ref<{ label: string; icon: string; route: string }[]>([
|
|||
icon: 'raphael:package',
|
||||
route: '/product-service',
|
||||
},
|
||||
{ label: 'drawerQuotation', icon: 'raphael:package', route: '' },
|
||||
{ label: 'drawerRequestList', icon: 'raphael:package', route: '' },
|
||||
{ label: 'drawerWorkOrder', icon: 'raphael:package', route: '' },
|
||||
{ label: 'drawerInvoice', icon: 'raphael:package', route: '' },
|
||||
{
|
||||
label: 'drawerQuotation',
|
||||
icon: 'raphael:package',
|
||||
route: '',
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
label: 'drawerRequestList',
|
||||
icon: 'raphael:package',
|
||||
route: '',
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
label: 'drawerWorkOrder',
|
||||
icon: 'raphael:package',
|
||||
route: '',
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
label: 'drawerInvoice',
|
||||
icon: 'raphael:package',
|
||||
route: '',
|
||||
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
label: 'drawerAccountingLedger',
|
||||
icon: 'mdi-account-cash-outline',
|
||||
route: '',
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
label: 'drawerReport',
|
||||
icon: 'mdi-file-chart-outline',
|
||||
route: '',
|
||||
disabled: true,
|
||||
},
|
||||
{ label: 'drawerReport', icon: 'mdi-file-chart-outline', route: '' },
|
||||
]);
|
||||
|
||||
const leftDrawerOpen = defineModel<boolean>('leftDrawerOpen', {
|
||||
|
|
@ -83,6 +112,7 @@ function navigateTo(label: string, destination: string) {
|
|||
v-for="v in labelMenu"
|
||||
:key="v.label"
|
||||
clickable
|
||||
:disable="!!v.disabled"
|
||||
@click="navigateTo(v.label, v.route)"
|
||||
class="no-padding"
|
||||
:class="{ active: currentRoute === v.label, dark: $q.dark.isActive }"
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ defineProps<{
|
|||
icon: string;
|
||||
title: string;
|
||||
caption: string;
|
||||
disabled?: boolean;
|
||||
isax?: boolean;
|
||||
color:
|
||||
| 'green'
|
||||
|
|
@ -35,10 +36,11 @@ function navigateTo(destination: string) {
|
|||
<div class="menu-container">
|
||||
<AppBox
|
||||
class="column inline-flex items-center"
|
||||
:class="{ disabled: !!v.disabled }"
|
||||
v-for="(v, i) in list"
|
||||
:key="i"
|
||||
:bordered="$q.dark.isActive"
|
||||
@click="navigateTo(v.value)"
|
||||
@click="!v.disabled && navigateTo(v.value)"
|
||||
>
|
||||
<AppCircle
|
||||
:id="`menu-icon-${v.value}`"
|
||||
|
|
@ -65,7 +67,11 @@ function navigateTo(destination: string) {
|
|||
transition: 100ms border-color ease-in-out;
|
||||
border: 1px solid transparent;
|
||||
|
||||
&:hover {
|
||||
&.disabled {
|
||||
opacity: 0.4;
|
||||
filter: grayscale(1);
|
||||
}
|
||||
&:not(.disabled):hover {
|
||||
cursor: pointer;
|
||||
border-color: var(--brand-1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ const menu = [
|
|||
color: 'violet',
|
||||
title: 'mainQuotationTitle',
|
||||
caption: 'mainQuotationCaption',
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
|
|
@ -46,6 +47,7 @@ const menu = [
|
|||
title: 'mainRequestTitle',
|
||||
caption: 'mainRequestCaption',
|
||||
isax: true,
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
|
|
@ -54,6 +56,7 @@ const menu = [
|
|||
title: 'mainOrderTitle',
|
||||
caption: 'mainOrderCaption',
|
||||
isax: true,
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
|
|
@ -61,6 +64,7 @@ const menu = [
|
|||
color: 'camo',
|
||||
title: 'mainReceiptTitle',
|
||||
caption: 'mainReceiptCaption',
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
|
|
@ -69,6 +73,7 @@ const menu = [
|
|||
title: 'mainFinanceTitle',
|
||||
caption: 'mainFinanceCaption',
|
||||
isax: true,
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
|
|
@ -77,6 +82,7 @@ const menu = [
|
|||
title: 'mainDashboardTitle',
|
||||
caption: 'mainDashboardCaption',
|
||||
isax: true,
|
||||
disabled: true,
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
|
|
@ -84,6 +90,7 @@ const menu = [
|
|||
color: 'indigo',
|
||||
title: 'mainReportTitle',
|
||||
caption: 'mainReportCaption',
|
||||
disabled: true,
|
||||
},
|
||||
] satisfies InstanceType<typeof MenuItem>['$props']['list'];
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue