feat(products): заменить чекбокс наличия на селект статуса склада в подборе товаров
Заменен чекбокс "только в наличии" на выпадающий список с опциями: все товары, в наличии, не в наличии. Обновлена логика фильтрации в API и интерфейсе.
This commit is contained in:
@@ -60,7 +60,7 @@
|
||||
search: '',
|
||||
category: '',
|
||||
tag: '',
|
||||
inStock: false,
|
||||
stockStatus: 'all',
|
||||
warehouse: '', // ID склада для фильтрации
|
||||
skipStockFilter: false // Не фильтровать по остаткам (для приёмки)
|
||||
}
|
||||
@@ -86,7 +86,7 @@
|
||||
searchClear: c.querySelector('.product-picker-search-clear'),
|
||||
categorySelect: c.querySelector('.product-picker-category'),
|
||||
tagSelect: c.querySelector('.product-picker-tag'),
|
||||
inStockCheckbox: c.querySelector('.product-picker-in-stock'),
|
||||
stockStatusSelect: c.querySelector('.product-picker-stock-status'),
|
||||
grid: c.querySelector('.product-picker-grid'),
|
||||
loading: c.querySelector('.product-picker-loading'),
|
||||
empty: c.querySelector('.product-picker-empty'),
|
||||
@@ -180,14 +180,14 @@
|
||||
}
|
||||
|
||||
// Фильтр по наличию
|
||||
if (this.elements.inStockCheckbox) {
|
||||
this.elements.inStockCheckbox.addEventListener('change', function() {
|
||||
self.state.filters.inStock = this.checked;
|
||||
if (this.elements.stockStatusSelect) {
|
||||
this.elements.stockStatusSelect.addEventListener('change', function() {
|
||||
self.state.filters.stockStatus = this.value;
|
||||
self.state.currentPage = 1;
|
||||
self._loadProducts();
|
||||
});
|
||||
// Инициализация из checkbox
|
||||
this.state.filters.inStock = this.elements.inStockCheckbox.checked;
|
||||
// Инициализация из select
|
||||
this.state.filters.stockStatus = this.elements.stockStatusSelect.value;
|
||||
}
|
||||
|
||||
// Переключатель вида
|
||||
@@ -266,8 +266,8 @@
|
||||
if (this.state.filters.tag) {
|
||||
params.append('tag', this.state.filters.tag);
|
||||
}
|
||||
if (this.state.filters.inStock) {
|
||||
params.append('in_stock', 'true');
|
||||
if (this.state.filters.stockStatus !== 'all') {
|
||||
params.append('stock_status', this.state.filters.stockStatus);
|
||||
}
|
||||
if (this.state.filters.warehouse) {
|
||||
params.append('warehouse', this.state.filters.warehouse);
|
||||
|
||||
Reference in New Issue
Block a user