Explorar o código

feat: adiciona menu laterais referente a financeiro

ebagabee hai 1 semana
pai
achega
5af1f038c2

+ 4 - 3
src/components/layout/LeftMenuLayout.vue

@@ -104,7 +104,7 @@
                   >
                   >
                     <template #header>
                     <template #header>
                       <q-item-section avatar>
                       <q-item-section avatar>
-                        <q-icon :name="item.icon" style="font-size: 20px" />
+                        <q-icon :name="item.icon" style="font-size: 20px" color="dark" />
                       </q-item-section>
                       </q-item-section>
                       <q-item-section>{{ $t(item.title) }}</q-item-section>
                       <q-item-section>{{ $t(item.title) }}</q-item-section>
                     </template>
                     </template>
@@ -118,7 +118,7 @@
                         class="q-pl-lg"
                         class="q-pl-lg"
                       >
                       >
                         <q-item-section avatar>
                         <q-item-section avatar>
-                          <q-icon :name="child.icon" style="font-size: 20px" />
+                          <q-icon :name="child.icon" style="font-size: 20px" color="dark" />
                         </q-item-section>
                         </q-item-section>
                         <q-item-section>{{ $t(child.title) }}</q-item-section>
                         <q-item-section>{{ $t(child.title) }}</q-item-section>
                         <q-tooltip
                         <q-tooltip
@@ -143,7 +143,7 @@
                     }"
                     }"
                   >
                   >
                     <q-item-section avatar>
                     <q-item-section avatar>
-                      <q-icon :name="item.icon" style="font-size: 20px" />
+                      <q-icon :name="item.icon" style="font-size: 20px" color="dark" />
                     </q-item-section>
                     </q-item-section>
                     <q-item-section>{{ $t(item.title) }}</q-item-section>
                     <q-item-section>{{ $t(item.title) }}</q-item-section>
                     <q-tooltip
                     <q-tooltip
@@ -174,6 +174,7 @@
                             <q-icon
                             <q-icon
                               :name="child.icon"
                               :name="child.icon"
                               style="font-size: 20px"
                               style="font-size: 20px"
+                              color="dark"
                             />
                             />
                           </q-item-section>
                           </q-item-section>
                           <q-item-section>{{ $t(child.title) }}</q-item-section>
                           <q-item-section>{{ $t(child.title) }}</q-item-section>

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

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

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

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

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

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

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

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

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

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

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

@@ -0,0 +1,67 @@
+export default [
+  {
+    path: "/financial/treasury",
+    name: "TreasuryPage",
+    component: () => import("pages/financial/TreasuryPage.vue"),
+    meta: {
+      title: { value: "Tesouraria", translate: false },
+      requireAuth: true,
+      breadcrumbs: [
+        { name: "DashboardPage", title: "Dashboard" },
+        { name: "TreasuryPage", title: "Tesouraria" },
+      ],
+    },
+  },
+  {
+    path: "/financial/accounts-payable",
+    name: "AccountsPayablePage",
+    component: () => import("pages/financial/AccountsPayablePage.vue"),
+    meta: {
+      title: { value: "Contas a Pagar", translate: false },
+      requireAuth: true,
+      breadcrumbs: [
+        { name: "DashboardPage", title: "Dashboard" },
+        { name: "AccountsPayablePage", title: "Contas a Pagar" },
+      ],
+    },
+  },
+  {
+    path: "/financial/accounts-receivable",
+    name: "AccountsReceivablePage",
+    component: () => import("pages/financial/AccountsReceivablePage.vue"),
+    meta: {
+      title: { value: "Contas a Receber", translate: false },
+      requireAuth: true,
+      breadcrumbs: [
+        { name: "DashboardPage", title: "Dashboard" },
+        { name: "AccountsReceivablePage", title: "Contas a Receber" },
+      ],
+    },
+  },
+  {
+    path: "/financial/chart-of-accounts",
+    name: "ChartOfAccountsPage",
+    component: () => import("pages/financial/ChartOfAccountsPage.vue"),
+    meta: {
+      title: { value: "Plano de Contas", translate: false },
+      requireAuth: true,
+      breadcrumbs: [
+        { name: "DashboardPage", title: "Dashboard" },
+        { name: "ChartOfAccountsPage", title: "Plano de Contas" },
+      ],
+    },
+  },
+  {
+    path: "/financial/invoice-issuance",
+    name: "InvoiceIssuancePage",
+    component: () => import("pages/financial/InvoiceIssuancePage.vue"),
+    meta: {
+      title: { value: "Emissão de Notas", translate: false },
+      requireAuth: true,
+      breadcrumbs: [
+        { name: "DashboardPage", title: "Dashboard" },
+        { name: "InvoiceIssuancePage", title: "Emissão de Notas" },
+      ],
+    },
+  },
+];

+ 40 - 0
src/stores/navigation.js

@@ -76,6 +76,46 @@ export const navigationStore = defineStore("navigation", () => {
       permission: false,
       permission: false,
       permissionScope: "dashboard",
       permissionScope: "dashboard",
     },
     },
+    {
+      type: "expansive",
+      title: "Financeiro",
+      icon: "mdi-cash-multiple",
+      disable: false,
+      permission: false,
+      permissionScope: "dashboard",
+      childrens: [
+        {
+          title: "Tesouraria",
+          name: "TreasuryPage",
+          icon: "mdi-bank-outline",
+          permission: true,
+        },
+        {
+          title: "Contas a Pagar",
+          name: "AccountsPayablePage",
+          icon: "mdi-cash-minus",
+          permission: true,
+        },
+        {
+          title: "Contas a Receber",
+          name: "AccountsReceivablePage",
+          icon: "mdi-cash-plus",
+          permission: true,
+        },
+        {
+          title: "Plano de Contas",
+          name: "ChartOfAccountsPage",
+          icon: "mdi-format-list-bulleted",
+          permission: true,
+        },
+        {
+          title: "Emissão de Notas",
+          name: "InvoiceIssuancePage",
+          icon: "mdi-file-document-outline",
+          permission: true,
+        },
+      ],
+    },
   ]);
   ]);
 
 
   const getNavigationAccess = () => {
   const getNavigationAccess = () => {