Kaynağa Gözat

feat: contas a receber

ebagabee 1 hafta önce
ebeveyn
işleme
1c4d5ca62f

+ 1 - 2
src/pages/financial/AccountsPayablePage.vue

@@ -53,8 +53,7 @@
         v-else
         v-model:rows="movimentacoesRows"
         no-api-call
-        add-item
-        add-item-label="Exportar Relatório"
+        :add-item="false"
         title="Últimas Movimentações"
         description="movimentações"
         :female="true"

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

@@ -1,9 +1,94 @@
 <template>
   <div>
     <DefaultHeaderPage title="Contas a Receber" :show-filter-icon="false" />
+
+    <div class="row q-pa-md q-gutter-md">
+      <FinancialCard
+        title="Saldo Tesouraria"
+        icon="mdi-bank-outline"
+        :financial-value="0"
+        :integer="0"
+        integer-label="pagamentos pendentes"
+      />
+      <FinancialCard
+        title="Contas Recebidas"
+        icon="mdi-check-circle-outline"
+        :financial-value="0"
+        :integer="0"
+        integer-label="pagamentos pendentes"
+      />
+      <FinancialCard
+        title="Contas a Receber"
+        icon="mdi-cash-plus"
+        :financial-value="0"
+        :integer="0"
+        integer-label="pagamentos pendentes"
+      />
+    </div>
+
+    <div class="row justify-end items-center q-px-md q-mb-sm q-gutter-sm">
+      <q-btn
+        :color="showMovimentacoes ? 'secondary' : 'primary'"
+        label="Últimas Movimentações"
+        unelevated
+        no-caps
+        @click="showMovimentacoes = !showMovimentacoes"
+      />
+      <q-btn color="primary" label="Exportar Relatório" icon="mdi-download" unelevated no-caps />
+    </div>
+
+    <div class="q-px-md">
+      <DefaultTable
+        v-if="!showMovimentacoes"
+        v-model:rows="rows"
+        no-api-call
+        add-item
+        title="Contas a Receber"
+        description="contas"
+        :female="true"
+        :columns="columns"
+        @on-add-item="handleAddItem"
+      />
+      <DefaultTable
+        v-else
+        v-model:rows="movimentacoesRows"
+        no-api-call
+        :add-item="false"
+        title="Últimas Movimentações"
+        description="movimentações"
+        :female="true"
+        :columns="movimentacoesColumns"
+        @on-add-item="handleAddItem"
+      />
+    </div>
   </div>
 </template>
 
 <script setup>
+import { ref } from "vue";
 import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
+import DefaultTable from "src/components/defaults/DefaultTable.vue";
+import FinancialCard from "src/components/financial/FinancialCard.vue";
+
+const showMovimentacoes = ref(false);
+const rows = ref([]);
+const movimentacoesRows = ref([]);
+
+const columns = [
+  { name: "unit", label: "Unidade", field: "unit", align: "left" },
+  { name: "description", label: "Descrição", field: "description", align: "left" },
+  { name: "category", label: "Categoria", field: "category", align: "left" },
+  { name: "value", label: "Valor", field: "value", align: "left" },
+  { name: "due_date", label: "Vencimento", field: "due_date", align: "left" },
+  { name: "status", label: "Status", field: "status", align: "left" },
+];
+
+const movimentacoesColumns = [
+  { name: "description", label: "Descrição", field: "description", align: "left" },
+  { name: "date", label: "Data", field: "date", align: "left" },
+  { name: "value", label: "Valor", field: "value", align: "left" },
+  { name: "status", label: "Status", field: "status", align: "left" },
+];
+
+const handleAddItem = () => {};
 </script>