Fix save new deal

This commit is contained in:
Vladimir 2026-06-30 18:57:33 +03:00
parent 2740f57aa2
commit e3b28b4105

View File

@ -349,6 +349,8 @@
hourFormat="24"
dateFormat="dd.mm.yy"
:showIcon="true"
:showOtherMonths="true"
:selectOtherMonths="true"
class="w-full"
:class="{ 'p-invalid': errors.deal_date }"
/>
@ -378,19 +380,26 @@
</div>
<h3>Составить договор</h3>
<div class="flex w-full flex-wrap">
<button @click="openModalDealContract" class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4 p-2 rounded items-center justify-center order-last add-deal-contract-button">Составить договор</button>
</div>
<div class="flex w-full flex-wrap">
<InnerDocCard
v-for="innerDoc in deal.inner_docs"
:key="innerDoc.id"
:innerDoc="innerDoc"
@remove="removeInnerDoc"
class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4 p-2"
/>
</div>
<template v-if="isEditing">
<h3>Составить договор</h3>
<div class="flex w-full flex-wrap">
<div class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4 p-2">
<button @click="openModalDealContract" class="w-full h-full p-5 rounded flex flex-col items-center justify-center add-contract-button">
<img src="@/shared/assets/icons/plus-green.svg" alt="Составить договор">
<p>Составить договор</p>
</button>
</div>
</div>
<div class="flex w-full flex-wrap">
<InnerDocCard
v-for="innerDoc in deal.inner_docs"
:key="innerDoc.id"
:innerDoc="innerDoc"
@remove="removeInnerDoc"
class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4 p-2"
/>
</div>
</template>
<div class="form-footer mt-6" style="display: flex; justify-content: center; width: 100%;">
@ -1207,49 +1216,8 @@ const handleCloseDealObject = (side) => {
const openModalDealContract = async () => {
if (!deal.value.id) {
console.log('[DealModal] deal до saveDeal.', deal);
console.log('[DealModal] Сделка не сохранена, сохраняем перед открытием модального окна договора.');
try {
//const savedDeal = await saveDeal();
await saveDeal();
console.log('[DealModal] saveDeal.', deal);
if (deal?.value.id) {
//if (!savedDeal?.id) return
//deal.value = savedDeal.value
console.log('[DealModal] Сделка успешно сохранена, ID:', deal.value);
console.log('InnerDocAddModal:', InnerDocAddModal);
dialog.open(InnerDocAddModal, {
props: {
header: 'Составить договор',
pt: {
header: {
style: {
padding: '0.75rem 1rem',
borderBottom: 'none'
}
},
},
modal: true,
},
data: {
deal: deal.value,
},
onClose: (options) => {
console.log('InnerDocAddModal закрыт, options:', options)
if (options?.data) {
handleNewInnerDoc(options.data);
}
},
});
} else {
console.error('[DealModal] Сделка не была сохранена (id отсутствует после saveDeal)');
}
} catch (error) {
console.error('[DealModal] Ошибка при сохранении сделки перед составлением договора:', error);
return;
}
} else {
console.log('[DealModal] Сделка уже сохранена (ID:', deal.value.id, '), открываем модальное окно.');
dialog.open(InnerDocAddModal, {
props: {
header: 'Составить договор',
@ -1267,13 +1235,11 @@ const openModalDealContract = async () => {
deal: deal.value,
},
onClose: (options) => {
console.log('InnerDocAddModal закрыт, options:', options);
if (options?.data) {
handleNewInnerDoc(options.data);
}
},
});
}
};
// Обработка нового договора
@ -1428,6 +1394,12 @@ const saveDeal = async () => {
if (!isEditing.value && deal.value.id) {
isEditing.value = true;
dealId = deal.value.id;
toast.add({
severity: 'info',
summary: 'Сделка сохранена',
detail: 'Теперь вы можете составить договор',
life: 5000,
});
}
console.log('cat deal', response.data)
@ -1640,6 +1612,12 @@ defineExpose({ closeModel });
height: 100%;
}
.add-contract-button {
border: 1px dashed #64A853;
border-radius: 5px;
height: 100%;
}
.add-deal-doc-button {
border: 1px dashed #64A853;