diff --git a/pages/index/index.js b/pages/index/index.js index 1df2bb3..4d75c90 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -481,7 +481,7 @@ Page({ updatedGoods = newGoods } - const filteredGoods = this.applyFilters(updatedGoods) + const filteredGoods = this.applyFilters(updatedGoods, !isLoadMore) console.log('filteredGoods 数量:', filteredGoods.length) console.log('filteredGoods[0]:', filteredGoods[0]) console.log('filteredGoods[1]:', filteredGoods[1]) @@ -618,7 +618,7 @@ Page({ }, // 应用筛选条件 - applyFilters: function(goods) { + applyFilters: function(goods, shouldSort = true) { let filtered = [...goods] if (this.data.selectedCategory !== '全部') { @@ -640,19 +640,21 @@ Page({ filtered = filtered.filter(item => item.isAd || (item.region && item.region.includes(selectedRegion))) } - filtered.sort((a, b) => { - const reservedCountA = a.reservedCount || 0 - const reservedCountB = b.reservedCount || 0 - if (reservedCountB !== reservedCountA) return reservedCountB - reservedCountA - - const priceA = parseFloat(a.price || 0) - const priceB = parseFloat(b.price || 0) - if (!isNaN(priceB) && !isNaN(priceA) && priceA !== priceB) return priceA - priceB - - const createdAtA = new Date(a.createdAt || 0).getTime() - const createdAtB = new Date(b.createdAt || 0).getTime() - return createdAtB - createdAtA - }) + if (shouldSort) { + filtered.sort((a, b) => { + const reservedCountA = a.reservedCount || 0 + const reservedCountB = b.reservedCount || 0 + if (reservedCountB !== reservedCountA) return reservedCountB - reservedCountA + + const priceA = parseFloat(a.price || 0) + const priceB = parseFloat(b.price || 0) + if (!isNaN(priceB) && !isNaN(priceA) && priceA !== priceB) return priceA - priceB + + const createdAtA = new Date(a.createdAt || 0).getTime() + const createdAtB = new Date(b.createdAt || 0).getTime() + return createdAtB - createdAtA + }) + } return filtered },