浏览代码

点餐结算bug修改

licc 2 月之前
父节点
当前提交
0fac22f535
共有 2 个文件被更改,包括 48 次插入29 次删除
  1. 43 27
      src/views/order/console.vue
  2. 5 2
      src/views/orders/list.vue

+ 43 - 27
src/views/order/console.vue

@@ -602,9 +602,9 @@ const open = (item: any, num?: number, orderNumber?: any) => {
                     accumulator + currentValue.num,
                 0
             )
-            orderData.payAmount = res[0].payAmount
-                ? Number((res[0].payAmount / 100).toFixed(2))
-                : Number(orderData.sumPriceSum).toFixed(2)
+            orderData.payAmount = Number(
+              orderData.sumPriceSum - (params.couponAmount === '-' ? 0 : Number(params.couponAmount))
+          ).toFixed(2)
         } else {
             orderData.priceSum = 0
             orderData.numSum = 0
@@ -630,8 +630,10 @@ const refreshdishes = async () => {
         })
         console.log('***refreshdishes***', res)
         data.selectGoods = res
+        console.log('***res.length***', res.length)
         if (res.length > 0) {
-            const _list = res.filter((it: { status: number }) => it.status != 1) //找到没有出单的餐品来计算价格
+            // const _list = res.filter((it: { status: number }) => it.status != 1) //找到没有出单的餐品来计算价格
+            const _list = res
             orderData.priceSum = _list.reduce(
                 (accumulator: number, currentValue: { summary: number; num: number }) =>
                     accumulator + currentValue.summary * currentValue.num,
@@ -653,19 +655,21 @@ const refreshdishes = async () => {
                     accumulator + currentValue.num,
                 0
             )
+          console.log('***res[0].payAmount***', res[0].payAmount, Number(res[0].payAmount / 100).toFixed(2))
             orderData.payAmount = res[0].payAmount
-                ? Number((res[0].payAmount / 100).toFixed(2))
+                ? Number(res[0].payAmount / 100).toFixed(2)
                 : Number(orderData.sumPriceSum).toFixed(2)
+          console.log('***orderData***', orderData)
         } else {
           orderData.priceSum = 0
           orderData.numSum = 0
           orderData.sumPriceSum = 0
+          orderData.sumNumSum = 0
+          orderData.payAmount = 0
         }
     }).finally(() => {
-        orderData.sumNumSum = 0
-        orderData.payAmount = 0
+       orderLoading.value = false
     })
-    orderLoading.value = false
 }
 watch(search, (value) => {
     if (!value) {
@@ -702,26 +706,38 @@ const clickSortButton = (name: any) => {
 const toEmpty = () => {
     if (data.selectGoods.length != 0) {
       orderLoading.value = true
-        //清空未出单的餐品-保留出单餐品
-        data.selectGoods = data.selectGoods.filter((good: { status: number }) => {
-            return good.status == 1
-        })
-        orderData.sumPriceSum = data.selectGoods.reduce(
-            (accumulator: number, currentValue: { summary: number; num: number }) =>
-                accumulator + currentValue.summary * currentValue.num,
-            0
-        )
-        orderData.sumNumSum = data.selectGoods.reduce(
-            (accumulator: number, currentValue: { summary: number; num: number }) =>
-                accumulator + currentValue.num,
-            0
-        )
-        // data.selectGoods.length = 0
-        orderData.priceSum = 0
-        orderData.numSum = 0
-        // orderData.sumPriceSum = 0
-        // orderData.sumNumSum = 0
         toEmptyy({ id: params.number }).finally(()=>{
+
+            //清空未出单的餐品-保留出单餐品
+            data.selectGoods = data.selectGoods.filter((good: { status: number }) => {
+                return good.status == 1
+            })
+            orderData.sumPriceSum = data.selectGoods.reduce(
+                (accumulator: number, currentValue: { summary: number; num: number }) =>
+                    accumulator + currentValue.summary * currentValue.num,
+                0
+            )
+            orderData.sumNumSum = data.selectGoods.reduce(
+                (accumulator: number, currentValue: { summary: number; num: number }) =>
+                    accumulator + currentValue.num,
+                0
+            )
+            // data.selectGoods.length = 0
+            orderData.priceSum = 0
+            orderData.numSum = 0
+            // orderData.sumPriceSum = 0
+            // orderData.sumNumSum = 0
+
+            // 检查优惠券条件
+            if (params.couponId && orderData.sumPriceSum < Number(params.couponAmount)) {
+                // 如果订单金额小于优惠券金额,清空优惠券
+                params.couponId = ''
+                params.couponAmount = '-'
+                orderData.payAmount = orderData.sumPriceSum
+            }
+          orderData.payAmount = Number(
+              orderData.sumPriceSum - (params.couponAmount === '-' ? 0 : Number(params.couponAmount))
+          ).toFixed(2)
           orderLoading.value = false
         })
     }

+ 5 - 2
src/views/orders/list.vue

@@ -15,6 +15,7 @@
                         <el-option label="待下单" value="0" />
                         <el-option label="待结帐" value="1" />
                         <el-option label="已完成" value="2" />
+                        <el-option label="已退款" value="4" />
                     </el-select>
                 </el-form-item>
                 <el-form-item label="创建时间" class="w-[280px]">
@@ -94,8 +95,10 @@
                 <el-table-column label="支付金额" min-width="160" prop="amount">
                     <template #default="{ row }">
                         <div>
-                            <div :style="row.status > 1 ? 'text-decoration: line-through;': ''" v-if="row.status > 0">订单金额:¥{{row.amount}}</div>
-                            <div style="color: #f01414;" v-if="row.status > 1">实付金额:¥{{row.payAmount || row.amount}}</div>
+                            <div :style="row.status > 1 && row.status != 6 ? 'text-decoration: line-through;': ''" v-if="row.status > 1 && row.status != 6">订单金额:¥{{row.amount}}</div>
+                            <div style="color: #f01414;" v-if="row.status >= 2 && row.status != 6">
+                              实付:¥{{row.payAmount || row.amount}}   {{row.status==4 ? '退款:¥' + row.refundAmount : ''}}
+                            </div>
                             <div v-if="row.ticketNo" class="refund-info">
                                 <div style="font-size: 12px;">抵扣券券号:{{ row.ticketNo }}</div>
                                 <div style="font-size: 12px;">抵扣券金额:¥{{ row.ticketAmount }}</div>