TbrPage.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div class="tab-page-layout">
  3. <DefaultHeaderPage title="TBR - Configurações" :show-filter-icon="false" />
  4. <div class="tab-page-body q-px-sm">
  5. <CustomTabComponent
  6. v-model:active-tab="currentTab"
  7. class="q-mb-md"
  8. :tabs="tabs"
  9. />
  10. <q-scroll-area class="tab-page-scroll-area">
  11. <div v-show="currentTab === 'settings'">
  12. <SettingsTab />
  13. </div>
  14. <div v-show="currentTab === 'contracts'">
  15. <ContractsTab />
  16. </div>
  17. <div v-show="currentTab === 'billings'">
  18. <BillingsTab />
  19. </div>
  20. <div v-show="currentTab === 'inhabitant_classifications'">
  21. <InhabitantClassificationsTab />
  22. </div>
  23. </q-scroll-area>
  24. </div>
  25. </div>
  26. </template>
  27. <script setup>
  28. import { defineAsyncComponent, ref } from "vue";
  29. import CustomTabComponent from "src/components/shared/CustomTabComponent.vue";
  30. import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
  31. const SettingsTab = defineAsyncComponent(
  32. () => import("./tabs/SettingsTab.vue"),
  33. );
  34. const ContractsTab = defineAsyncComponent(
  35. () => import("./tabs/ContractsTab.vue"),
  36. );
  37. const BillingsTab = defineAsyncComponent(
  38. () => import("./tabs/BillingsTab.vue"),
  39. );
  40. const InhabitantClassificationsTab = defineAsyncComponent(
  41. () => import("./tabs/InhabitantClassificationsTab.vue"),
  42. );
  43. const currentTab = ref("settings");
  44. const tabs = [
  45. { name: "settings", label: "Configurações" },
  46. { name: "inhabitant_classifications", label: "Faixas" },
  47. { name: "contracts", label: "Contratos" },
  48. { name: "billings", label: "Cobranças" },
  49. ];
  50. </script>