diff --git a/_ALL_SITES/piuchebuono.app/upload/products/uova.png b/_ALL_SITES/piuchebuono.app/upload/products/uova.png new file mode 100644 index 00000000..fd133a20 Binary files /dev/null and b/_ALL_SITES/piuchebuono.app/upload/products/uova.png differ diff --git a/src/store/Products.ts b/src/store/Products.ts index ff59407b..feda7838 100755 --- a/src/store/Products.ts +++ b/src/store/Products.ts @@ -1161,6 +1161,12 @@ export const useProducts = defineStore('Products', { return myarr }, + getGasordinesActives() { + const globalStore = useGlobalStore() + + return globalStore.gasordines.filter((rec) => rec.active) + }, + }, diff --git a/src/views/ecommerce/productsList/productsList.ts b/src/views/ecommerce/productsList/productsList.ts index 16506074..c1b0bc52 100755 --- a/src/views/ecommerce/productsList/productsList.ts +++ b/src/views/ecommerce/productsList/productsList.ts @@ -30,6 +30,7 @@ export default defineComponent({ const cosa = ref(0) const cat = ref('') + const idGasSel = ref('') const loadpage = ref(false) const refreshpage = ref(false) const show_hide = ref(false) @@ -66,6 +67,11 @@ export default defineComponent({ watch(() => cat.value, (newval, oldval) => { calcArrProducts() }) + + watch(() => idGasSel.value, (newval, oldval) => { + calcArrProducts() + }) + watch(() => search.value, (newval, oldval) => { calcArrProducts() if (tools.scrollTop() > 300) { @@ -86,8 +92,12 @@ export default defineComponent({ refreshpage.value = true let arrprod = productStore.getProducts(cosa.value) let catstr = cat.value; + let gasselstr = '' + if (cosa.value === shared_consts.PROD.GAS) { + gasselstr = idGasSel.value + } let lowerSearchText = search.value.toLowerCase().trim(); - if ((!lowerSearchText || (lowerSearchText && lowerSearchText.length < 2)) && !catstr) { + if ((!lowerSearchText || (lowerSearchText && lowerSearchText.length < 2)) && !catstr && (!gasselstr && (cosa.value !== shared_consts.PROD.GAS))) { } else { @@ -95,6 +105,11 @@ export default defineComponent({ let lowerName = product.productInfo.name!.toLowerCase(); let hasCategoria = !catstr || (catstr && product.productInfo.idCatProds?.includes(catstr)); + let productgassel = true + if (gasselstr || (cosa.value === shared_consts.PROD.GAS)) { + productgassel = (product.idGasordine === gasselstr) + } + // Use a regular expression to match whole words let codeMatch = new RegExp(`\\b${lowerSearchText}\\b`, 'i'); let nameMatch = new RegExp(`\\b${lowerSearchText}`, 'i'); @@ -102,7 +117,7 @@ export default defineComponent({ // Check if any word in lowerName starts with lowerSearchText let anyWordStartsWithSearch = lowerName.split(/\s+/).some(word => nameMatch.test(word)); - return (codeMatch.test(product.productInfo.code!) || anyWordStartsWithSearch) && hasCategoria; + return (codeMatch.test(product.productInfo.code!) || anyWordStartsWithSearch) && hasCategoria && productgassel; }); } @@ -130,7 +145,10 @@ export default defineComponent({ async function mounted() { loadpage.value = false await productStore.loadProducts() - cosa.value = tools.getCookie(tools.COOK_COSA_PRODOTTI, shared_consts.PROD.TUTTI, true) + cosa.value = tools.getCookie(tools.COOK_COSA_PRODOTTI, shared_consts.PROD.GAS, true) + if (cosa.value === shared_consts.PROD.TUTTI) + cosa.value = shared_consts.PROD.GAS + // Inizializza loadpage.value = true window.addEventListener('scroll', handleScroll); @@ -191,6 +209,7 @@ export default defineComponent({ shared_consts, getCatProds, cat, + idGasSel, productStore, t, loadpage, diff --git a/src/views/ecommerce/productsList/productsList.vue b/src/views/ecommerce/productsList/productsList.vue index 42b1e9ec..4fce1032 100755 --- a/src/views/ecommerce/productsList/productsList.vue +++ b/src/views/ecommerce/productsList/productsList.vue @@ -16,7 +16,6 @@ glossy toggle-color="primary" :options="[ - { value: shared_consts.PROD.TUTTI, slot: 'tutti' }, { value: shared_consts.PROD.GAS, slot: 'gas' }, { value: shared_consts.PROD.BOTTEGA, slot: 'bottega' }, ]" @@ -92,68 +91,142 @@ -