Aggiornamento cataloghi...
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user