Fix clients side_two

This commit is contained in:
Vladimir 2026-07-05 15:41:34 +03:00
parent 933ddba195
commit d7546d79d3

View File

@ -178,28 +178,30 @@ const emit = defineEmits(['closeDealRequisition', 'refreshClients']);
const selectedClientIds = ref([]);
let isUpdating = false;
watch(() => props.deal.side_one_clients, (newVal) => {
if (isUpdating) return;
if (props.side === 'sideOne' && newVal) {
selectedClientIds.value = newVal.map(c => c.id);
}
}, { deep: true });
const clientsKey = computed(() => props.side === 'sideOne' ? 'side_one_clients' : 'side_two_clients');
watch(() => props.deal.side_two_clients, (newVal) => {
// При монтировании если данные уже загружены, сразу синхронизируем
const currentData = props.deal[clientsKey.value];
if (currentData && Array.isArray(currentData) && currentData.length > 0) {
selectedClientIds.value = currentData.map(c => c.id);
}
watch(() => props.deal[clientsKey.value], (newVal) => {
if (isUpdating) return;
if (props.side === 'sideTwo' && newVal) {
selectedClientIds.value = newVal.map(c => c.id);
if (newVal && Array.isArray(newVal)) {
const newIds = newVal.map(c => c.id);
if (newIds.length !== selectedClientIds.value.length || newIds.some((id, i) => id !== selectedClientIds.value[i])) {
selectedClientIds.value = newIds;
}
}
}, { deep: true });
watch(selectedClientIds, (newIds) => {
if (isUpdating) return;
isUpdating = true;
const selectedClients = props.clientsList.filter(c => newIds.includes(c.id));
if (props.side === 'sideOne') {
props.deal.side_one_clients = selectedClients;
} else if (props.side === 'sideTwo') {
props.deal.side_two_clients = selectedClients;
}
console.log(`[RequisitionDetails] ${props.side} watch selectedClientIds:`, newIds, '-> writing to deal.${clientsKey.value}');
props.deal[clientsKey.value] = selectedClients;
nextTick(() => { isUpdating = false; });
});