Исправлена ошибка создания временного комплекта из модального окна
Проблема: - 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
|
||||
})
|
||||
})
|
||||
.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 => {
|
||||
console.log('Response data:', data);
|
||||
if (data.success) {
|
||||
// Закрываем модальное окно
|
||||
const modal = bootstrap.Modal.getInstance(tempKitModal);
|
||||
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}" создан и добавлен в заказ!`);
|
||||
@@ -689,8 +726,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
alert('Произошла ошибка при создании комплекта');
|
||||
console.error('Full error:', error);
|
||||
console.error('Error message:', error.message);
|
||||
alert('Произошла ошибка при создании комплекта: ' + error.message);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user