Просмотр исходного кода

feat(partners_tab): adiciona tab de socios

ebagabee 3 недель назад
Родитель
Сommit
3b90613198
1 измененных файлов с 163 добавлено и 1 удалено
  1. 163 1
      src/pages/unit/tabs/PartnersTab.vue

+ 163 - 1
src/pages/unit/tabs/PartnersTab.vue

@@ -1,3 +1,165 @@
 <template>
-  <h1>Sócios</h1>
+  <div class="q-pa-md">
+    <template v-if="view === 'list'">
+      <div class="row justify-end">
+        <q-btn
+          icon="add"
+          color="primary"
+          style="height: 40px; width: 40px"
+          @click="view = 'form'"
+        />
+      </div>
+    </template>
+
+    <template v-else>
+      <div class="column justify-center items-center q-mb-lg">
+        <AvatarImageComponent @update:file="onAvatarChange" />
+
+        <div class="row full-width q-mt-md q-col-gutter-sm">
+          <DefaultInput
+            v-model="form.full_name"
+            label="Nome completo"
+            class="col-12"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.social_name"
+            label="Nome social"
+            class="col-6"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.role"
+            label="Função"
+            class="col-6"
+            outlined
+          />
+
+          <DefaultInput v-model="form.cpf" label="CPF" class="col-6" outlined />
+
+          <DefaultInput v-model="form.rg" label="RG" class="col-6" outlined />
+
+          <DefaultInput
+            v-model="form.address"
+            label="Endereço"
+            class="col-8"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.address_number"
+            label="Número"
+            class="col-4"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.zip_code"
+            label="CEP"
+            class="col-3"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.neighborhood"
+            label="Bairro"
+            class="col-5"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.city_state"
+            label="Cidade / Estado"
+            class="col-4"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.complement"
+            label="Complemento"
+            class="col-12"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.primary_email"
+            label="E-mail Principal"
+            class="col-6"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.secondary_email"
+            label="E-mail Secundário"
+            class="col-6"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.phone"
+            label="Telefone"
+            class="col-6"
+            outlined
+          />
+
+          <DefaultInput
+            v-model="form.cellphone_number"
+            label="Celular"
+            class="col-6"
+            outlined
+          />
+        </div>
+
+        <div class="row justify-end q-mt-md items-end full-width q-px-xs">
+          <div class="row q-gutter-sm">
+            <q-btn
+              label="Cancelar"
+              color="primary"
+              outline
+              @click="view = 'list'"
+            />
+            <q-btn label="Salvar" color="primary" />
+            <q-btn
+              icon="mdi-paperclip-plus"
+              color="primary"
+              style="height: 40px; width: 40px"
+            />
+          </div>
+        </div>
+      </div>
+    </template>
+  </div>
 </template>
+
+<script setup>
+import { ref } from "vue";
+import DefaultInput from "src/components/defaults/DefaultInput.vue";
+import AvatarImageComponent from "src/components/shared/AvatarImageComponent.vue";
+import { useFormUpdateTracker } from "src/composables/useFormUpdateTracker";
+
+const view = ref("list");
+
+const { form } = useFormUpdateTracker({
+  full_name: null,
+  social_name: null,
+  role: null,
+  cpf: null,
+  rg: null,
+  address: null,
+  address_number: null,
+  zip_code: null,
+  neighborhood: null,
+  city_state: null,
+  complement: null,
+  primary_email: null,
+  secondary_email: null,
+  phone: null,
+  cellphone_number: null,
+});
+
+function onAvatarChange(file) {
+  console.log("Avatar file selected:", file);
+}
+</script>