Browse Source

折扣券兼容展示和使用

licc 4 tuần trước cách đây
mục cha
commit
dff77cee75
3 tập tin đã thay đổi với 70 bổ sung22 xóa
  1. 8 0
      src/api/order.ts
  2. 5 0
      src/views/membership/user/user.vue
  3. 57 22
      src/views/order/console.vue

+ 8 - 0
src/api/order.ts

@@ -93,3 +93,11 @@ export function cashPay(params ?: any) {
         urlPrefix: '/elab-marketing-content' // 单独定义的 URL 前缀
     })
 }
+export function calPayAmount(params ?: any) {
+    return request.post({
+        url: '/wx/calPayAmount', // 具体的接口路径
+        params
+    }, {
+        urlPrefix: '/elab-marketing-content' // 单独定义的 URL 前缀
+    })
+}

+ 5 - 0
src/views/membership/user/user.vue

@@ -36,6 +36,7 @@
         <el-table-column label="入会时间" prop="time" min-width="120"/>
         <el-table-column label="操作" min-width="180" fixed="right">
           <template #default="{ row }">
+<!--            <el-button type="primary" link @click="updateBalance(row)">修改余额</el-button>-->
             <el-button type="primary" link @click="showChargeConsumeRecord(row)">余额变动记录</el-button>
           </template>
         </el-table-column>
@@ -120,5 +121,9 @@ const changeStatus = async (id: number, status: any) => {
 const showChargeConsumeRecord = async (row: any) => {
   chargeConsumeRecordRef.value?.open(row)
 }
+
+const updateBalance = async (data: any) => {
+
+}
 getLists()
 </script>

+ 57 - 22
src/views/order/console.vue

@@ -299,7 +299,8 @@
                     >
                         <div class="left-part">
                             <div class="amount-wrapper">
-                                <div class="amount">{{ coupon.consumeScore / 100 }}</div>
+                                <div class="amount" v-if="coupon.productType !== 'DISCOUNT'">{{ coupon.consumeScore / 100 }} <span style="font-size: 12px">元</span></div>
+                                <div class="amount" v-else>{{ coupon.discount }} <span style="font-size: 12px">折</span></div>
                             </div>
                             <!-- <div class="condition">满{{ coupon.consumeScore / 100 }}可用</div> -->
                         </div>
@@ -484,7 +485,8 @@ import {
     cancelOrder,
     getUserIdByMobile,
     queryUserMemberInfo,
-    cashPay
+    cashPay,
+    calPayAmount
 } from '@/api/order'
 import feedback from '@/utils/feedback'
 // const route = useRoute()
@@ -874,30 +876,41 @@ const checkout = () => {
     // })
 }
 // 添加优惠券点击处理方法
-const handleCouponClick = (coupon: any) => {
-    if (
-        orderData.sumPriceSum < coupon.consumeScore / 100 ||
-        orderData.sumPriceSum < coupon.useThreshold / 100
-    ) {
-        return
-    }
-    if (params.couponId === coupon.ticketRecordId) {
-        params.couponId = ''
-        params.couponNo = ''
-        params.couponName = ''
-        params.couponAmount = '-'
-        orderData.payAmount = orderData.sumPriceSum
-        return
-    }
+const handleCouponClick = async (coupon: any) => {
+  // 取消选中
+  if (params.couponId === coupon.ticketRecordId) {
+    params.couponId = ''
+    params.couponNo = ''
+    params.couponName = ''
+    params.couponAmount = '-'
+    orderData.payAmount = orderData.sumPriceSum
+    return
+  }
+  if (coupon.productType === 'DISCOUNT') {
+    const res = await calPayAmount({amount: orderData.sumPriceSum, ticketId: coupon.ticketRecordId})
     balancePaymentPhone.value = data.phone
     params.couponId = coupon.ticketRecordId
     params.couponNo = coupon.ticketNo
     params.couponName = coupon.productName
-    params.couponAmount = (coupon.consumeScore / 100).toFixed(2)
-    // 计算支付金额
-    orderData.payAmount = (
-        Number(orderData.sumPriceSum) - Number(coupon.consumeScore / 100)
-    ).toFixed(2)
+    params.couponAmount = (Number(orderData.sumPriceSum) - Number(res.single)).toFixed(2)
+    orderData.payAmount = res.single
+    return;
+  }
+  if (
+      orderData.sumPriceSum < coupon.consumeScore / 100 ||
+      orderData.sumPriceSum < coupon.useThreshold / 100
+  ) {
+      return
+  }
+  balancePaymentPhone.value = data.phone
+  params.couponId = coupon.ticketRecordId
+  params.couponNo = coupon.ticketNo
+  params.couponName = coupon.productName
+  params.couponAmount = (coupon.consumeScore / 100).toFixed(2)
+  // 计算支付金额
+  orderData.payAmount = (
+      Number(orderData.sumPriceSum) - Number(coupon.consumeScore / 100)
+  ).toFixed(2)
 }
 
 const open = (item: any, num?: number, orderNumber?: any) => {
@@ -1215,6 +1228,13 @@ const add = (item: any) => {
             orderLoading.value = false
             nextTick(() => {
                 scrollbarRef.value!.setScrollTop(innerRef.value!.clientHeight)
+                if (params.couponId) {
+                  params.couponId = ''
+                  params.couponNo = ''
+                  params.couponName = ''
+                  params.couponAmount = '-'
+                  orderData.payAmount = orderData.sumPriceSum
+                }
             })
         })
 }
@@ -1334,6 +1354,13 @@ const handleAddGoods = (item: any) => {
                 })
             })
     }
+    if (params.couponId) {
+      params.couponId = ''
+      params.couponNo = ''
+      params.couponName = ''
+      params.couponAmount = '-'
+      orderData.payAmount = orderData.sumPriceSum
+    }
 }
 //只有正常执行了接口才触发
 const addHandle = (item: { summary: any }) => {
@@ -1392,6 +1419,14 @@ const reduce = (item: any) => {
                 orderLoading.value = false
             })
     }
+
+    if (params.couponId) {
+      params.couponId = ''
+      params.couponNo = ''
+      params.couponName = ''
+      params.couponAmount = '-'
+      orderData.payAmount = orderData.sumPriceSum
+    }
 }
 //只有正常执行了接口才触发
 const reduceHandle = (item: { summary: number }) => {