Aggiornamento cataloghi...

This commit is contained in:
Surya Paolo
2025-04-11 18:49:42 +02:00
parent cea3bcfa0e
commit 3616e2ca0f
44 changed files with 593 additions and 206 deletions

View File

@@ -535,6 +535,8 @@ export default defineComponent({
})
.sort((a, b) => getProductsSorted([a, b], sortField, sortDir)[0] === a ? -1 : 1);
console.log(' sortField=' + sortField)
console.log(' sortDir=' + sortDir)
console.log(' Filtro=' + arrargomstr)
console.log(' idCollane=' + idCollane)
console.log('PRODOTTI FILTRATI:', arrris.length)
@@ -656,33 +658,68 @@ export default defineComponent({
return arrprod;
}
/**
* Funzione che ordina un array di prodotti in base a un campo specifico
* @param arrprod array di prodotti da ordinare
* @param sort_field campo su cui effettuare l'ordinamento
* @param sort_dir direzione dell'ordinamento (1 asc, -1 desc)
* @returns array di prodotti ordinati
*/
function getProductsSorted(arrprod: IProduct[], sort_field: string, sort_dir: number): IProduct[] {
if (sort_field) {
console.log('--- Primi 10 elementi INIZIALI:');
arrprod.slice(0, 15).forEach((product, index) => {
console.log(
`${index + 1}. ${product.productInfo?.name} (${product.productInfo?.date_pub})`
);
});
// Crea una copia dell'array per non modificare l'originale
const sortedArr = [...arrprod].sort((a: IProduct, b: IProduct) => {
const valA = a.productInfo?.[sort_field];
const valB = b.productInfo?.[sort_field];
// Gestisce il caso in cui il campo non esiste
if (valA === undefined || valB === undefined) {
return 0; // Gestisce il caso in cui il campo non esiste
return 0;
}
// Ordinamento per data
if (valA instanceof Date && valB instanceof Date) {
return sort_dir === 1 ? valA.getTime() - valB.getTime() : valB.getTime() - valA.getTime();
}
// Ordinamento per numeri
if (typeof valA === 'number' && typeof valB === 'number') {
return sort_dir === 1 ? valA - valB : valB - valA;
} else {
// Per stringhe o altri tipi
const compA = valA.toString().toLowerCase();
const compB = valB.toString().toLowerCase();
return sort_dir === 1
? compA.localeCompare(compB)
: compB.localeCompare(compA);
}
// Ordinamento per stringhe o altri tipi
const compA = valA.toString().toLowerCase();
const compB = valB.toString().toLowerCase();
return sort_dir === 1
? compA.localeCompare(compB)
: compB.localeCompare(compA);
});
// logga i primi 3 elementi, mostrando il nome del prodotto (productInfo.name e la data di pibblicazione : productinfo.date_pub
if (sortedArr.length > 0) {
console.log('Primi 15 elementi ordinati: ***** ');
sortedArr.slice(0, 15).forEach((product, index) => {
console.log(
`${index + 1}. ${product.productInfo?.name} (${product.productInfo?.date_pub})`
);
});
} else {
console.log('Nessun prodotto trovato.');
}
// Aggiunge l'indice di ranking ai prodotti
return sortedArr.map((product, index) => ({
...product,
indiceRanking: index + 1
}));
}))
}
return arrprod;
@@ -807,8 +844,6 @@ export default defineComponent({
recscheda.arrProdToShow[pagina][riga] = [];
}
// console.log('RANKING: ', result.myrec.indiceRanking!)
arrprod.push(result.myrec)
recscheda.arrProdToShow[pagina][riga][col] = result.myrec