Browse Source

添加商品时保持原有排列顺序

pull/1/head
徐飞洋 2 months ago
parent
commit
530844e57d
  1. 32
      pages/index/index.js

32
pages/index/index.js

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

Loading…
Cancel
Save