Browse Source

fix(create-order): 修复无法计算原价和折扣率的问题

- 增加判断逻辑,检查产品列表中是否存在原价为 0 的商品
- 如果存在原价为 0 的商品,将不计算总原价和折扣率
- 优化了代码结构,提高了可读性和健壮性

Signed-off-by: tangshizhe <48740614+tangshizhe@users.noreply.github.com>
tangshizhe 2 months ago
parent
commit
a87c323f52

+ 6 - 2
src/views/create-order/components/order-detail-submodule/OrderDetailCardProductSummarize.vue

@@ -177,11 +177,15 @@ export default {
       const totalOriginalPrice = productData.reduce((acc, cur) => acc + Number(cur.original_price), 0).toFixed(2);
       const totalDiscountRate = div(totalFinalPrice, totalOriginalPrice) * 100
       const rateTotal = totalDiscountRate ? (div(totalFinalPrice, totalOriginalPrice) * 100).toFixed(2) + '%' : '0%'
+      // 判断productData中每一项的original_price是否为0,如果有,则返回true
+      const isAllOriginalPriceZero = productData.map(item => item.original_price === 0);
+      console.log(isAllOriginalPriceZero, 'isAllOriginalPriceZero')
+      const isAllOriginalPriceZeroBool = !isAllOriginalPriceZero.includes(true)
       this.orderData = {
         ...this.orderData,
         final_price_total: totalFinalPrice,
-        original_price_total: Number(totalOriginalPrice)? '¥' + totalOriginalPrice : '无法计算',
-        rate_total: Number(totalOriginalPrice) ? rateTotal : '无法计算'
+        original_price_total: Number(totalOriginalPrice) && isAllOriginalPriceZeroBool ? '¥' + totalOriginalPrice : '无法计算',
+        rate_total: Number(totalOriginalPrice) && isAllOriginalPriceZeroBool ? rateTotal : '无法计算'
       }
     },