From 738b12d41a1aa51d287a0ad16f3784fa37dc58d3 Mon Sep 17 00:00:00 2001 From: huliyong <2783385703@qq.com> Date: Fri, 27 Jun 2025 20:13:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BB=B7=E6=A0=BC=E6=98=BE=E7=A4=BA):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=B7=E6=A0=BC=E5=8C=BA=E9=97=B4=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=8A=9F=E8=83=BD=E5=B9=B6=E6=9B=B4=E6=96=B0=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在回收组件中添加maxPrice字段用于价格区间计算 - 修改价格显示逻辑,支持显示价格范围 - 更新取消按钮的背景颜色样式 - 重构总价计算逻辑,基于实际价格区间计算 --- pages/component/recycle.vue | 1 + pages/index/index.vue | 1 + pages/subcomponent/pickup.vue | 18 ++++++++++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pages/component/recycle.vue b/pages/component/recycle.vue index 0a261b5..314c797 100644 --- a/pages/component/recycle.vue +++ b/pages/component/recycle.vue @@ -734,6 +734,7 @@ export default { icon: item.image, quantity: item.quantity, unitPrice: item.price, + maxPrice : item.maxPrice, desc: item.brandName ? `品牌:${item.brandName}` : '允许脏破烂,160码以上' } diff --git a/pages/index/index.vue b/pages/index/index.vue index 1b277c9..72a2ebc 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -301,6 +301,7 @@ .cancel-btn { background-color: rgba(255, 253, 249); color: #f7990c; + background-color: #f9ece5; border: 1px solid rgba(249, 178, 71); } diff --git a/pages/subcomponent/pickup.vue b/pages/subcomponent/pickup.vue index b0ce214..fe39e5e 100644 --- a/pages/subcomponent/pickup.vue +++ b/pages/subcomponent/pickup.vue @@ -66,9 +66,9 @@ - ¥{{ item.unitPrice }}/件 + ¥{{ item.price || item.unitPrice }}~{{ item.maxPrice || item.unitPrice }}/件 x{{ item.quantity }} - ¥{{ item.unitPrice * item.quantity }} + ¥{{ ((item.price || item.unitPrice) * item.quantity).toFixed(2) }}~{{ ((item.maxPrice || item.unitPrice) * item.quantity).toFixed(2) }} @@ -240,8 +240,18 @@ export default { }, totalPriceRange() { if (this.selectedItems.length === 0) return '0-0' - const total = this.selectedItems.reduce((sum, item) => sum + (item.unitPrice * item.quantity), 0) - return `${(total * 0.92).toFixed(2)}~${(total * 1.1).toFixed(2)}` + + let minTotal = 0 + let maxTotal = 0 + + this.selectedItems.forEach(item => { + const minPrice = item.price || item.unitPrice || 0 + const maxPrice = item.maxPrice || item.unitPrice || 0 + minTotal += minPrice * item.quantity + maxTotal += maxPrice * item.quantity + }) + + return `${minTotal.toFixed(2)}~${maxTotal.toFixed(2)}` }, canSubmit() { return this.agreed && this.selectedItems.length > 0 && this.selectedTime && this.displayAddress