|
|
@ -770,23 +770,28 @@ Page({ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const minPrice = middlePrice - 5; |
|
|
const priceRange = middlePrice < 20 ? 1 : 5; |
|
|
const maxPrice = middlePrice + 5; |
|
|
const minPrice = middlePrice - priceRange; |
|
|
|
|
|
const maxPrice = middlePrice + priceRange; |
|
|
const defaultPrice = parseFloat(middlePrice.toFixed(2)); |
|
|
const defaultPrice = parseFloat(middlePrice.toFixed(2)); |
|
|
|
|
|
const priceThreshold = middlePrice < 20 ? 0.1 : 2; |
|
|
|
|
|
|
|
|
console.log('计算后的价格数据:', { |
|
|
console.log('计算后的价格数据:', { |
|
|
middlePrice: middlePrice, |
|
|
middlePrice: middlePrice, |
|
|
minPrice: minPrice, |
|
|
minPrice: minPrice, |
|
|
maxPrice: maxPrice, |
|
|
maxPrice: maxPrice, |
|
|
defaultPrice: defaultPrice |
|
|
defaultPrice: defaultPrice, |
|
|
|
|
|
priceThreshold: priceThreshold |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
this.setData({ |
|
|
this.setData({ |
|
|
showBargainModal: true, |
|
|
showBargainModal: true, |
|
|
bargainPrice: defaultPrice, |
|
|
bargainPrice: defaultPrice, |
|
|
|
|
|
basePrice: middlePrice, // 设置基础价格
|
|
|
selectedSpecIndex: 0, // 默认选中第一条规格
|
|
|
selectedSpecIndex: 0, // 默认选中第一条规格
|
|
|
minPrice: minPrice, |
|
|
minPrice: minPrice, |
|
|
maxPrice: maxPrice, |
|
|
maxPrice: maxPrice, |
|
|
|
|
|
priceThreshold: priceThreshold, // 设置价格判断阈值
|
|
|
sliderProgress: 50 // 默认滑块位置
|
|
|
sliderProgress: 50 // 默认滑块位置
|
|
|
}, () => { |
|
|
}, () => { |
|
|
console.log('setData 完成后的 bargainPrice:', this.data.bargainPrice); |
|
|
console.log('setData 完成后的 bargainPrice:', this.data.bargainPrice); |
|
|
@ -827,16 +832,19 @@ Page({ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const minPrice = middlePrice - 5; |
|
|
const priceRange = middlePrice < 20 ? 1 : 5; |
|
|
const maxPrice = middlePrice + 5; |
|
|
const minPrice = middlePrice - priceRange; |
|
|
|
|
|
const maxPrice = middlePrice + priceRange; |
|
|
const currentPrice = parseFloat(middlePrice.toFixed(2)); |
|
|
const currentPrice = parseFloat(middlePrice.toFixed(2)); |
|
|
|
|
|
const priceThreshold = middlePrice < 20 ? 0.3 : 2; |
|
|
|
|
|
|
|
|
console.log('选择规格 - 价格数据:', { |
|
|
console.log('选择规格 - 价格数据:', { |
|
|
index: index, |
|
|
index: index, |
|
|
middlePrice: middlePrice, |
|
|
middlePrice: middlePrice, |
|
|
minPrice: minPrice, |
|
|
minPrice: minPrice, |
|
|
maxPrice: maxPrice, |
|
|
maxPrice: maxPrice, |
|
|
currentPrice: currentPrice |
|
|
currentPrice: currentPrice, |
|
|
|
|
|
priceThreshold: priceThreshold |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
this.setData({ |
|
|
this.setData({ |
|
|
@ -844,6 +852,8 @@ Page({ |
|
|
minPrice: minPrice, |
|
|
minPrice: minPrice, |
|
|
maxPrice: maxPrice, |
|
|
maxPrice: maxPrice, |
|
|
bargainPrice: currentPrice, |
|
|
bargainPrice: currentPrice, |
|
|
|
|
|
basePrice: middlePrice, // 更新基础价格
|
|
|
|
|
|
priceThreshold: priceThreshold, // 更新价格判断阈值
|
|
|
sliderProgress: 50 |
|
|
sliderProgress: 50 |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
@ -871,7 +881,8 @@ Page({ |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
if (bargainPrice > minPrice) { |
|
|
if (bargainPrice > minPrice) { |
|
|
const newPrice = parseFloat((bargainPrice - 1).toFixed(2)); |
|
|
const step = bargainPrice < 20 ? 0.1 : 1; |
|
|
|
|
|
const newPrice = parseFloat((bargainPrice - step).toFixed(2)); |
|
|
console.log('计算新价格:', newPrice); |
|
|
console.log('计算新价格:', newPrice); |
|
|
this.updatePrice(newPrice); |
|
|
this.updatePrice(newPrice); |
|
|
} |
|
|
} |
|
|
@ -887,7 +898,8 @@ Page({ |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
if (bargainPrice < maxPrice) { |
|
|
if (bargainPrice < maxPrice) { |
|
|
const newPrice = parseFloat((bargainPrice + 1).toFixed(2)); |
|
|
const step = bargainPrice < 20 ? 0.1 : 1; |
|
|
|
|
|
const newPrice = parseFloat((bargainPrice + step).toFixed(2)); |
|
|
console.log('计算新价格:', newPrice); |
|
|
console.log('计算新价格:', newPrice); |
|
|
this.updatePrice(newPrice); |
|
|
this.updatePrice(newPrice); |
|
|
} |
|
|
} |
|
|
@ -980,7 +992,7 @@ Page({ |
|
|
// 滑块移动
|
|
|
// 滑块移动
|
|
|
onSliderMove(e) { |
|
|
onSliderMove(e) { |
|
|
try { |
|
|
try { |
|
|
const { minPrice, maxPrice } = this.data; |
|
|
const { minPrice, maxPrice, bargainPrice } = this.data; |
|
|
if (!minPrice || !maxPrice) return; |
|
|
if (!minPrice || !maxPrice) return; |
|
|
|
|
|
|
|
|
const touch = e.touches[0]; |
|
|
const touch = e.touches[0]; |
|
|
@ -996,7 +1008,14 @@ Page({ |
|
|
progress = Math.max(0, Math.min(100, progress)); |
|
|
progress = Math.max(0, Math.min(100, progress)); |
|
|
|
|
|
|
|
|
const priceRange = maxPrice - minPrice; |
|
|
const priceRange = maxPrice - minPrice; |
|
|
const price = Math.round(minPrice + (progress / 100) * priceRange); |
|
|
let price = minPrice + (progress / 100) * priceRange; |
|
|
|
|
|
|
|
|
|
|
|
if (bargainPrice < 20) { |
|
|
|
|
|
price = Math.round(price * 10) / 10; |
|
|
|
|
|
} else { |
|
|
|
|
|
price = Math.round(price); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
const clampedPrice = Math.max(minPrice, Math.min(maxPrice, price)); |
|
|
const clampedPrice = Math.max(minPrice, Math.min(maxPrice, price)); |
|
|
|
|
|
|
|
|
this.setData({ |
|
|
this.setData({ |
|
|
|