|
@@ -96,9 +96,12 @@
|
|
|
>
|
|
>
|
|
|
<q-expansion-item
|
|
<q-expansion-item
|
|
|
v-model="isExpasionItemExpanded[index]"
|
|
v-model="isExpasionItemExpanded[index]"
|
|
|
|
|
+ :to="item.name ? { name: item.name } : undefined"
|
|
|
|
|
+ active-class=""
|
|
|
|
|
+ exact-active-class=""
|
|
|
:class="{
|
|
:class="{
|
|
|
'menu-selected':
|
|
'menu-selected':
|
|
|
- childrenAreActive(item.childrens) &&
|
|
|
|
|
|
|
+ childrenAreActive(item.childrens, item.name) &&
|
|
|
!isExpasionItemExpanded[index],
|
|
!isExpasionItemExpanded[index],
|
|
|
}"
|
|
}"
|
|
|
>
|
|
>
|
|
@@ -136,10 +139,8 @@
|
|
|
<q-item
|
|
<q-item
|
|
|
v-ripple
|
|
v-ripple
|
|
|
clickable
|
|
clickable
|
|
|
- exact
|
|
|
|
|
- exact-active-class="menu-selected"
|
|
|
|
|
:class="{
|
|
:class="{
|
|
|
- 'menu-selected': childrenAreActive(item.childrens),
|
|
|
|
|
|
|
+ 'menu-selected': childrenAreActive(item.childrens, item.name),
|
|
|
}"
|
|
}"
|
|
|
>
|
|
>
|
|
|
<q-item-section avatar>
|
|
<q-item-section avatar>
|
|
@@ -159,6 +160,27 @@
|
|
|
self="top start"
|
|
self="top start"
|
|
|
>
|
|
>
|
|
|
<q-list>
|
|
<q-list>
|
|
|
|
|
+ <template v-if="item.name">
|
|
|
|
|
+ <q-item
|
|
|
|
|
+ v-ripple
|
|
|
|
|
+ v-close-popup
|
|
|
|
|
+ clickable
|
|
|
|
|
+ :to="{ name: item.name }"
|
|
|
|
|
+ exact
|
|
|
|
|
+ exact-active-class="menu-selected"
|
|
|
|
|
+ class="menu-drawer"
|
|
|
|
|
+ >
|
|
|
|
|
+ <q-item-section avatar>
|
|
|
|
|
+ <q-icon
|
|
|
|
|
+ :name="item.icon"
|
|
|
|
|
+ style="font-size: 20px"
|
|
|
|
|
+ color="dark"
|
|
|
|
|
+ />
|
|
|
|
|
+ </q-item-section>
|
|
|
|
|
+ <q-item-section>{{ $t(item.title) }}</q-item-section>
|
|
|
|
|
+ </q-item>
|
|
|
|
|
+ <q-separator />
|
|
|
|
|
+ </template>
|
|
|
<q-item
|
|
<q-item
|
|
|
v-for="child in item.childrens"
|
|
v-for="child in item.childrens"
|
|
|
:key="child.name"
|
|
:key="child.name"
|
|
@@ -268,10 +290,9 @@ const $q = useQuasar();
|
|
|
const miniStateCookies = Cookies.get("miniState");
|
|
const miniStateCookies = Cookies.get("miniState");
|
|
|
const miniState = ref(miniStateCookies === "true" ? true : false);
|
|
const miniState = ref(miniStateCookies === "true" ? true : false);
|
|
|
|
|
|
|
|
-const childrenAreActive = (children) => {
|
|
|
|
|
- if (!Array.isArray(children) || children.length === 0) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+const childrenAreActive = (children, parentName = null) => {
|
|
|
|
|
+ if (parentName && route?.name === parentName) return true;
|
|
|
|
|
+ if (!Array.isArray(children) || children.length === 0) return false;
|
|
|
return children.some((child) => route?.name === child?.name);
|
|
return children.some((child) => route?.name === child?.name);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -305,7 +326,7 @@ watch(miniState, () => {
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
navigation_store.navigationItems.forEach((item, index) => {
|
|
navigation_store.navigationItems.forEach((item, index) => {
|
|
|
- if (childrenAreActive(item.childrens)) {
|
|
|
|
|
|
|
+ if (childrenAreActive(item.childrens, item.name)) {
|
|
|
isExpasionItemExpanded.value[index] = true;
|
|
isExpasionItemExpanded.value[index] = true;
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|