Fix deal_date (very long bug)

This commit is contained in:
Vova 2025-12-13 21:09:21 +03:00
parent c3259b7e6c
commit 619687df68
2 changed files with 55 additions and 20 deletions

View File

@ -1040,15 +1040,15 @@ const handleCloseDealObject = (side) => {
const openModalDealContract = async () => {
if (!deal.value.id) {
console.log('[DealModal] deal до saveDeal.', deal);
console.log('[DealModal] Сделка не сохранена, сохраняем перед открытием модального окна договора.');
try {
let currentDeal = deal.value
const savedDeal = await saveDeal();
if (savedDeal?.id) {
if (!savedDeal?.id) return
deal.value = savedDeal
currentDeal = savedDeal
const plainDeal = JSON.parse(JSON.stringify(toRaw(currentDeal)))
//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);
@ -1058,7 +1058,7 @@ const openModalDealContract = async () => {
modal: true,
},
data: {
deal: plainDeal,
deal: deal.value,
},
onClose: (options) => {
console.log('InnerDocAddModal закрыт, options:', options)
@ -1180,11 +1180,29 @@ const saveDeal = async () => {
});
// Обновляем локальное состояние сделки
// if (response.data.deal) {
// deal.value = response.data.deal;
// }
console.log('cat', response.data)
return response.data.deal;
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;
}
console.log('cat deal', response.data.deal)
//return response.data.deal;
return null;
} else {
new Error(response.data.message || 'Ошибка при сохранении сделки');

View File

@ -77,6 +77,8 @@
import { computed } from 'vue';
import { useConfirm } from 'primevue/useconfirm';
import { useToast } from 'primevue/usetoast';
import dayjs from 'dayjs';
import 'dayjs/locale/ru';
console.log('Запуск InnerDocCard');
@ -152,14 +154,29 @@ const handleRemoveDealDoc = (event) => {
});
};
// const formatDate = (dateString) => {
// return new Date(dateString).toLocaleDateString('ru-RU', {
// day: '2-digit',
// month: '2-digit',
// year: 'numeric',
// hour: '2-digit',
// minute: '2-digit'
// });
// };
const formatDate = (dateString) => {
return new Date(dateString).toLocaleDateString('ru-RU', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
hour: '2-digit',
minute: '2-digit'
});
if (!dateString) return '—';
// Поддерживаем разные форматы
const parsed = dayjs(dateString, [
'YYYY-MM-DD HH:mm:ss',
'DD.MM.YYYY HH:mm:ss',
'DD.MM.YY HH:mm',
'DD.MM.YYYY',
'YYYY-MM-DDTHH:mm:ssZ'
], true); // strict parsing
return parsed.isValid()
? parsed.locale('ru').format('DD.MM.YYYY HH:mm')
: '—';
};