UnitActionPage.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div>
  3. <DefaultHeaderPage title="Dados da Unidade" />
  4. <CustomTabComponent
  5. v-model:active-tab="activeTab"
  6. :tabs="allTabs"
  7. class="q-mb-md"
  8. />
  9. <UnitDataTab
  10. v-show="activeTab === 'unit_data'"
  11. v-model:form="form"
  12. :get-form-as-form-data="getFormAsFormData"
  13. :set-update-form-as-original="setUpdateFormAsOriginal"
  14. :unit-id="unitId"
  15. />
  16. <template v-if="unitId">
  17. <PartnersTab v-show="activeTab === 'partners'" :unit-id="unitId" />
  18. <ContractsTab v-show="activeTab === 'contracts'" :unit-id="unitId" />
  19. <FinancialTab v-show="activeTab === 'financial'" :unit-id="unitId" />
  20. <HistoryTab v-show="activeTab === 'history'" :unit-id="unitId" />
  21. <MediasTab v-show="activeTab === 'medias'" :unit-id="unitId" />
  22. </template>
  23. </div>
  24. </template>
  25. <script setup>
  26. import { computed, ref } from "vue";
  27. import { useFormUpdateTracker } from "src/composables/useFormUpdateTracker";
  28. import { userStore } from "src/stores/user";
  29. import DefaultHeaderPage from "src/components/layout/DefaultHeaderPage.vue";
  30. import CustomTabComponent from "src/components/shared/CustomTabComponent.vue";
  31. import ContractsTab from "src/pages/unit/tabs/ContractsTab.vue";
  32. import FinancialTab from "src/pages/unit/tabs/FinancialTab.vue";
  33. import HistoryTab from "src/pages/unit/tabs/HistoryTab.vue";
  34. import MediasTab from "src/pages/unit/tabs/MediasTab.vue";
  35. import PartnersTab from "src/pages/unit/tabs/PartnersTab.vue";
  36. import UnitDataTab from "src/pages/unit/tabs/UnitDataTab.vue";
  37. const store = userStore();
  38. const { form, getFormAsFormData, setUpdateFormAsOriginal } =
  39. useFormUpdateTracker({
  40. address_number: null,
  41. cell_number: null,
  42. city_id: null,
  43. cnpj: null,
  44. complement: null,
  45. email: null,
  46. fantasy_name: null,
  47. name_responsible: null,
  48. neighborhood: null,
  49. phone_number: null,
  50. postal_code: null,
  51. secondary_email: null,
  52. social_reason: null,
  53. state_id: null,
  54. state_registration: null,
  55. street: null,
  56. });
  57. const activeTab = ref("unit_data");
  58. const unitId = computed(() => store.user?.unit_id ?? null);
  59. const allTabs = [
  60. { name: "unit_data", label: "Dados da Unidade" },
  61. { name: "partners", label: "Sócios" },
  62. { name: "contracts", label: "Contratos" },
  63. { name: "financial", label: "Financeiro" },
  64. { name: "history", label: "Histórico" },
  65. { name: "medias", label: "Mídias" },
  66. ];
  67. </script>