|
|
@@ -5,8 +5,7 @@
|
|
|
icon="add"
|
|
|
color="primary-2"
|
|
|
style="height: 40px; width: 40px"
|
|
|
- :disable="!unitId"
|
|
|
- @click="openDialog(null)"
|
|
|
+ @click="onAddClick"
|
|
|
/>
|
|
|
</div>
|
|
|
|
|
|
@@ -15,31 +14,63 @@
|
|
|
</div>
|
|
|
|
|
|
<template v-else>
|
|
|
- <div v-if="partners.length === 0" class="text-center text-grey-6 q-pa-xl">
|
|
|
- Nenhum sócio cadastrado para esta unidade.
|
|
|
- </div>
|
|
|
-
|
|
|
- <div v-else class="row q-col-gutter-md">
|
|
|
- <div v-for="partner in partners" :key="partner.id" class="col-xs-12 col-sm-6 col-md-3">
|
|
|
- <div class="relative-position">
|
|
|
- <PartnerCardComponent :partner @click="openDialog(partner)" />
|
|
|
-
|
|
|
- <q-btn
|
|
|
- round
|
|
|
- unelevated
|
|
|
- size="xs"
|
|
|
- icon="delete"
|
|
|
- color="negative"
|
|
|
- text-color="white"
|
|
|
- class="absolute"
|
|
|
- style="top: 8px; right: 8px"
|
|
|
- @click.stop="confirmDelete(partner)"
|
|
|
- >
|
|
|
- <q-tooltip>Remover sócio</q-tooltip>
|
|
|
- </q-btn>
|
|
|
+ <!-- Modo criação: lista de sócios pendentes -->
|
|
|
+ <template v-if="!unitId">
|
|
|
+ <div v-if="pendingPartners.length === 0" class="text-center text-grey-6 q-pa-xl">
|
|
|
+ Nenhum sócio adicionado. Os sócios serão criados junto com a unidade.
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-else class="row q-col-gutter-md">
|
|
|
+ <div v-for="(partner, index) in pendingPartners" :key="index" class="col-xs-12 col-sm-6 col-md-3">
|
|
|
+ <div class="relative-position">
|
|
|
+ <PartnerCardComponent :partner @click="onPendingClick(partner, index)" />
|
|
|
+
|
|
|
+ <q-btn
|
|
|
+ round
|
|
|
+ unelevated
|
|
|
+ size="xs"
|
|
|
+ icon="delete"
|
|
|
+ color="negative"
|
|
|
+ text-color="white"
|
|
|
+ class="absolute"
|
|
|
+ style="top: 8px; right: 8px"
|
|
|
+ @click.stop="emit('remove-partner', index)"
|
|
|
+ >
|
|
|
+ <q-tooltip>Remover sócio</q-tooltip>
|
|
|
+ </q-btn>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- Modo edição: sócios salvos -->
|
|
|
+ <template v-else>
|
|
|
+ <div v-if="partners.length === 0" class="text-center text-grey-6 q-pa-xl">
|
|
|
+ Nenhum sócio cadastrado para esta unidade.
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-else class="row q-col-gutter-md">
|
|
|
+ <div v-for="partner in partners" :key="partner.id" class="col-xs-12 col-sm-6 col-md-3">
|
|
|
+ <div class="relative-position">
|
|
|
+ <PartnerCardComponent :partner @click="openDialog(partner)" />
|
|
|
+
|
|
|
+ <q-btn
|
|
|
+ round
|
|
|
+ unelevated
|
|
|
+ size="xs"
|
|
|
+ icon="delete"
|
|
|
+ color="negative"
|
|
|
+ text-color="white"
|
|
|
+ class="absolute"
|
|
|
+ style="top: 8px; right: 8px"
|
|
|
+ @click.stop="confirmDelete(partner)"
|
|
|
+ >
|
|
|
+ <q-tooltip>Remover sócio</q-tooltip>
|
|
|
+ </q-btn>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
</template>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -56,8 +87,14 @@ const props = defineProps({
|
|
|
type: Number,
|
|
|
default: null,
|
|
|
},
|
|
|
+ pendingPartners: {
|
|
|
+ type: Array,
|
|
|
+ default: () => [],
|
|
|
+ },
|
|
|
});
|
|
|
|
|
|
+const emit = defineEmits(["add-partner", "remove-partner"]);
|
|
|
+
|
|
|
const $q = useQuasar();
|
|
|
const partners = ref([]);
|
|
|
const loading = ref(false);
|
|
|
@@ -74,6 +111,29 @@ async function fetchPartners() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+function onAddClick() {
|
|
|
+ if (props.unitId) {
|
|
|
+ openDialog(null);
|
|
|
+ } else {
|
|
|
+ $q.dialog({
|
|
|
+ component: AddEditPartnerDialog,
|
|
|
+ componentProps: { offlineMode: true },
|
|
|
+ }).onOk((partnerData) => {
|
|
|
+ emit("add-partner", partnerData);
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function onPendingClick(partner, index) {
|
|
|
+ $q.dialog({
|
|
|
+ component: AddEditPartnerDialog,
|
|
|
+ componentProps: { partner, offlineMode: true },
|
|
|
+ }).onOk((updatedData) => {
|
|
|
+ emit("remove-partner", index);
|
|
|
+ emit("add-partner", updatedData);
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
function openDialog(partner) {
|
|
|
$q.dialog({
|
|
|
component: AddEditPartnerDialog,
|