ソースを参照

feat: adiciona pagina para financeiro

ebagabee 1 週間 前
コミット
37648c583d

+ 30 - 9
src/components/layout/LeftMenuLayout.vue

@@ -96,9 +96,12 @@
                   >
                   <q-expansion-item
                     v-model="isExpasionItemExpanded[index]"
+                    :to="item.name ? { name: item.name } : undefined"
+                    active-class=""
+                    exact-active-class=""
                     :class="{
                       'menu-selected':
-                        childrenAreActive(item.childrens) &&
+                        childrenAreActive(item.childrens, item.name) &&
                         !isExpasionItemExpanded[index],
                     }"
                   >
@@ -136,10 +139,8 @@
                   <q-item
                     v-ripple
                     clickable
-                    exact
-                    exact-active-class="menu-selected"
                     :class="{
-                      'menu-selected': childrenAreActive(item.childrens),
+                      'menu-selected': childrenAreActive(item.childrens, item.name),
                     }"
                   >
                     <q-item-section avatar>
@@ -159,6 +160,27 @@
                       self="top start"
                     >
                       <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
                           v-for="child in item.childrens"
                           :key="child.name"
@@ -268,10 +290,9 @@ const $q = useQuasar();
 const miniStateCookies = Cookies.get("miniState");
 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);
 };
 
@@ -305,7 +326,7 @@ watch(miniState, () => {
 
 onMounted(() => {
   navigation_store.navigationItems.forEach((item, index) => {
-    if (childrenAreActive(item.childrens)) {
+    if (childrenAreActive(item.childrens, item.name)) {
       isExpasionItemExpanded.value[index] = true;
     }
   });

+ 9 - 0
src/pages/financial/FinancialPage.vue

@@ -0,0 +1,9 @@
+<template>
+  <div>
+    <DefaultHeaderPage title="Financeiro" :show-filter-icon="false" />
+  </div>
+</template>
+
+<script setup>
+import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
+</script>

+ 13 - 0
src/router/routes/financial.route.js

@@ -1,4 +1,17 @@
 export default [
+  {
+    path: "/financial",
+    name: "FinancialPage",
+    component: () => import("pages/financial/FinancialPage.vue"),
+    meta: {
+      title: { value: "Financeiro", translate: false },
+      requireAuth: true,
+      breadcrumbs: [
+        { name: "DashboardPage", title: "Dashboard" },
+        { name: "FinancialPage", title: "Financeiro" },
+      ],
+    },
+  },
   {
     path: "/financial/treasury",
     name: "TreasuryPage",

+ 1 - 0
src/stores/navigation.js

@@ -79,6 +79,7 @@ export const navigationStore = defineStore("navigation", () => {
     {
       type: "expansive",
       title: "Financeiro",
+      name: "FinancialPage",
       icon: "mdi-cash-multiple",
       disable: false,
       permission: false,