Усилена проверка single-select в компоненте поиска товаров
- Добавлено явное приведение к String при сравнении ID товаров
- Исправлена инициализация selected в методе destroy() (null вместо {})
- Добавлена версия к JS файлу (?v=2) для сброса кэша браузера
- Улучшены комментарии о том, что только ОДИН товар может быть выбран
- Гарантирован корректный single-select режим работы компонента
This commit is contained in:
@@ -275,7 +275,7 @@
|
||||
</div>
|
||||
|
||||
<!-- JS для компонента поиска -->
|
||||
<script src="{% static 'products/js/product-search-picker.js' %}"></script>
|
||||
<script src="{% static 'products/js/product-search-picker.js' %}?v=2"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Элементы формы
|
||||
|
||||
@@ -327,7 +327,8 @@
|
||||
products.forEach(function(product) {
|
||||
// Извлекаем ID (убираем префикс "product_")
|
||||
var productId = String(product.id).replace('product_', '');
|
||||
var isSelected = self.state.selected && self.state.selected.id === productId;
|
||||
// Проверка: выбран ли этот товар (только ОДИН может быть выбран)
|
||||
var isSelected = self.state.selected && String(self.state.selected.id) === String(productId);
|
||||
|
||||
var html = self.state.currentView === 'grid'
|
||||
? self._renderGridCard(product, productId, isSelected)
|
||||
@@ -475,7 +476,8 @@
|
||||
var card = this.elements.grid.querySelector('[data-product-id="' + productId + '"]');
|
||||
if (!card) return;
|
||||
|
||||
var isSelected = this.state.selected && this.state.selected.id === productId;
|
||||
// Проверка: выбран ли этот товар
|
||||
var isSelected = this.state.selected && String(this.state.selected.id) === String(productId);
|
||||
|
||||
if (isSelected) {
|
||||
card.classList.add('selected');
|
||||
@@ -577,7 +579,7 @@
|
||||
ProductSearchPicker.prototype.destroy = function() {
|
||||
// Очистить состояние
|
||||
this.state.products = [];
|
||||
this.state.selected = {};
|
||||
this.state.selected = null;
|
||||
|
||||
// Удалить из хранилища
|
||||
if (this.container.id && instances[this.container.id]) {
|
||||
|
||||
Reference in New Issue
Block a user