diff --git a/src/components/CAITools/CAITools.vue b/src/components/CAITools/CAITools.vue index 46be4cce..9c503408 100755 --- a/src/components/CAITools/CAITools.vue +++ b/src/components/CAITools/CAITools.vue @@ -6,7 +6,7 @@ - - + --> @@ -1956,20 +1957,21 @@ - - + --> - {{ $t('cataloglist.referenti') }}: + {{ $t('cataloglist.casaeditrice') }}: {{ editorestr }}
{ maxlength: 0 }) - const optionscatalogo = ref({maxlength: 0}) const editOn = computed({ get(): boolean { @@ -111,6 +111,7 @@ export default defineComponent({ { name: "image", label: "Foto", field: "image", align: "center" }, { name: "name", label: "Titolo del Libro", field: "name", align: "left" }, { name: "authors", label: "Autore", field: "authors", align: "left" }, + { name: "isbn", label: "ISBN", field: "isbn", align: "left" }, { name: "trafiletto", label: "Trafiletto", field: "trafiletto", align: "left" }, { name: "catprods", label: "Argomento", field: "catprods", align: "left" }, { name: "idCollana", label: "Collana", field: "idCollana", align: "left" }, @@ -128,7 +129,6 @@ export default defineComponent({ { name: "fatLast1Y", label: "Fat Anno", field: "fatLast1Y", align: "right" }, { name: "ult_ord", label: "Ult. Ordine", field: "ult_ord", align: "left" }, { name: "quantity", label: "Magazz.", field: "quantity", align: "right" }, - { name: "isbn", label: "ISBN", field: "isbn", align: "left" }, { name: "actions", label: "Azioni", field: "", align: "center" }, ]; @@ -286,7 +286,9 @@ export default defineComponent({ } } - + function rigenera() { + emit('rigenera') + } onMounted(mounted) diff --git a/src/components/CProductTable/CProductTable.vue b/src/components/CProductTable/CProductTable.vue index 65f88304..efd33d97 100755 --- a/src/components/CProductTable/CProductTable.vue +++ b/src/components/CProductTable/CProductTable.vue @@ -16,6 +16,10 @@ />
+
+ {{ internalProducts?.length }} elementi nella lista +
+ @@ -29,7 +33,7 @@ > {{ col.label }} @@ -101,6 +101,9 @@ + + + - - - -
{{ formatAuthors(element.productInfo?.authors) }}{{ element.isbn }}{{ tools.formatCatProds(element.productInfo?.catprods) }} {{ tools.formatCollane(element.productInfo?.idCollana) }} + {{ products.getDescrStatiProdottoByIdStatoProdotto(element.productInfo.idStatoProdotto || '') }} @@ -181,13 +190,15 @@ {{ element.arrvariazioni[0].quantita }} {{ element.isbn }} boolean; isProssimaUscitaById?: (idStatoProdotto: number) => boolean; + isPrevenditaById?: (idStatoProdotto: number) => boolean; } export interface IProducer { diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index 9317ee4c..ea2f4d13 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -2002,6 +2002,7 @@ const msg_it = { pagine: '{pagine}', misure: '{misure}', date_pub: '{date_pub}', + date_updated_fromGM: '{date_updated_fromGM}', ranking_globale: '{ranking_globale}', ranking: '{ranking}', venduti: '{venduti}', @@ -2023,6 +2024,7 @@ const msg_it = { }, cataloglist: { + casaeditrice: 'Casa Editrice', numprodotti: 'Libri presenti', foto_collana: 'Foto Catalogo', referenti: 'Editori', diff --git a/src/store/Modules/costanti.ts b/src/store/Modules/costanti.ts index 516cb0ea..43ebe27d 100755 --- a/src/store/Modules/costanti.ts +++ b/src/store/Modules/costanti.ts @@ -519,6 +519,20 @@ export const costanti = { CATALOGHI: { PAG_INTRO_DEFAULT: 'introduttiva_default.png', PAG_SFONDO_DEFAULT: 'sfondo_default.png', + }, + + DISP: { + TUTTI: '0', + DISPONIBILI: '1', + ESAURITI: '2', + }, + + STATO: { + TUTTI: '0', + IN_COMMERCIO: '1', + SOLO_PROSSIMA_USCITA: '2', + PREVENDITA: '3', + NON_VENDIBILE: '4', } } diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index 25d1b60c..ff9e3758 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -310,6 +310,7 @@ export const colmyScheda = [ AddCol({ name: 'productTypes', label_trans: 'productTypes', fieldtype: costanti.FieldType.number }), AddCol({ name: 'excludeproductTypes', label_trans: 'excludeproductTypes', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'idTipologie', label_trans: 'idTipologie', fieldtype: costanti.FieldType.number }), AddCol({ name: 'editore', label_trans: 'editore' }), AddCol({ name: 'author', label_trans: 'scheda.author' }), AddCol({ name: 'argomenti', label_trans: 'scheda.argomenti' }), @@ -327,6 +328,7 @@ export const colmyScheda = [ export const colmyelCatalogo = [ AddCol({ name: 'productTypes', label_trans: 'productTypes', fieldtype: costanti.FieldType.number }), AddCol({ name: 'excludeproductTypes', label_trans: 'excludeproductTypes', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'idTipologie', label_trans: 'idTipologie', fieldtype: costanti.FieldType.number }), AddCol({ name: 'pdf', label_trans: 'pdf' }), AddCol({ name: 'pdf_filename', label_trans: 'pdf_filename' }), AddCol({ name: 'editore', label_trans: 'editore' }), @@ -659,7 +661,7 @@ export const colTableTipoFormato = [ AddCol(DuplicateRec), ] export const colTableTipologie = [ - AddCol({ name: 'IdStatoProdotto', label_trans: 'statoprod.IdStatoProdotto' }), + AddCol({ name: 'IdTipologia', label_trans: 'statoprod.IdTipologia' }), AddCol({ name: 'Descrizione', label_trans: 'statoprod.Descrizione' }), AddCol(DeleteRec), AddCol(DuplicateRec), @@ -2531,6 +2533,8 @@ export const colTableVariazioni = [ AddCol({ name: 'availability', label_trans: 'catalogo.availability', fieldtype: costanti.FieldType.number }), AddCol({ name: 'formato', label_trans: 'catalogo.formato', fieldtype: costanti.FieldType.string }), AddCol({ name: 'misure', label_trans: 'catalogo.misure', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'ristampa', label_trans: 'catalogo.ristampa', fieldtype: costanti.FieldType.string }), + AddCol({ name: 'edizione', label_trans: 'catalogo.edizione', fieldtype: costanti.FieldType.string }), AddCol({ name: 'tipologia', label_trans: 'catalogo.tipologia', fieldtype: costanti.FieldType.string }), AddCol({ name: 'edizione', label_trans: 'catalogo.edizione', fieldtype: costanti.FieldType.string }), AddCol({ name: 'preOrderDate', label_trans: 'catalogo.preOrderDate', fieldtype: costanti.FieldType.date }), @@ -4408,7 +4412,7 @@ export const fieldsTable = { value: 't_web_tipologies', label: 'Tipologie', columns: colTableTipologie, - colkey: 'IdStatoProdotto', + colkey: 'IdTipologia', collabel: 'Descrizione', }, { diff --git a/src/store/Products.ts b/src/store/Products.ts index 2960d294..3882fd77 100755 --- a/src/store/Products.ts +++ b/src/store/Products.ts @@ -145,14 +145,43 @@ export const useProducts = defineStore('Products', { return product?.arrvariazioni?.[0]?.quantita > 0 && product.arrvariazioni?.[0]?.quantita < 50 }, isEsaurito: (state: IProductsState) => (product: IProduct): boolean => { - return product?.arrvariazioni?.[0]?.quantita <= 0 + return product?.arrvariazioni?.[0]?.quantita <= 0 && !state.isProssimaUscitaById(product.productInfo.idStatoProdotto) && !state.isPrevenditaById(product.productInfo.idStatoProdotto) }, isPubblicatoById: (state: IProductsState) => (idStatoProdotto: number): boolean => { + /* + 1 In commercio + 3 Ristampa + 4 Prossima uscita/pubblicazione + 6 In promozione + 7 In fase di valutazione + 8 Titolo in esaurimento (in attesa Nuova Edizione) + 9 Titolo in esaurimento + 20 Titolo in esaurimento (in att N.E Ricopertinata) + 26 Titolo in Esaurimento (disponibile N.E.) + 33 In commercio (digitale) + 34 In prevendita + 45 Vendita sito + 46 2023 in commercio + 47 Assoluto NO Reso + 48 Titolo esaurito + + */ + switch (idStatoProdotto) { case 1: // In Commercio - case 45: // In Commercio + case 3: // Ristampa + case 4: // Prossima uscita/pubblicazione + case 6: // In promozione + case 7: // In fase di valutazione + case 8: // 8 Titolo in esaurimento (in attesa Nuova Edizione) + case 9: // In Commercio + case 33: // In commercio (digitale) + case 34: // In prevendita + case 45: // Vendita sito case 46: // 2023 in commercio + case 47: // Assoluto NO Reso + case 48: // Titolo esaurito case undefined: return true; default: @@ -161,9 +190,13 @@ export const useProducts = defineStore('Products', { }, isProssimaUscitaById: (state: IProductsState) => (idStatoProdotto: number): boolean => { + // 4 - Prossima uscita + return (idStatoProdotto === 4) + }, + isPrevenditaById: (state: IProductsState) => (idStatoProdotto: number): boolean => { // 4 - Prossima uscita // 34 - In Prevendita - return (idStatoProdotto === 4) || (idStatoProdotto === 34) + return (idStatoProdotto === 34) }, isPubblicato: (state: IProductsState) => (productInfo: IProductInfo): boolean => { @@ -178,6 +211,10 @@ export const useProducts = defineStore('Products', { return state.isProssimaUscitaById(productInfo.idStatoProdotto) }, + isPrevendita: (state: IProductsState) => (productInfo: IProductInfo): boolean => { + return state.isPrevenditaById(productInfo.idStatoProdotto) + }, + getDescrStatiProdottoByIdStatoProdotto: (state: IProductsState) => (idStatoProdotto: number): string => { const ctrec = state.stati_prodotto.find((mystatus: T_Web_StatiProdotto) => mystatus.IdStatoProdotto === idStatoProdotto) return (ctrec) ? ctrec.Descrizione : '' @@ -1520,7 +1557,7 @@ export const useProducts = defineStore('Products', { // Additional replacements based on the content const keysToCheck = [ '{titolo}', '{sottotitolo}', '{categoria}', '{sottocategoria}', '{descr_categoria}', - '{pagine}', '{isbn}', '{misure}', '{argomento}', '{date_pub}', '{ranking_globale}', + '{pagine}', '{isbn}', '{misure}', '{edizione', '{ristampa}', '{argomento}', '{date_pub}', '{date_updated_fromGM}', '{ranking_globale}', '{venduti}', '{formato}', '{tipologia}', '{stato}', '{scale}', '{descr_trafiletto_catalogo}', '{link_macro}', '{qta}', '{image_link}', '{imagefile}', '{debug}' ]; @@ -1549,12 +1586,21 @@ export const useProducts = defineStore('Products', { case '{misure}': replacements[key] = myproduct.arrvariazioni![0].misure || ''; break; + case '{edizione}': + replacements[key] = myproduct.arrvariazioni![0].edizione || ''; + break; + case '{ristampa}': + replacements[key] = myproduct.arrvariazioni![0].ristampa || ''; + break; case '{argomento}': replacements[key] = this.getCatProdsStrByCatProds(myproduct.productInfo.catprods!) || ''; break; case '{date_pub}': replacements[key] = tools.getstrDateShort(myproduct.productInfo.date_pub) || ''; break; + case '{date_updated_fromGM}': + replacements[key] = tools.getstrDateShort(myproduct.productInfo.date_updated_fromGM) || ''; + break; case '{ranking_globale}': replacements[key] = myproduct.productInfo.rank3M! || '0'; break; @@ -1833,6 +1879,7 @@ export const useProducts = defineStore('Products', { }, productTypes: [], excludeproductTypes: [], + idTipologie: [], editore: [], argomenti: [], author: '', diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts index 9d0dd695..5a9c00a1 100644 --- a/src/store/globalStore.ts +++ b/src/store/globalStore.ts @@ -2444,6 +2444,7 @@ export const useGlobalStore = defineStore('GlobalStore', { return { productTypes: [0], excludeproductTypes: [], + idTipologie: [], formato: [], Categoria: [], editore: [], diff --git a/src/views/ecommerce/catalogo/catalogo.ts b/src/views/ecommerce/catalogo/catalogo.ts index 0b5ee1d8..ec7627a1 100755 --- a/src/views/ecommerce/catalogo/catalogo.ts +++ b/src/views/ecommerce/catalogo/catalogo.ts @@ -24,6 +24,7 @@ import type { IMyScheda, IProdView, IProduct, ISchedaSingola, ISearchList, ICatalog, IImg, IText, ICollana, + IOptRigenera, } from 'model'; import { IMyPage, @@ -60,12 +61,31 @@ export default defineComponent({ const $q = useQuasar() const { t } = useI18n() + const rigeneraLibri = ref(false) + const search = ref('') const optauthors = ref([]) const pdfContent = ref(null); const addnewProd = ref(false) + const optDisp = ref([ + { label: 'Tutti', value: costanti.DISP.TUTTI }, + { label: 'Disponibili', value: costanti.DISP.DISPONIBILI }, + { label: 'Esauriti', value: costanti.DISP.ESAURITI }]) + + const optStato = ref([ + { label: 'Tutti', value: costanti.STATO.TUTTI }, + { label: 'In Commercio', value: costanti.STATO.IN_COMMERCIO }, + { label: 'Prossima Uscita', value: costanti.STATO.SOLO_PROSSIMA_USCITA }, + { label: 'Prevendita', value: costanti.STATO.PREVENDITA }, + { label: 'Non Vendibile', value: costanti.STATO.NON_VENDIBILE }, + ]) + + const generatinglist = ref(false) + + const optrigenera = ref({ visibilitaDisp: costanti.DISP.DISPONIBILI, stato: costanti.STATO.IN_COMMERCIO }) + const optcatalogo = ref({ ...props.modelValue }); function updateCatalogoPadre() { @@ -84,6 +104,12 @@ export default defineComponent({ optcatalogo.value = { ...newVal }; }, { deep: false }); + watch(optrigenera.value, (newVal) => { + tools.setCookie(showListaArgomenti.value ? 'INC_ES' : 'VIS_DISP', newVal.visibilitaDisp); + if (showListaArgomenti.value) + calcArrProducts() + }, { deep: true }); + /*watch(optcatalogo, (newValue) => { emit('update:modelValue', newValue); }, { deep: true });*/ @@ -99,7 +125,6 @@ export default defineComponent({ const cat = ref('') const idGasSel = ref('') const loadpage = ref(false) - const refreshpage = ref(false) const show_hide = ref(false) const mycolumns = ref([]) @@ -215,12 +240,13 @@ export default defineComponent({ watch(() => cat.value, (newval, oldval) => { - if (loadpage.value) - tools.setCookie(tools.COOK_CATEGORIA, cat.value.toString()) - filter.value.author = '' // disattivo il filtro autore - resetSearch() + if (loadpage.value) { + tools.setCookie(getKeyCatAtLoad(), cat.value.toString()) + filter.value.author = '' // disattivo il filtro autore + resetSearch() - calcArrProducts() + calcArrProducts() + } }) watch(() => idGasSel.value, (newval, oldval) => { @@ -239,7 +265,7 @@ export default defineComponent({ if (filter.value.author) { cat.value = '' // disattivo il filtro categoria if (loadpage.value) - tools.setCookie(tools.COOK_CATEGORIA, '') + tools.setCookie(getKeyCatAtLoad(), '') resetSearch() } @@ -270,7 +296,7 @@ export default defineComponent({ if (cosa.value !== shared_consts.PROD.TUTTI) { cat.value = '' if (loadpage.value) - tools.setCookie(tools.COOK_CATEGORIA, '') + tools.setCookie(getKeyCatAtLoad(), '') } calcArrProducts() } @@ -447,6 +473,7 @@ export default defineComponent({ filtroAuthor: string, filtroProductTypes: number[], filtroExcludeProductTypes: number[], + filtroidTipologie: number[], editore: string[], idCollane: ICollana[], arrargomstr: any[], @@ -463,6 +490,7 @@ export default defineComponent({ const boolfiltroVuotoProductTypes = filtroProductTypes.length === 0 || (filtroProductTypes.length === 1 && filtroProductTypes[0] === 0); const boolfiltroVuotoExcludeProductTypes = filtroExcludeProductTypes.length === 0; + const boolfiltroVuotoidTipologie = filtroidTipologie.length === 0; const boolfiltroVuotoEditore = editore.length === 0; const boolfiltroVuotoCollane = idCollane.length === 0; // const boolfiltroVuotoArgomenti = arrargomstr.length === 0; @@ -475,8 +503,23 @@ export default defineComponent({ } // il prodotto dev'essere disponibile - if (!productStore.isPubblicato(product)) - return false + //if (!productStore.isPubblicato(product.productInfo)) + // return false + + if (!(optrigenera.value.visibilitaDisp === costanti.DISP.TUTTI || + (optrigenera.value.visibilitaDisp === costanti.DISP.ESAURITI && productStore.isEsaurito(product)) || + (optrigenera.value.visibilitaDisp === costanti.DISP.DISPONIBILI && productStore.isDisponibile(product)))) { + return false; + } + if (!(optrigenera.value.stato === costanti.STATO.TUTTI || + (optrigenera.value.stato === costanti.STATO.IN_COMMERCIO && productStore.isPubblicato(product.productInfo)) || + (optrigenera.value.stato === costanti.STATO.SOLO_PROSSIMA_USCITA && productStore.isProssimaUscita(product.productInfo)) || + (optrigenera.value.stato === costanti.STATO.PREVENDITA && productStore.isPrevendita(product.productInfo)) || + (optrigenera.value.stato === costanti.STATO.NON_VENDIBILE && productStore.isNonVendibile(product.productInfo)) + + )) { + return false; + } const lowerName = (product.productInfo.name || '').toLowerCase(); const lowerCode = (product.productInfo.code || '').toLowerCase(); @@ -504,6 +547,10 @@ export default defineComponent({ ? false : (product.productInfo.productTypes || []).every((item: any) => filtroExcludeProductTypes.includes(item)); + const hasidTipologie = boolfiltroVuotoidTipologie + ? true + : filtroidTipologie.includes(product.arrvariazioni?.[0].idTipologia); + // Filtri per editore const hasPublished = boolfiltroVuotoEditore ? true @@ -530,15 +577,15 @@ export default defineComponent({ searchMatch && hasAuthor && productgassel && - hasProductTypes && + hasidTipologie && + // hasProductTypes && ( hasPublished && hasCollana && hasCategoria && hasArgomentiCat ) - && - !hasExcludeProductTypes + // && !hasExcludeProductTypes ); }) .sort((a, b) => getProductsSorted([a, b], sortField, sortDir)[0] === a ? -1 : 1); @@ -552,14 +599,20 @@ export default defineComponent({ return arrris } - function calcArrProducts(generalista?: boolean) { + async function calcArrProducts(generalista?: boolean) { console.log('calcArrProducts (generalista=' + generalista + ')') + if (!loadpage.value) + return + + generatinglist.value = true + const searchtext = getSearchText(); let arrprod = []; const filtroAuthor = filter.value.author || ''; const filtroProductTypes = optcatalogo.value.productTypes || [0]; const filtroExcludeProductTypes = optcatalogo.value.excludeproductTypes || [0]; + const filtroidTipologie = optcatalogo.value.idTipologie || []; const editore = getEditoreDaFiltrare(optcatalogo.value.editore); const filtroPublishers = editore || []; const idCollane = getIdCollaneDaFiltrare(optcatalogo.value.idCollane); @@ -574,6 +627,9 @@ export default defineComponent({ // Se nel catalogo è stato già generato, allora gli passo quello. const trovatocatalogo = getCatalogoByMyPage.value + if (editore) + console.log('FILTRO editore', editore) + if (optcatalogo.value.showListaArgomenti) { generalista = true } @@ -592,6 +648,7 @@ export default defineComponent({ filtroAuthor, filtroProductTypes, filtroExcludeProductTypes, + filtroidTipologie, filtroPublishers, filtroCollane, arrargomstr, @@ -599,7 +656,7 @@ export default defineComponent({ gasselstr, cosa.value, filter.value.sort_field, - filter.value.sort_dir + filter.value.sort_dir, ); salva = true @@ -613,7 +670,10 @@ export default defineComponent({ generatearrProdToViewSorted(!generalista, salva, !optcatalogo.value.showListaArgomenti); loaddata(); - refreshpage.value = false; + console.log('***** FINE calcArrPROD') + + generatinglist.value = false + rigeneraLibri.value = false } function generaListaLibri() { @@ -630,11 +690,38 @@ export default defineComponent({ }) } + function arraysEqual(arr1, arr2) { + return ( + Array.isArray(arr1) && + Array.isArray(arr2) && + arr1.length === arr2.length && + arr1.every((val, index) => val === arr2[index]) + ); + } + + function checkIfFiltriDiversi(scheda: IMyScheda, schedaprec: IMyScheda) { + if (schedaprec === null) + return true + + const isDifferent = + !arraysEqual(scheda.productTypes, schedaprec?.productTypes) || + !arraysEqual(scheda.excludeproductTypes, schedaprec?.excludeproductTypes) || + !arraysEqual(scheda.idTipologie, schedaprec?.idTipologie) || + !arraysEqual(scheda.editore, schedaprec?.editore) || + !arraysEqual(scheda.idCollane, schedaprec?.idCollane) + ; + + return isDifferent; + + } + function getProductsFilteredByScheda(scheda: IMyScheda): IProduct[] { - let arrprod = productStore.getProducts(cosa.value) || []; + let arrprod = []; + const filtroAuthor = filter.value.author || ''; const filtroProductTypes = scheda.productTypes || [0]; const filtroExcludeProductTypes = scheda.excludeproductTypes || [0]; + const filtroidTipologie = scheda.idTipologie || []; const editore = getEditoreDaFiltrare(scheda.editore); const filtroPublishers = editore || []; const idCollane = getIdCollaneDaFiltrare(scheda.idCollane); @@ -649,6 +736,7 @@ export default defineComponent({ if (trovatocatalogo?.lista_prodotti.length > 0) { arrprod = trovatocatalogo?.lista_prodotti } else { + arrprod = productStore.getProducts(cosa.value) arrprod = filterProducts( arrprod, @@ -656,6 +744,7 @@ export default defineComponent({ filtroAuthor, filtroProductTypes, filtroExcludeProductTypes, + filtroidTipologie, filtroPublishers, filtroCollane, arrargomstr, @@ -785,6 +874,8 @@ export default defineComponent({ let arrprod = [] + let schedaprec = null; + for (const recscheda of optcatalogo.value.arrSchede!) { if (recscheda && recscheda.scheda) { const schedePerRiga = recscheda.scheda.numschede_perRiga || 1 @@ -798,8 +889,11 @@ export default defineComponent({ } else { if (recscheda.scheda.productTypes!.length > 0) { // Filtra i prodotti in base ai filtri impostati ! - arrProdFiltrati = getProductsFilteredByScheda(recscheda.scheda) - indprod = 0 + if (checkIfFiltriDiversi(recscheda.scheda, schedaprec) || indprod === 0) { + arrProdFiltrati = getProductsFilteredByScheda(recscheda.scheda) + schedaprec = { ...recscheda.scheda } + indprod = 0 + } } else { let sort_field = recscheda.scheda.sort_field! || optcatalogo.value.sort_field let sort_dir = recscheda.scheda.sort_dir || optcatalogo.value.sort_dir @@ -852,9 +946,9 @@ export default defineComponent({ if (indtotale > optcatalogo.value.maxnumlibri!) return - //} else { - // if (indtotale > 5000) - // return + //} else { + // if (indtotale > 5000) + // return } } @@ -934,11 +1028,19 @@ export default defineComponent({ }); }*/ + function getKeyCatAtLoad() { + return tools.COOK_CATEGORIA + (showListaArgomenti.value ? '_LA' : '') + } + async function mounted() { // console.log('mounted Catalogo') + cat.value = tools.getCookie(getKeyCatAtLoad(), '') + tabcatalogo.value = tools.getCookie('TAB_CAT', 'visu') + optrigenera.value.visibilitaDisp = tools.getCookie(showListaArgomenti.value ? 'INC_ES' : 'VIS_DISP', 'tutti') + loadpage.value = false await productStore.loadProducts() @@ -965,7 +1067,7 @@ export default defineComponent({ //++Todo: Per ora visualizzo solo il "Negozio" e non i GAS... cosa.value = shared_consts.PROD.BOTTEGA - cat.value = tools.getCookie(tools.COOK_CATEGORIA, '') + //cosa.value = tools.getCookie(tools.COOK_COSA_PRODOTTI, shared_consts.PROD.GAS, true) //if (cosa.value === shared_consts.PROD.TUTTI) @@ -977,7 +1079,6 @@ export default defineComponent({ calcArrProducts() - loaddata() } function loaddata() { @@ -990,17 +1091,18 @@ export default defineComponent({ }); function getCatProds() { - const arrcat = productStore.getCatProds(cosa.value) - const riscat: any = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }] - for (const rec of arrcat) { - const label = rec.name + ' (' + productStore.getTotaliProdottiByIdCatProd(rec._id) + ')' - riscat.push({ label, value: rec._id, icon: rec.icon, color: rec.color }) - } - - return riscat + return [{ label: 'Tutti', value: '', icon: undefined, color: undefined }].concat( + productStore.getCatProds(cosa.value).map(rec => ({ + label: `${rec.name} (${productStore.getTotaliProdottiByIdCatProd(rec._id)})`, + value: rec._id, + icon: rec.icon, + color: rec.color, + })), + ); } + function onLoadScroll(index: number, done: any) { if (index >= 1) { if (numRecLoaded.value < arrProducts.value.length) { @@ -1299,7 +1401,6 @@ export default defineComponent({ productStore, t, loadpage, - refreshpage, componentToFixRef, isFixed, arrProducts, @@ -1345,6 +1446,11 @@ export default defineComponent({ addProductToList, addnewProd, showListaArgomenti, + rigeneraLibri, + optrigenera, + generatinglist, + optDisp, + optStato, } } }) diff --git a/src/views/ecommerce/catalogo/catalogo.vue b/src/views/ecommerce/catalogo/catalogo.vue index 8327734b..efac84f5 100755 --- a/src/views/ecommerce/catalogo/catalogo.vue +++ b/src/views/ecommerce/catalogo/catalogo.vue @@ -12,7 +12,7 @@ dense class="bg-green text-white" > - -
+ + + + + + +
{{ t('ecomm.prodotti_trovati', { qta: arrProducts.length, @@ -93,9 +108,9 @@ +
Includi nei filtri:
+
+ + + + +
+ @@ -674,6 +712,27 @@ + +
+ + + +
+