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