Fix innerDocCard side one and two
This commit is contained in:
parent
619687df68
commit
a4e96cf809
@ -866,8 +866,17 @@ watch(selectedRequisitionSideTwoId, async (newId) => {
|
||||
selectedRequisitionSideTwo.value = requisitionSideTwoDetails.value;
|
||||
deal.value.side_two_requisition_id = newId;
|
||||
}
|
||||
|
||||
// Установка клиента в deal для стороны 2
|
||||
if (requisitionSideTwoDetails.value?.client && typeof requisitionSideTwoDetails.value.client === 'object') {
|
||||
deal.value.side_two_client_main = requisitionSideTwoDetails.value.client;
|
||||
} else {
|
||||
deal.value.side_two_client_main = null;
|
||||
}
|
||||
console.log('Загружены основной клиент стороны 2:', deal.value.side_two_client_main);
|
||||
|
||||
} else {
|
||||
selectedRequisitionSideTwo.value = null; // Очищаем, если newId === null
|
||||
selectedRequisitionSideTwo.value = null;
|
||||
}
|
||||
});
|
||||
|
||||
@ -910,7 +919,7 @@ watch(selectedObjectSideOneId, async (newId) => {
|
||||
deal.value.side_one_object_id = newId;
|
||||
}
|
||||
} else {
|
||||
selectedObjectSideOne.value = null; // Очищаем, если newId === null
|
||||
selectedObjectSideOne.value = null;
|
||||
}
|
||||
});
|
||||
|
||||
@ -923,7 +932,7 @@ watch(selectedObjectSideTwoId, async (newId) => {
|
||||
deal.value.side_two_object_id = newId;
|
||||
}
|
||||
} else {
|
||||
selectedObjectSideTwo.value = null; // Очищаем, если newId === null
|
||||
selectedObjectSideTwo.value = null;
|
||||
}
|
||||
});
|
||||
|
||||
@ -1179,12 +1188,31 @@ const saveDeal = async () => {
|
||||
life: 3000,
|
||||
});
|
||||
|
||||
// Обновляем локальное состояние сделки
|
||||
// // Обновляем локальное состояние сделки
|
||||
// if (response.data.deal) {
|
||||
// //deal.value = response.data.deal;
|
||||
// const rawDeal = response.data.deal;
|
||||
//
|
||||
// // Конвертируем строки в Date, чтобы избежать падений в computed
|
||||
// if (rawDeal.deal_date) {
|
||||
// rawDeal.deal_date = dayjs(rawDeal.deal_date, [
|
||||
// 'YYYY-MM-DD HH:mm:ss',
|
||||
// 'DD.MM.YYYY HH:mm'
|
||||
// ], true).toDate();
|
||||
// }
|
||||
// if (rawDeal.created_at) {
|
||||
// rawDeal.created_at = new Date(rawDeal.created_at);
|
||||
// }
|
||||
// if (rawDeal.updated_at) {
|
||||
// rawDeal.updated_at = new Date(rawDeal.updated_at);
|
||||
// }
|
||||
//
|
||||
// deal.value = rawDeal;
|
||||
// }
|
||||
if (response.data.deal) {
|
||||
//deal.value = response.data.deal;
|
||||
const rawDeal = response.data.deal;
|
||||
const rawDeal = { ...response.data.deal };
|
||||
|
||||
// Конвертируем строки в Date, чтобы избежать падений в computed
|
||||
// Конвертируем строки в Date
|
||||
if (rawDeal.deal_date) {
|
||||
rawDeal.deal_date = dayjs(rawDeal.deal_date, [
|
||||
'YYYY-MM-DD HH:mm:ss',
|
||||
@ -1198,8 +1226,11 @@ const saveDeal = async () => {
|
||||
rawDeal.updated_at = new Date(rawDeal.updated_at);
|
||||
}
|
||||
|
||||
deal.value = rawDeal;
|
||||
// Вместо перезаписи — обновляем поля
|
||||
Object.assign(deal.value, rawDeal);
|
||||
}
|
||||
|
||||
|
||||
console.log('cat deal', response.data.deal)
|
||||
//return response.data.deal;
|
||||
return null;
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
<template>
|
||||
<div v-if="deal && deal.id" class="dealAddContract">
|
||||
<div class="modal-content">
|
||||
<h3>Составить договор</h3>
|
||||
|
||||
<div class="mb-4 mt-4 add-contract-title">
|
||||
<label class="mb-2">Бланк документа:</label>
|
||||
<Select
|
||||
@ -13,9 +11,6 @@
|
||||
class="w-full"
|
||||
:key="innerBlanksList.length"
|
||||
>
|
||||
<!-- <template #dropdownicon>-->
|
||||
<!-- <DropdownIcon />-->
|
||||
<!-- </template>-->
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
@ -31,7 +26,6 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<button @click="saveDealInnerDoc" class="mt-4 p-2 rounded w-full add-deal-contract-button">
|
||||
Составить договор
|
||||
</button>
|
||||
@ -43,7 +37,6 @@
|
||||
<script setup>
|
||||
import {inject, onMounted, ref} from 'vue';
|
||||
import { useLaravelApi } from '@/composables/useLaravelApi';
|
||||
//import DropdownIcon from "@/shared/assets/icons/dropdown-icon.vue";
|
||||
import Textarea from "primevue/textarea";
|
||||
import Select from 'primevue/select';
|
||||
|
||||
@ -170,7 +163,7 @@ const saveDealInnerDoc = async () => {
|
||||
client_id: client.id,
|
||||
role: deal.side_one
|
||||
})) || [])
|
||||
].filter(Boolean), // Убираем null, если основного клиента нет
|
||||
].filter(Boolean),
|
||||
side_two: [
|
||||
// Основной клиент стороны 2
|
||||
(deal.side_two_client_main ? {
|
||||
@ -182,7 +175,7 @@ const saveDealInnerDoc = async () => {
|
||||
client_id: client.id,
|
||||
role: deal.side_two
|
||||
})) || [])
|
||||
].filter(Boolean), // Убираем null, если основного клиента нет
|
||||
].filter(Boolean),
|
||||
};
|
||||
|
||||
console.log('Full payload:', payload);
|
||||
@ -194,11 +187,7 @@ const saveDealInnerDoc = async () => {
|
||||
|
||||
if (response.data.success) {
|
||||
console.log('[InnerDocAddModal] Doc сохранен:', response.data.data);
|
||||
|
||||
console.log('dialogRef.value:', dialogRef.value);
|
||||
dialogRef.value.close(response.data.data);
|
||||
|
||||
//closeDialog(response.data.data);
|
||||
} else {
|
||||
// Обработка ошибок валидации
|
||||
if (response.data.errors) {
|
||||
@ -216,7 +205,6 @@ const saveDealInnerDoc = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!--<style>-->
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<!-- Сторона 1 -->
|
||||
<div class="clients-inner-doc mt-4">
|
||||
<h4 class="inner-doc-title">Сторона 1:</h4>
|
||||
<div v-for="side in currentDeal[0]?.side_one || []" :key="side.client_id" class="mt-2 flex items-baseline">
|
||||
<div v-for="side in currentDeal.side_one || []" :key="side.client_id" class="mt-2 flex items-baseline">
|
||||
<span style="margin-right: 10px;" class="font-medium min-w-[80px]">{{ side.role }}:</span>
|
||||
<div class="ml-2 underline">
|
||||
<span>{{ getClientName(side) }} ({{ side.phone }})</span>
|
||||
@ -21,7 +21,7 @@
|
||||
<!-- Сторона 2 -->
|
||||
<div class="clients-inner-doc mt-4">
|
||||
<h4 class="inner-doc-title">Сторона 2:</h4>
|
||||
<div v-for="side in currentDeal[0]?.side_two || []" :key="side.client_id" class="mt-2 flex items-baseline">
|
||||
<div v-for="side in currentDeal.side_two || []" :key="side.client_id" class="mt-2 flex items-baseline">
|
||||
<span style="margin-right: 10px;" class="font-medium min-w-[80px]">{{ side.role }}:</span>
|
||||
<div class="ml-2 underline">
|
||||
<span>{{ getClientName(side) }} ({{ side.phone }})</span>
|
||||
@ -99,7 +99,8 @@ const confirm = useConfirm();
|
||||
const toast = useToast();
|
||||
|
||||
const currentDeal = computed(() => {
|
||||
return props.innerDoc.deals?.[0];
|
||||
console.log('currentDeal', props.innerDoc.deals);
|
||||
return props.innerDoc.deals?.[0] || {};
|
||||
});
|
||||
|
||||
// Получаем pivot данные для текущего документа
|
||||
|
||||
Loading…
Reference in New Issue
Block a user