Исправлена ошибка создания временного комплекта из модального окна
Проблема: - JavaScript вызывал несуществующую функцию addOrderItem() - Это приводило к ошибке и комплект не добавлялся в заказ Решение: - Заменен вызов addOrderItem() на программный клик по кнопке добавления формы - После добавления формы заполняем её данными созданного комплекта - Добавлена очистка формы модального окна после успешного создания - Улучшена обработка ошибок с детальным логированием Изменения: - Добавлено логирование статуса ответа и данных для отладки - Добавлена проверка HTTP статуса перед парсингом JSON - Реализовано корректное добавление комплекта в список позиций заказа - Добавлена очистка полей модального окна после создания 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -672,15 +672,52 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
components: components
|
components: components
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.then(response => response.json())
|
.then(response => {
|
||||||
|
console.log('Response status:', response.status);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP error! status: ${response.status}`);
|
||||||
|
}
|
||||||
|
return response.json();
|
||||||
|
})
|
||||||
.then(data => {
|
.then(data => {
|
||||||
|
console.log('Response data:', data);
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
// Закрываем модальное окно
|
// Закрываем модальное окно
|
||||||
const modal = bootstrap.Modal.getInstance(tempKitModal);
|
const modal = bootstrap.Modal.getInstance(tempKitModal);
|
||||||
modal.hide();
|
modal.hide();
|
||||||
|
|
||||||
// Добавляем созданный комплект в форму заказа
|
// Добавляем комплект в заказ через клик на кнопку добавления формы
|
||||||
addOrderItem(`kit_${data.kit_id}`, 'kit', data.kit_name, data.kit_price, 1);
|
const addButton = document.getElementById('add-order-item-btn');
|
||||||
|
addButton.click();
|
||||||
|
|
||||||
|
// Получаем последнюю добавленную форму
|
||||||
|
const forms = container.querySelectorAll('.order-item-form');
|
||||||
|
const lastForm = forms[forms.length - 1];
|
||||||
|
|
||||||
|
// Устанавливаем значения для комплекта
|
||||||
|
const kitSelect = lastForm.querySelector('.select2-order-item');
|
||||||
|
const quantityInput = lastForm.querySelector('[name$="-quantity"]');
|
||||||
|
const priceInput = lastForm.querySelector('[name$="-price"]');
|
||||||
|
|
||||||
|
// Добавляем опцию в select
|
||||||
|
const option = new Option(data.kit_name, `kit_${data.kit_id}`, true, true);
|
||||||
|
kitSelect.appendChild(option);
|
||||||
|
|
||||||
|
// Триггерим изменение для Select2
|
||||||
|
$(kitSelect).trigger('change');
|
||||||
|
|
||||||
|
// Устанавливаем количество и цену
|
||||||
|
if (quantityInput) quantityInput.value = '1';
|
||||||
|
if (priceInput) {
|
||||||
|
priceInput.value = data.kit_price;
|
||||||
|
priceInput.dataset.originalPrice = data.kit_price;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Очищаем форму модального окна
|
||||||
|
document.getElementById('temp-kit-name').value = '';
|
||||||
|
document.getElementById('temp-kit-description').value = '';
|
||||||
|
tempKitComponentsContainer.innerHTML = '';
|
||||||
|
tempKitComponentIndex = 0;
|
||||||
|
|
||||||
// Показываем успешное сообщение
|
// Показываем успешное сообщение
|
||||||
alert(`Комплект "${data.kit_name}" создан и добавлен в заказ!`);
|
alert(`Комплект "${data.kit_name}" создан и добавлен в заказ!`);
|
||||||
@@ -689,8 +726,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error('Error:', error);
|
console.error('Full error:', error);
|
||||||
alert('Произошла ошибка при создании комплекта');
|
console.error('Error message:', error.message);
|
||||||
|
alert('Произошла ошибка при создании комплекта: ' + error.message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user