Добавлена возможность добавлять новые товары в витринный комплект при редактировании
- Интегрирован готовый компонент ProductSearchPicker в модалку редактирования - Добавлен collapse-блок с поиском товаров, который отображается только в режиме редактирования - При выборе товара он автоматически добавляется в tempCart или увеличивается количество если уже есть - Добавлен CSS и JS для компонента product-search-picker - В view передаётся categories QuerySet для работы фильтров компонента - Блок добавления товаров показывается только при редактировании, скрыт при создании нового комплекта
This commit is contained in:
@@ -1354,9 +1354,44 @@ async function openEditKitModal(kitId) {
|
||||
document.getElementById('createTempKitModalLabel').textContent = 'Редактирование витринного букета';
|
||||
document.getElementById('confirmCreateTempKit').textContent = 'Сохранить изменения';
|
||||
|
||||
// Показываем кнопку "Разобрать" и скрываем поле "Количество букетов" в режиме редактирования
|
||||
// Показываем кнопку "Разобрать" и блок добавления товаров
|
||||
document.getElementById('disassembleKitBtn').style.display = 'block';
|
||||
document.getElementById('showcaseKitQuantityBlock').style.display = 'none';
|
||||
document.getElementById('addProductBlock').style.display = 'block';
|
||||
|
||||
// Инициализируем компонент поиска товаров
|
||||
setTimeout(() => {
|
||||
if (window.ProductSearchPicker) {
|
||||
const picker = ProductSearchPicker.init('#temp-kit-product-picker', {
|
||||
onAddSelected: function(product, instance) {
|
||||
if (product) {
|
||||
// Добавляем товар в tempCart
|
||||
const cartKey = `product-${product.id}`;
|
||||
if (tempCart.has(cartKey)) {
|
||||
// Увеличиваем количество
|
||||
const existing = tempCart.get(cartKey);
|
||||
existing.qty += 1;
|
||||
} else {
|
||||
// Добавляем новый товар
|
||||
tempCart.set(cartKey, {
|
||||
id: product.id,
|
||||
name: product.text || product.name,
|
||||
price: Number(product.price || 0),
|
||||
qty: 1,
|
||||
type: 'product'
|
||||
});
|
||||
}
|
||||
|
||||
// Обновляем отображение
|
||||
renderTempKitItems();
|
||||
|
||||
// Очищаем выбор в пикере
|
||||
instance.clearSelection();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}, 100);
|
||||
|
||||
// Открываем модальное окно
|
||||
const modal = new bootstrap.Modal(document.getElementById('createTempKitModal'));
|
||||
@@ -1886,9 +1921,10 @@ document.getElementById('createTempKitModal').addEventListener('hidden.bs.modal'
|
||||
document.getElementById('createTempKitModalLabel').textContent = 'Создать витринный букет из корзины';
|
||||
document.getElementById('confirmCreateTempKit').innerHTML = '<i class="bi bi-check-circle"></i> Создать и зарезервировать';
|
||||
|
||||
// Скрываем кнопку "Разобрать" и показываем поле "Количество букетов"
|
||||
// Скрываем кнопку "Разобрать" и блок добавления товаров
|
||||
document.getElementById('disassembleKitBtn').style.display = 'none';
|
||||
document.getElementById('showcaseKitQuantityBlock').style.display = 'block';
|
||||
document.getElementById('addProductBlock').style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user