Kaynağa Gözat

fix: 兼容HbulderX 3.6.15版本 update的BUG

ldh 2 yıl önce
ebeveyn
işleme
e01366111d

+ 1 - 1
pages/activity/groupon/detail.vue

@@ -186,7 +186,7 @@
           :show="state.showSelectSku"
           :goodsInfo="state.data.goods"
           :grouponAction="state.grouponAction"
-          v-model:grouponNum="state.grouponNum"
+          :grouponNum="state.grouponNum"
           @buy="onBuy"
           @change="onSkuChange"
           @close="state.showSelectSku = false"

+ 20 - 11
pages/goods/groupon.vue

@@ -116,8 +116,9 @@
           :show="state.showSelectSku"
           :goodsInfo="state.goodsInfo"
           :grouponAction="state.grouponAction"
-          v-model:grouponNum="state.grouponNum"
+          :grouponNum="state.defaultGrouponNum"
           @buy="onBuy"
+          @ladder="onLadder"
           @change="onSkuChange"
           @close="onSkuClose"
         />
@@ -190,16 +191,17 @@
 
   onPageScroll(() => {});
   const state = reactive({
-    skeletonLoading: true,
-    goodsId: 0,
-    goodsInfo: {},
-    goodsSwiper: [],
-    showSelectSku: false,
-    selectedSkuPrice: {},
-    grouponId: 0,
-    grouponType: '',
-    grouponNum: 0,
-    grouponAction: 'create',
+    skeletonLoading: true,  // 骨架屏
+    goodsId: 0,             // 商品ID
+    goodsInfo: {},          // 商品信息
+    goodsSwiper: [],        // 商品轮播图
+    showSelectSku: false,   // 显示规格弹框
+    selectedSkuPrice: {},   // 选中的规格价格
+    grouponId: 0,           // 团购ID
+    grouponType: '',        // 团购类型
+    defaultGrouponNum: 0,   // 默认团购人数
+    grouponNum: 0,          // 团购人数
+    grouponAction: 'create',  // 团购操作  
   });
 
   // 商品主价格
@@ -226,6 +228,11 @@
     state.selectedSkuPrice = e;
   }
 
+  // 阶梯变更
+  function onLadder(e) {
+    state.grouponNum = e
+  }
+
   function onSkuClose() {
     state.showSelectSku = false;
   }
@@ -241,6 +248,7 @@
   function onJoinGroupon(groupon) {
     state.grouponAction = 'join';
     state.grouponId = groupon.id;
+    state.defaultGrouponNum = groupon.num;
     state.grouponNum = groupon.num;
     state.showSelectSku = true;
   }
@@ -303,6 +311,7 @@
       state.goodsInfo = data;
       state.grouponType = state.goodsInfo.activity_type;
       if (state.grouponType === 'groupon') {
+        state.defaultGrouponNum = state.goodsInfo.activity.rules.team_num;
         state.grouponNum = state.goodsInfo.activity.rules.team_num;
       }
       state.goodsSwiper = formatGoodsSwiper(state.goodsInfo.images);

+ 8 - 6
sheep/components/s-select-groupon-sku/s-select-groupon-sku.vue

@@ -44,7 +44,7 @@
                 class="ss-reset-button spec-btn"
                 :class="[
                   {
-                    'checked-btn': grouponNum == ladder,
+                    'checked-btn': state.grouponNum == ladder,
                   },
                 ]"
                 @tap="onSelectLadder(ladder)"
@@ -91,7 +91,7 @@
         <view class="buy-box ss-flex ss-col-center ss-flex ss-col-center ss-row-center">
           <view class="ss-flex">
             <button class="ss-reset-button origin-price-btn ss-flex-col">
-              <view class="btn-title">{{ grouponNum }}人团</view>
+              <view class="btn-title">{{ state.grouponNum === 0 ? '阶梯团' : state.grouponNum + '人团' }}</view>
             </button>
             <button class="ss-reset-button btn-tox ss-flex-col" @tap="onBuy">
               <view class="btn-price">
@@ -128,7 +128,7 @@
   import { formatPrice } from '@/sheep/hooks/useGoods';
   import { isEmpty } from 'lodash';
 
-  const emits = defineEmits(['change', 'addCart', 'buy', 'close', 'update:grouponNum']);
+  const emits = defineEmits(['change', 'addCart', 'buy', 'close', 'ladder']);
   const props = defineProps({
     show: {
       type: Boolean,
@@ -150,6 +150,7 @@
   const state = reactive({
     selectedSkuPrice: {},
     currentSkuArray: [],
+    grouponNum: props.grouponNum,
   });
 
   // 默认单规格
@@ -204,7 +205,7 @@
 
   // 获取阶梯价
   function getSkuPriceByLadder() {
-    return state.selectedSkuPrice.ladders.find((item) => item.ladder == props.grouponNum);
+    return state.selectedSkuPrice.ladders.find((item) => item.ladder == state.grouponNum);
   }
 
   watch(
@@ -340,13 +341,14 @@
 
   // 选择阶梯拼团人数
   function onSelectLadder(ladder) {
-    emits('update:grouponNum', ladder);
+    state.grouponNum = ladder;
+    emits('ladder', ladder);
   }
 
   // 选择规格
   function onSelectSku(pid, skuId) {
     // 清空已选择
-    if (activityType === 'groupon_ladder' && props.grouponNum == 0) {
+    if (activityType === 'groupon_ladder' && state.grouponNum == 0) {
       sheep.$helper.toast('请选择拼团人数');
       return;
     }