Răsfoiți Sursa

feat: adicionando modo de edicao e adicao em unidade

ebagabee 2 săptămâni în urmă
părinte
comite
511ad3e30d

+ 20 - 18
src/pages/unit/UnitActionPage.vue

@@ -11,19 +11,19 @@
       :get-form-as-form-data="getFormAsFormData"
       :set-update-form-as-original="setUpdateFormAsOriginal"
     />
-    <PartnersTab
-      v-show="activeTab === 'partners'"
-      v-model:partners="form.partners"
-      :unit-id="unitId"
-    />
-    <ContractsTab
-      v-show="activeTab === 'contracts'"
-      v-model:contracts="form.contracts"
-      :unit-id="unitId"
-    />
-    <FinancialTab v-show="activeTab === 'financial'" :unit-id="unitId" />
-    <HistoryTab v-show="activeTab === 'history'" :unit-id="unitId" />
-    <MediasTab v-show="activeTab === 'medias'" :unit-id="unitId" />
+    <template v-if="unitId">
+      <PartnersTab
+        v-show="activeTab === 'partners'"
+        :unit-id="unitId"
+      />
+      <ContractsTab
+        v-show="activeTab === 'contracts'"
+        :unit-id="unitId"
+      />
+      <FinancialTab v-show="activeTab === 'financial'" :unit-id="unitId" />
+      <HistoryTab v-show="activeTab === 'history'" :unit-id="unitId" />
+      <MediasTab v-show="activeTab === 'medias'" :unit-id="unitId" />
+    </template>
   </div>
 </template>
 
@@ -36,7 +36,7 @@ import ContractsTab from "src/pages/unit/tabs/ContractsTab.vue";
 import FinancialTab from "src/pages/unit/tabs/FinancialTab.vue";
 import HistoryTab from "src/pages/unit/tabs/HistoryTab.vue";
 import MediasTab from "src/pages/unit/tabs/MediasTab.vue";
-import { ref } from "vue";
+import { ref, computed } from "vue";
 import { useRoute } from "vue-router";
 import { useFormUpdateTracker } from "src/composables/useFormUpdateTracker";
 
@@ -61,18 +61,20 @@ const { form, getFormAsFormData, setUpdateFormAsOriginal } =
     secondary_email: null,
     phone_number: null,
     cell_number: null,
-    partners: [],
-    contracts: [],
   });
 
 const activeTab = ref("unit_data");
 
-const tabs = ref([
+const allTabs = [
   { name: "unit_data", label: "Dados da Unidade" },
   { name: "partners", label: "Sócios" },
   { name: "contracts", label: "Contratos" },
   { name: "financial", label: "Financeiro" },
   { name: "history", label: "Histórico" },
   { name: "medias", label: "Mídias" },
-]);
+];
+
+const tabs = computed(() =>
+  unitId ? allTabs : allTabs.slice(0, 1)
+);
 </script>

+ 23 - 13
src/pages/unit/components/AddEditPartnerDialog.vue

@@ -1,12 +1,21 @@
 <template>
   <q-dialog ref="dialogRef" @hide="onDialogHide">
-    <q-card class="q-dialog-plugin overflow-hidden" style="width: 860px; max-width: 95vw">
-      <DefaultDialogHeader :title="() => partner ? 'Editar Sócio' : 'Adicionar Sócio'" @close="onDialogCancel" />
+    <q-card
+      class="q-dialog-plugin overflow-hidden"
+      style="width: 860px; max-width: 95vw"
+    >
+      <DefaultDialogHeader
+        :title="() => (partner ? 'Editar Sócio' : 'Adicionar Sócio')"
+        @close="onDialogCancel"
+      />
 
       <q-form ref="formRef" @submit="onOKClick">
         <q-card-section class="q-pt-none">
           <div class="column items-center q-mb-md">
-            <AvatarImageComponent ref="avatarRef" @update:file="onAvatarChange" />
+            <AvatarImageComponent
+              ref="avatarRef"
+              @update:file="onAvatarChange"
+            />
           </div>
 
           <div class="row q-col-gutter-sm">
@@ -41,12 +50,7 @@
               :rules="[inputRules.required]"
             />
 
-            <DefaultInput
-              v-model="form.rg"
-              label="RG"
-              class="col-3"
-              outlined
-            />
+            <DefaultInput v-model="form.rg" label="RG" class="col-3" outlined />
 
             <DefaultInput
               v-model="birthDateDisplay"
@@ -101,7 +105,7 @@
 
             <DefaultCepInput
               v-model="form.postal_code"
-              class="col-3"
+              class="col-6"
               outlined
               @rua="form.street = $event"
               @bairro="form.neighborhood = $event"
@@ -119,7 +123,7 @@
             <DefaultInput
               v-model="form.address_number"
               label="Número"
-              class="col-3"
+              class="col-6"
               outlined
             />
 
@@ -158,7 +162,12 @@
 
         <q-card-actions>
           <q-space />
-          <q-btn outline color="negative" label="Cancelar" @click="onDialogCancel" />
+          <q-btn
+            outline
+            color="negative"
+            label="Cancelar"
+            @click="onDialogCancel"
+          />
           <q-btn
             color="primary-2"
             :label="partner ? 'Salvar' : 'Adicionar'"
@@ -206,7 +215,8 @@ const { partner, unitId, offlineMode } = defineProps({
 });
 
 const { inputRules } = useInputRules();
-const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent();
+const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } =
+  useDialogPluginComponent();
 
 const formRef = ref(null);
 const avatarRef = ref(null);

+ 1 - 22
src/pages/unit/tabs/UnitDataTab.vue

@@ -256,31 +256,10 @@ const { loading, execute } = useSubmitHandler({
 
 async function onSave() {
   await execute(() => {
+    const formData = props.getFormAsFormData();
     if (props.unitId) {
-      const formData = props.getFormAsFormData();
       return updateUnit(props.unitId, formData);
     }
-
-    const pendingPartners = form.value.partners.splice(0);
-    const pendingContracts = form.value.contracts.splice(0);
-
-    const formData = props.getFormAsFormData();
-
-    form.value.partners.push(...pendingPartners);
-    form.value.contracts.push(...pendingContracts);
-
-    pendingPartners.forEach((partner, index) => {
-      Object.entries(partner).forEach(([key, value]) => {
-        if (value != null) {
-          formData.append(`partners[${index}][${key}]`, value);
-        }
-      });
-    });
-
-    pendingContracts.forEach((contract) => {
-      formData.append("contracts[]", contract.file, contract.name);
-    });
-
     return createUnit(formData);
   });
 }