UnitActionPage.vue 2.4 KB

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