Commit b7299f21a10f36ef698027d8c6b3aa677e5f01df
1 parent
11466af4
购物车多促销再切换活动的优化
Showing
6 changed files
with
243 additions
and
38 deletions
components/promate_pop/promate_pop.js
| @@ -4,23 +4,35 @@ Component({ | @@ -4,23 +4,35 @@ Component({ | ||
| 4 | type:0, //0只显示再商品详情页面 1显示再有选择按钮 | 4 | type:0, //0只显示再商品详情页面 1显示再有选择按钮 |
| 5 | pro_pop:0, //是否弹出 | 5 | pro_pop:0, //是否弹出 |
| 6 | cx_prom_group:[], //弹出框的内容展示 | 6 | cx_prom_group:[], //弹出框的内容展示 |
| 7 | + is_cart:0 | ||
| 7 | }, | 8 | }, |
| 8 | methods: { | 9 | methods: { |
| 9 | //-- 初始化弹出框 -- | 10 | //-- 初始化弹出框 -- |
| 10 | - set_init(type,cx_prom_group){ | 11 | + set_init(type,cx_prom_group,is_cart){ |
| 11 | if(!type) type=0; | 12 | if(!type) type=0; |
| 13 | + if(!is_cart) is_cart=0; | ||
| 12 | 14 | ||
| 15 | + var fd=cx_prom_group.findIndex(function (gh){ | ||
| 16 | + return gh.sele | ||
| 17 | + }) | ||
| 18 | + if(fd==-1){ | ||
| 19 | + cx_prom_group[0].sele=1; | ||
| 20 | + } | ||
| 13 | this.setData({ | 21 | this.setData({ |
| 14 | - type:type,pro_pop:1,cx_prom_group | 22 | + type:type,pro_pop:1,cx_prom_group,is_cart:is_cart |
| 15 | }) | 23 | }) |
| 16 | }, | 24 | }, |
| 17 | 25 | ||
| 18 | - /*----pop的开关---*/ | 26 | + /*----pop的开关,如果按钮是‘确定’,就要返回参数给父层组件---*/ |
| 19 | close_pro_pop: async function (event) { | 27 | close_pro_pop: async function (event) { |
| 20 | - this.setData({pro_pop: 0}); | 28 | + this.setData({pro_pop: 0}); |
| 29 | + if(!this.data.type) return false; | ||
| 30 | + var idx=this.data.cx_prom_group.findIndex(function (e){ | ||
| 31 | + return e.sele==1; | ||
| 32 | + }) | ||
| 33 | + this.triggerEvent('sure_cx_group',{sele_idx:idx},{bubbles: true}); | ||
| 21 | }, | 34 | }, |
| 22 | 35 | ||
| 23 | - | ||
| 24 | go_the_url:function (e){ | 36 | go_the_url:function (e){ |
| 25 | var prom_id = e.currentTarget.dataset.id; | 37 | var prom_id = e.currentTarget.dataset.id; |
| 26 | var prom_type = e.currentTarget.dataset.prom_type; | 38 | var prom_type = e.currentTarget.dataset.prom_type; |
| @@ -37,15 +49,24 @@ Component({ | @@ -37,15 +49,24 @@ Component({ | ||
| 37 | } | 49 | } |
| 38 | break; | 50 | break; |
| 39 | case 7: | 51 | case 7: |
| 40 | - url="/packageB/pages/zuhegou/index/index?id=" + id | 52 | + url="/packageB/pages/zuhegou/index/index?id=" + prom_id |
| 41 | break; | 53 | break; |
| 42 | case 10: | 54 | case 10: |
| 43 | url="/pages/goods/goodsList/goodsList?ladder_id=" + prom_id; | 55 | url="/pages/goods/goodsList/goodsList?ladder_id=" + prom_id; |
| 44 | break; | 56 | break; |
| 45 | } | 57 | } |
| 46 | getApp().goto(url); | 58 | getApp().goto(url); |
| 59 | + }, | ||
| 47 | 60 | ||
| 48 | - | 61 | + //-- 选择活动 -- |
| 62 | + sele_act:function (e){ | ||
| 63 | + var index=e.currentTarget.dataset.index; | ||
| 64 | + var cx_prom_group=this.data.cx_prom_group; | ||
| 65 | + for (var idx=0;idx<cx_prom_group.length;idx++){ | ||
| 66 | + if(idx!=index) cx_prom_group[idx].sele=0; | ||
| 67 | + else cx_prom_group[idx].sele=1; | ||
| 68 | + } | ||
| 69 | + this.setData({cx_prom_group}) | ||
| 49 | } | 70 | } |
| 50 | 71 | ||
| 51 | } | 72 | } |
components/promate_pop/promate_pop.wxml
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <!-- --弹起领券-- --> | 2 | <!-- --弹起领券-- --> |
| 3 | <view wx:if='{{pro_pop==1}}'> | 3 | <view wx:if='{{pro_pop==1}}'> |
| 4 | <view class="cover-layer flex-center" bindtap="close_pro_pop"></view> | 4 | <view class="cover-layer flex-center" bindtap="close_pro_pop"></view> |
| 5 | - <view class="cx-popup {{pro_pop== true ? 'up_pro' : 'down_pro'}} "> | 5 | + <view class="cx-popup {{pro_pop== true ? 'up_pro' : 'down_pro'}} {{is_cart?'cart_show':''}}" style="z-index: 3500" > |
| 6 | <view class="top-frame"> | 6 | <view class="top-frame"> |
| 7 | <view class="top t-c">促销列表</view> | 7 | <view class="top t-c">促销列表</view> |
| 8 | </view> | 8 | </view> |
| @@ -10,7 +10,6 @@ | @@ -10,7 +10,6 @@ | ||
| 10 | <view class="xc-frame"> | 10 | <view class="xc-frame"> |
| 11 | <view class="top-frame"> | 11 | <view class="top-frame"> |
| 12 | <view class="xc-coupon-frame "> | 12 | <view class="xc-coupon-frame "> |
| 13 | - | ||
| 14 | <!-- for循环显示内容 --> | 13 | <!-- for循环显示内容 --> |
| 15 | <view wx:for="{{cx_prom_group}}" class="item_pro flex ai-center"> | 14 | <view wx:for="{{cx_prom_group}}" class="item_pro flex ai-center"> |
| 16 | <view class="tab_bx fs24">{{p_fil.set_tab_title(item)}}</view> | 15 | <view class="tab_bx fs24">{{p_fil.set_tab_title(item)}}</view> |
| @@ -23,7 +22,7 @@ | @@ -23,7 +22,7 @@ | ||
| 23 | <view wx:else class="fs26">{{item.title}} | 22 | <view wx:else class="fs26">{{item.title}} |
| 24 | 消费满<text class="c-red">{{item.condition}}</text>享优惠({{item.limit}}) | 23 | 消费满<text class="c-red">{{item.condition}}</text>享优惠({{item.limit}}) |
| 25 | </view> | 24 | </view> |
| 26 | - <view wx:if="{{item.prom_type!=5}}" class="fs26">搭配价:<text class="c-red">{{item.show_price}}</text></view> | 25 | + <view wx:if="{{item.prom_type==5}}" class="fs26">搭配价:<text class="c-red">{{item.show_price}}</text></view> |
| 27 | 26 | ||
| 28 | <view wx:if="{{item.prom_type!=3}}" class="fs22" style="color: #b9b6b6"> | 27 | <view wx:if="{{item.prom_type!=3}}" class="fs22" style="color: #b9b6b6"> |
| 29 | {{item.show_time}} | 28 | {{item.show_time}} |
| @@ -31,14 +30,30 @@ | @@ -31,14 +30,30 @@ | ||
| 31 | <view wx:else class="fs22" style="max-width: 430rpx; color: #b9b6b6"> | 30 | <view wx:else class="fs22" style="max-width: 430rpx; color: #b9b6b6"> |
| 32 | <text wx:for="{{item.more}}" wx:for-item="bm" class="tick pdr20" >{{bm}}</text> | 31 | <text wx:for="{{item.more}}" wx:for-item="bm" class="tick pdr20" >{{bm}}</text> |
| 33 | </view> | 32 | </view> |
| 33 | + </view> | ||
| 34 | + | ||
| 35 | + | ||
| 36 | + <view class="r_item_pro"> | ||
| 37 | + <view style="text-align: center"> | ||
| 38 | + <!-- 如果是弹出框进行选择的时候 --> | ||
| 39 | + <block wx:if="{{type==1}}"> | ||
| 40 | + <view wx:if="{{item.sele}}" class="circle white xc-hook on"> | ||
| 41 | + <text>Γ</text> | ||
| 42 | + </view> | ||
| 43 | + <view bindtap="sele_act" data-index="{{index}}" wx:else class="circle white xc-hook"></view> | ||
| 34 | 44 | ||
| 45 | + <view style="height: 12rpx"></view> | ||
| 46 | + </block> | ||
| 47 | + <view bindtap="go_the_url" data-id="{{item.id}}" data-prom_type="{{item.prom_type}}" class="xq_btn fs30">详情</view> | ||
| 48 | + </view> | ||
| 35 | </view> | 49 | </view> |
| 36 | - <view bindtap="go_the_url" data-id="{{item.id}}" data-prom_type="{{item.prom_type}}" class="xq_btn fs30">详情</view> | 50 | + |
| 37 | </view> | 51 | </view> |
| 38 | 52 | ||
| 39 | </view> | 53 | </view> |
| 40 | </view> | 54 | </view> |
| 41 | </view> | 55 | </view> |
| 56 | + | ||
| 42 | <view class="cx-confirm pd20" bindtap="close_pro_pop"> | 57 | <view class="cx-confirm pd20" bindtap="close_pro_pop"> |
| 43 | <view wx:if="{{type==0}}" class="confirm t-c">我知道了</view> | 58 | <view wx:if="{{type==0}}" class="confirm t-c">我知道了</view> |
| 44 | <view wx:if="{{type==1}}" class="confirm t-c">确定</view> | 59 | <view wx:if="{{type==1}}" class="confirm t-c">确定</view> |
components/promate_pop/promate_pop.wxss
| @@ -8,6 +8,9 @@ | @@ -8,6 +8,9 @@ | ||
| 8 | position: fixed; | 8 | position: fixed; |
| 9 | bottom: 0; | 9 | bottom: 0; |
| 10 | } | 10 | } |
| 11 | +.cx-popup.cart_show{ | ||
| 12 | + bottom:100rpx | ||
| 13 | +} | ||
| 11 | 14 | ||
| 12 | .cx-popup .top { | 15 | .cx-popup .top { |
| 13 | font-size: 32rpx; | 16 | font-size: 32rpx; |
| @@ -201,10 +204,17 @@ | @@ -201,10 +204,17 @@ | ||
| 201 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABCUExURUdwTPInDPInDPgoDfMnDPYqEvInDPInDPInDP87NPUoDv8vEvMoDPInDPIoDPMnDvInDPInDPInDPIoDPQoDfInDEON4KMAAAAVdFJOUwD45yawG4zz3gQ0DmLOfECQZpPlS54kMQ4AAAC0SURBVBjTbZFREoMgDERDS0xQQNHu/a/alEGtaIYfHrBhs0S1pujVifo40VkhC+BUHSDzQTlBhjHY8bjogXmDZ+orJKwXwMUeUoa/0PeGbH8Q4Y5CJopYOjosiOQxdpRGk1UXOkrBKdkimtN8UrKrJBVXdzsllSYSjR/0J9JaGn81WluWtonYKQ0op51P3M2L2bmZN9n8MKoVqTph/RsseyjfYxAkfgot/82CpuJVLOLSIv4Cd5AJ37BgpFwAAAAASUVORK5CYII=) no-repeat; | 204 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAMAAADzapwJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABCUExURUdwTPInDPInDPgoDfMnDPYqEvInDPInDPInDP87NPUoDv8vEvMoDPInDPIoDPMnDvInDPInDPInDPIoDPQoDfInDEON4KMAAAAVdFJOUwD45yawG4zz3gQ0DmLOfECQZpPlS54kMQ4AAAC0SURBVBjTbZFREoMgDERDS0xQQNHu/a/alEGtaIYfHrBhs0S1pujVifo40VkhC+BUHSDzQTlBhjHY8bjogXmDZ+orJKwXwMUeUoa/0PeGbH8Q4Y5CJopYOjosiOQxdpRGk1UXOkrBKdkimtN8UrKrJBVXdzsllSYSjR/0J9JaGn81WluWtonYKQ0op51P3M2L2bmZN9n8MKoVqTph/RsseyjfYxAkfgot/82CpuJVLOLSIv4Cd5AJ37BgpFwAAAAASUVORK5CYII=) no-repeat; |
| 202 | background-size: 22rpx auto; | 205 | background-size: 22rpx auto; |
| 203 | } | 206 | } |
| 204 | -.xq_btn{ | 207 | + |
| 208 | +.r_item_pro{ | ||
| 205 | position: absolute; | 209 | position: absolute; |
| 206 | right: 18rpx; | 210 | right: 18rpx; |
| 207 | - top:52rpx; | 211 | + height: 100%; |
| 212 | + display: flex; | ||
| 213 | + align-items: center; | ||
| 214 | + justify-content: center; | ||
| 215 | +} | ||
| 216 | + | ||
| 217 | +.xq_btn{ | ||
| 208 | width: 100rpx; | 218 | width: 100rpx; |
| 209 | height: 60rpx; | 219 | height: 60rpx; |
| 210 | background-color: #e03033; | 220 | background-color: #e03033; |
| @@ -220,4 +230,21 @@ | @@ -220,4 +230,21 @@ | ||
| 220 | } | 230 | } |
| 221 | 231 | ||
| 222 | 232 | ||
| 233 | +/*选择的圆圈*/ | ||
| 234 | +.xc-hook { | ||
| 235 | + width: 30rpx; | ||
| 236 | + height: 30rpx; | ||
| 237 | + line-height: 30rpx; | ||
| 238 | + text-align: center; | ||
| 239 | + border: 1rpx solid #999; | ||
| 240 | + display: inline-block; | ||
| 241 | +} | ||
| 242 | +/*选中的时候*/ | ||
| 243 | +.xc-hook.on { | ||
| 244 | + transform: rotate(-135deg); | ||
| 245 | + background-color: #d60021; | ||
| 246 | +} | ||
| 247 | + | ||
| 248 | + | ||
| 249 | + | ||
| 223 | @import '../../app.wxss'; | 250 | @import '../../app.wxss'; |
pages/cart/cart/cart.js
| @@ -199,7 +199,13 @@ Page({ | @@ -199,7 +199,13 @@ Page({ | ||
| 199 | //判断组合购活动是不是满足 | 199 | //判断组合购活动是不是满足 |
| 200 | if(is_zh_ok){ | 200 | if(is_zh_ok){ |
| 201 | if(!item1.more_cx) item1.more_cx=[]; | 201 | if(!item1.more_cx) item1.more_cx=[]; |
| 202 | - item1.more_cx.push({prom_type:7,prom_id:zh_id,gdlist:gdlist}) | 202 | + var show_time=ut.formatTime(zh_pro0.start_time)+"至"+ ut.formatTime(zh_pro0.end_time); |
| 203 | + item1.more_cx.push({ | ||
| 204 | + prom_type:7,prom_id:zh_id,gdlist:gdlist, | ||
| 205 | + title: zh_pro0.name, | ||
| 206 | + show_time: show_time, | ||
| 207 | + id:zh_id | ||
| 208 | + }) | ||
| 203 | } | 209 | } |
| 204 | } | 210 | } |
| 205 | } | 211 | } |
| @@ -214,7 +220,16 @@ Page({ | @@ -214,7 +220,16 @@ Page({ | ||
| 214 | //-- 如果是搭配购的时候 -- | 220 | //-- 如果是搭配购的时候 -- |
| 215 | if (r_data.collocationList) { | 221 | if (r_data.collocationList) { |
| 216 | if(!item1.more_cx) item1.more_cx=[]; | 222 | if(!item1.more_cx) item1.more_cx=[]; |
| 217 | - item1.more_cx.push({prom_type:5,prom_id: r_data.collocationPromList.id}); | 223 | + |
| 224 | + var show_price= '¥'+r_data.collocationPromList.max+'-'+ r_data.collocationPromList.min; | ||
| 225 | + var show_time=ut.formatTime(r_data.collocationPromList.start_time)+"至"+ ut.formatTime(r_data.collocationPromList.end_time); | ||
| 226 | + | ||
| 227 | + item1.more_cx.push({ | ||
| 228 | + prom_type:5,prom_id: r_data.collocationPromList.id, | ||
| 229 | + title: r_data.collocationPromList.title, | ||
| 230 | + show_time: show_time, | ||
| 231 | + id:r_data.collocationPromList.id, | ||
| 232 | + }); | ||
| 218 | } | 233 | } |
| 219 | //-- 如果是阶梯促销的时候 -- | 234 | //-- 如果是阶梯促销的时候 -- |
| 220 | if (r_data.ladderLists) { | 235 | if (r_data.ladderLists) { |
| @@ -224,7 +239,27 @@ Page({ | @@ -224,7 +239,27 @@ Page({ | ||
| 224 | if (res.data.code == 0 && res.data.data) { | 239 | if (res.data.code == 0 && res.data.data) { |
| 225 | th.data.ladder_map[act_id] = res.data.data; | 240 | th.data.ladder_map[act_id] = res.data.data; |
| 226 | if(!item1.more_cx) item1.more_cx=[]; | 241 | if(!item1.more_cx) item1.more_cx=[]; |
| 227 | - item1.more_cx.push({prom_type:10,prom_id: act_id}); | 242 | + |
| 243 | + var prom_content = ""; | ||
| 244 | + | ||
| 245 | + for (let jj in r_data.ladderLists) { | ||
| 246 | + if (r_data.ladderLists[jj].discount == 10) { | ||
| 247 | + prom_content += "第" + (parseInt(jj) + 1) + "件原价,"; | ||
| 248 | + } else { | ||
| 249 | + prom_content += "第" + (parseInt(jj) + 1) + "件" + r_data.ladderLists[jj].discount + "折,"; | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + prom_content = ut.sub_last(prom_content); | ||
| 253 | + | ||
| 254 | + var s_time=res.data.data.start_time; | ||
| 255 | + var e_time=res.data.data.end_time; | ||
| 256 | + | ||
| 257 | + item1.more_cx.push({ | ||
| 258 | + prom_type:10,prom_id: act_id, | ||
| 259 | + title: prom_content, | ||
| 260 | + show_time: ut.formatTime(s_time) + "至" + ut.formatTime(e_time), | ||
| 261 | + id:act_id | ||
| 262 | + }); | ||
| 228 | } | 263 | } |
| 229 | }) | 264 | }) |
| 230 | 265 | ||
| @@ -259,7 +294,33 @@ Page({ | @@ -259,7 +294,33 @@ Page({ | ||
| 259 | //--- 这个地方是在计算优惠促销的限购 --- | 294 | //--- 这个地方是在计算优惠促销的限购 --- |
| 260 | if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){ | 295 | if(!fir_act.limit_num || th.data.user_pre_buynum<fir_act.limit_num){ |
| 261 | 296 | ||
| 262 | - var push_item={prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act}; | 297 | + |
| 298 | + var more_arr = []; | ||
| 299 | + //减价 | ||
| 300 | + if (fir_act.money > 0) more_arr.push('减价'+fir_act.money+'元'); | ||
| 301 | + if (fir_act.sale > 0) more_arr.push('打'+fir_act.sale+'折'); | ||
| 302 | + if (fir_act.past ==1) more_arr.push('包邮'); | ||
| 303 | + if (fir_act.intValue > 0) more_arr.push('送'+fir_act.intValue+'积分'); | ||
| 304 | + if (fir_act.couponId > 0) more_arr.push('送'+fir_act.couponMoney+'元优惠券'); | ||
| 305 | + if (fir_act.gift_id) { | ||
| 306 | + var is_more_gf=fir_act.gift_id.split(',') | ||
| 307 | + if(is_more_gf.length>1){ | ||
| 308 | + more_arr.push('送赠品'); | ||
| 309 | + }else{ | ||
| 310 | + more_arr.push('送'+fir_act.goods_name+' x'+fir_act.zp_num); | ||
| 311 | + } | ||
| 312 | + } | ||
| 313 | + if (fir_act.lb_id) more_arr.push('送'+fir_act.lbtitle); | ||
| 314 | + if (fir_act.zxlb_id) more_arr.push('送'+fir_act.zxlbtitle); | ||
| 315 | + | ||
| 316 | + var push_item={ | ||
| 317 | + prom_type:3,prom_id: fir_act.prom_id,fir_act:fir_act, | ||
| 318 | + condition: fir_act.condition + (fir_act.prom_type == 1 ? '件' : '元'), | ||
| 319 | + limit: '每人' + (fir_act.limit_num ? '限参与' + fir_act.limit_num + '次' : '参与不限次'), | ||
| 320 | + more: more_arr, | ||
| 321 | + id:fir_act.prom_id | ||
| 322 | + }; | ||
| 323 | + | ||
| 263 | //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- | 324 | //--- 如果是一件商品的时候,那么就要判断这个商品。同时商品的购买数量有没有满足 --- |
| 264 | if (is_state == 1) { | 325 | if (is_state == 1) { |
| 265 | //-- 按件进行计算 -- | 326 | //-- 按件进行计算 -- |
| @@ -311,7 +372,6 @@ Page({ | @@ -311,7 +372,6 @@ Page({ | ||
| 311 | this.getTabBar().setData({ | 372 | this.getTabBar().setData({ |
| 312 | active: index //数字是当前页面在tabbar的索引 | 373 | active: index //数字是当前页面在tabbar的索引 |
| 313 | }) | 374 | }) |
| 314 | - | ||
| 315 | getApp().requestCardNum(this); | 375 | getApp().requestCardNum(this); |
| 316 | } | 376 | } |
| 317 | 377 | ||
| @@ -2133,10 +2193,9 @@ Page({ | @@ -2133,10 +2193,9 @@ Page({ | ||
| 2133 | } | 2193 | } |
| 2134 | } | 2194 | } |
| 2135 | }); | 2195 | }); |
| 2136 | - | ||
| 2137 | - | ||
| 2138 | - | ||
| 2139 | } | 2196 | } |
| 2197 | + //-- 切换活动的按钮要把他返回 -- | ||
| 2198 | + this.data.change_act=0; | ||
| 2140 | } | 2199 | } |
| 2141 | 2200 | ||
| 2142 | //-- 服务卡 -- | 2201 | //-- 服务卡 -- |
| @@ -3223,7 +3282,9 @@ Page({ | @@ -3223,7 +3282,9 @@ Page({ | ||
| 3223 | var data = { | 3282 | var data = { |
| 3224 | id: g_arr[i].id, | 3283 | id: g_arr[i].id, |
| 3225 | selected: 1, | 3284 | selected: 1, |
| 3226 | - store_id: oo.stoid | 3285 | + store_id: oo.stoid, |
| 3286 | + prom_type:g_arr[i].prom_type, | ||
| 3287 | + prom_id:g_arr[i].prom_id, | ||
| 3227 | }; | 3288 | }; |
| 3228 | let gitem = checkArr7.find(item => item.goods_id == g_arr[i].goods_id) | 3289 | let gitem = checkArr7.find(item => item.goods_id == g_arr[i].goods_id) |
| 3229 | if (gitem) { | 3290 | if (gitem) { |
| @@ -3253,6 +3314,8 @@ Page({ | @@ -3253,6 +3314,8 @@ Page({ | ||
| 3253 | wx.hideLoading(); | 3314 | wx.hideLoading(); |
| 3254 | return false; | 3315 | return false; |
| 3255 | } | 3316 | } |
| 3317 | + | ||
| 3318 | + | ||
| 3256 | wx.hideLoading(); | 3319 | wx.hideLoading(); |
| 3257 | wx.navigateTo({ | 3320 | wx.navigateTo({ |
| 3258 | url: "/packageE/pages/cart/cart2/cart2" | 3321 | url: "/packageE/pages/cart/cart2/cart2" |
| @@ -3413,7 +3476,9 @@ Page({ | @@ -3413,7 +3476,9 @@ Page({ | ||
| 3413 | var data = { | 3476 | var data = { |
| 3414 | id: g_arr[i].id, | 3477 | id: g_arr[i].id, |
| 3415 | selected: 1, | 3478 | selected: 1, |
| 3416 | - store_id: oo.stoid | 3479 | + store_id: oo.stoid, |
| 3480 | + prom_type:g_arr[i].prom_type, | ||
| 3481 | + prom_id:g_arr[i].prom_id, | ||
| 3417 | }; | 3482 | }; |
| 3418 | 3483 | ||
| 3419 | //-- 如果有线下取价的时候 -- | 3484 | //-- 如果有线下取价的时候 -- |
| @@ -4339,11 +4404,9 @@ Page({ | @@ -4339,11 +4404,9 @@ Page({ | ||
| 4339 | //-- 判读一下促销分组的问题 -- | 4404 | //-- 判读一下促销分组的问题 -- |
| 4340 | async cart_cx_group(goods,car_item,func){ | 4405 | async cart_cx_group(goods,car_item,func){ |
| 4341 | 4406 | ||
| 4342 | - if(car_item.change_act){ | ||
| 4343 | - | ||
| 4344 | - car_item.change_act=0; | 4407 | + //更改活动的时候,就不能再重新计算活动,只有再加减数量和选择商品的时候,就要重新计算活动 |
| 4408 | + if(this.data.change_act){ | ||
| 4345 | var show_can_cx=car_item.show_can_cx; | 4409 | var show_can_cx=car_item.show_can_cx; |
| 4346 | - | ||
| 4347 | for(var k in show_can_cx){ | 4410 | for(var k in show_can_cx){ |
| 4348 | var k_item=show_can_cx[k]; | 4411 | var k_item=show_can_cx[k]; |
| 4349 | var ck_prom_type=null; | 4412 | var ck_prom_type=null; |
| @@ -4394,7 +4457,6 @@ Page({ | @@ -4394,7 +4457,6 @@ Page({ | ||
| 4394 | } | 4457 | } |
| 4395 | 4458 | ||
| 4396 | } | 4459 | } |
| 4397 | - | ||
| 4398 | func(show_can_cx); | 4460 | func(show_can_cx); |
| 4399 | } | 4461 | } |
| 4400 | 4462 | ||
| @@ -4479,6 +4541,7 @@ Page({ | @@ -4479,6 +4541,7 @@ Page({ | ||
| 4479 | can_calc_cx.push(item_act_map) | 4541 | can_calc_cx.push(item_act_map) |
| 4480 | } | 4542 | } |
| 4481 | break | 4543 | break |
| 4544 | + | ||
| 4482 | case 7: | 4545 | case 7: |
| 4483 | //-- 活动列表 -- | 4546 | //-- 活动列表 -- |
| 4484 | var zhact_gdlist=item_act_map.act.gdlist; | 4547 | var zhact_gdlist=item_act_map.act.gdlist; |
| @@ -4529,6 +4592,7 @@ Page({ | @@ -4529,6 +4592,7 @@ Page({ | ||
| 4529 | //-- 同时相同商品数量的活动,还要看取那一个来进行计算金额。 默认的时候是按照后台的顺序。-- | 4592 | //-- 同时相同商品数量的活动,还要看取那一个来进行计算金额。 默认的时候是按照后台的顺序。-- |
| 4530 | //-- 有选择的时候,就按照切换选择了什么就按照什么来计算 -- | 4593 | //-- 有选择的时候,就按照切换选择了什么就按照什么来计算 -- |
| 4531 | var show_can_cx={}; | 4594 | var show_can_cx={}; |
| 4595 | + | ||
| 4532 | if(can_calc_cx.length){ | 4596 | if(can_calc_cx.length){ |
| 4533 | for(var p=0;p<can_calc_cx.length;p++){ | 4597 | for(var p=0;p<can_calc_cx.length;p++){ |
| 4534 | var ch_map=[]; | 4598 | var ch_map=[]; |
| @@ -4543,6 +4607,9 @@ Page({ | @@ -4543,6 +4607,9 @@ Page({ | ||
| 4543 | fd.act_arr.push(can_calc_cx[p]) | 4607 | fd.act_arr.push(can_calc_cx[p]) |
| 4544 | }else{ | 4608 | }else{ |
| 4545 | var e={ch_map:ch_map,act_arr:[]}; | 4609 | var e={ch_map:ch_map,act_arr:[]}; |
| 4610 | + if(ch_map.length>1){ | ||
| 4611 | + e.is_duo_gd=1; | ||
| 4612 | + } | ||
| 4546 | e.act_arr.push(can_calc_cx[p]); | 4613 | e.act_arr.push(can_calc_cx[p]); |
| 4547 | show_can_cx[ch_map.join()]=e; | 4614 | show_can_cx[ch_map.join()]=e; |
| 4548 | } | 4615 | } |
| @@ -4585,7 +4652,6 @@ Page({ | @@ -4585,7 +4652,6 @@ Page({ | ||
| 4585 | } | 4652 | } |
| 4586 | //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 -- | 4653 | //-- 此时已经确定了商品的活动是什么类型的,可以确定购物车中商品的具体活动进行金额的计算 -- |
| 4587 | if(!ck_prom_type) ck_prom_type=k_item.act_arr[0]; | 4654 | if(!ck_prom_type) ck_prom_type=k_item.act_arr[0]; |
| 4588 | - | ||
| 4589 | //-- 此时要把购物车中的商品确定活动 -- | 4655 | //-- 此时要把购物车中的商品确定活动 -- |
| 4590 | for (var b=0; b<ck_prom_type.goods.length;b++){ | 4656 | for (var b=0; b<ck_prom_type.goods.length;b++){ |
| 4591 | //-- 开始查找 -- | 4657 | //-- 开始查找 -- |
| @@ -4597,7 +4663,6 @@ Page({ | @@ -4597,7 +4663,6 @@ Page({ | ||
| 4597 | goods[fg].prom_id=ck_prom_type.prom_id; | 4663 | goods[fg].prom_id=ck_prom_type.prom_id; |
| 4598 | } | 4664 | } |
| 4599 | } | 4665 | } |
| 4600 | - | ||
| 4601 | } | 4666 | } |
| 4602 | 4667 | ||
| 4603 | //-- 显示到前端,并切换 -- | 4668 | //-- 显示到前端,并切换 -- |
| @@ -4635,6 +4700,50 @@ Page({ | @@ -4635,6 +4700,50 @@ Page({ | ||
| 4635 | if(idx>-1) num++; | 4700 | if(idx>-1) num++; |
| 4636 | }) | 4701 | }) |
| 4637 | return num; | 4702 | return num; |
| 4703 | + }, | ||
| 4704 | + | ||
| 4705 | + //-- 开始显示活动的弹出 -- | ||
| 4706 | + switch_cx_group:function (e){ | ||
| 4707 | + var idx=e.currentTarget.dataset.index; | ||
| 4708 | + var gd_key=e.currentTarget.dataset.gd_key; | ||
| 4709 | + this.data.sele_cx_group_cidx=idx; | ||
| 4710 | + this.data.cx_group_gd_key=gd_key; | ||
| 4711 | + //-- 获取到-- | ||
| 4712 | + var cx_prom_group=this.data.requestData[idx].show_can_cx[gd_key].act_arr; | ||
| 4713 | + | ||
| 4714 | + var cx_arr=[]; | ||
| 4715 | + var find_sele=0; | ||
| 4716 | + for (var h=0;h<cx_prom_group.length;h++){ | ||
| 4717 | + //-- 看有没有选中的活动 -- | ||
| 4718 | + if(cx_prom_group[h].sele){ | ||
| 4719 | + find_sele=1; | ||
| 4720 | + } | ||
| 4721 | + cx_arr.push(cx_prom_group[h].act); | ||
| 4722 | + } | ||
| 4723 | + //-- 如果没有,就默认第一个为选中 -- | ||
| 4724 | + //-- if(!find_sele) cx_arr[0].sele=1; -- | ||
| 4725 | + var cp_arr=JSON.parse(JSON.stringify(cx_arr)); | ||
| 4726 | + var pro_pop = this.selectComponent("#pro_pop"); //组件的id | ||
| 4727 | + pro_pop.set_init(1,cx_arr,1); | ||
| 4728 | + }, | ||
| 4729 | + | ||
| 4730 | + //--- 选择回来时候的选择 --- | ||
| 4731 | + sure_cx_group:function(e){ | ||
| 4732 | + var sele_idx=e.detail.sele_idx; | ||
| 4733 | + var idx=this.data.sele_cx_group_cidx; | ||
| 4734 | + var gd_key= this.data.cx_group_gd_key; | ||
| 4735 | + //-- 获取到-- | ||
| 4736 | + var cx_prom_group=this.data.requestData[idx].show_can_cx[gd_key].act_arr; | ||
| 4737 | + | ||
| 4738 | + for(var dx=0;dx<cx_prom_group.length;dx++){ | ||
| 4739 | + if(dx!=sele_idx) cx_prom_group[dx].sele=0; | ||
| 4740 | + else cx_prom_group[dx].sele=1; | ||
| 4741 | + } | ||
| 4742 | + | ||
| 4743 | + this.data.change_act=1; | ||
| 4744 | + this.doCheckAll(); | ||
| 4745 | + | ||
| 4638 | } | 4746 | } |
| 4639 | 4747 | ||
| 4748 | + | ||
| 4640 | }); | 4749 | }); |
| 4641 | \ No newline at end of file | 4750 | \ No newline at end of file |
pages/cart/cart/cart.json
| @@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
| 2 | "navigationBarTitleText": "购物车", | 2 | "navigationBarTitleText": "购物车", |
| 3 | "usingComponents": { | 3 | "usingComponents": { |
| 4 | "warn": "/components/long_warn/long_warn", | 4 | "warn": "/components/long_warn/long_warn", |
| 5 | - "goods_recommend":"/components/goods_list/goods_list" | 5 | + "goods_recommend":"/components/goods_list/goods_list", |
| 6 | + "pro_pop": "/components/promate_pop/promate_pop" | ||
| 6 | } | 7 | } |
| 7 | } | 8 | } |
| 8 | \ No newline at end of file | 9 | \ No newline at end of file |
pages/cart/cart/cart.wxml
| 1 | +<!-- 促销弹出框 --> | ||
| 2 | +<pro_pop id="pro_pop" bind:sure_cx_group="sure_cx_group"></pro_pop> | ||
| 3 | + | ||
| 1 | <wxs module="g_filter" src="g_filter.wxs"></wxs> | 4 | <wxs module="g_filter" src="g_filter.wxs"></wxs> |
| 2 | 5 | ||
| 3 | <block wx:if="{{ad_data}}"> | 6 | <block wx:if="{{ad_data}}"> |
| @@ -38,7 +41,7 @@ | @@ -38,7 +41,7 @@ | ||
| 38 | 41 | ||
| 39 | <!-- 商品的列表 --> | 42 | <!-- 商品的列表 --> |
| 40 | <block wx:if="{{requestData && requestData.length>0}}"> | 43 | <block wx:if="{{requestData && requestData.length>0}}"> |
| 41 | - <block wx:for="{{requestData}}" wx:key="{{index}}" wx:for-item="item" wx:for-index="pidx"> | 44 | + <block wx:for="{{requestData}}" wx:key="{{pidx}}" wx:for-item="item" wx:for-index="pidx"> |
| 42 | <!-- 门店底下的商品 --> | 45 | <!-- 门店底下的商品 --> |
| 43 | <view class="store"> | 46 | <view class="store"> |
| 44 | <view class="shmd_m"> | 47 | <view class="shmd_m"> |
| @@ -54,7 +57,7 @@ | @@ -54,7 +57,7 @@ | ||
| 54 | 57 | ||
| 55 | </view> | 58 | </view> |
| 56 | 59 | ||
| 57 | - <block wx:for="{{item.goods}}" wx:for-item="items" wx:for-index="idx" wx:key="{{index}}"> | 60 | + <block wx:for="{{item.goods}}" wx:for-item="items" wx:for-index="idx" wx:key="{{idx}}"> |
| 58 | <view class="order-item" data-item="{{idx}}"> | 61 | <view class="order-item" data-item="{{idx}}"> |
| 59 | <block wx:if="{{!items.is_gift}}"> | 62 | <block wx:if="{{!items.is_gift}}"> |
| 60 | <view bindtap="check_th_item" class="order-raido flex-vertical " data-check="{{items.selected}}" data-item="{{idx}}" data-pitems="{{pidx}}"> | 63 | <view bindtap="check_th_item" class="order-raido flex-vertical " data-check="{{items.selected}}" data-item="{{idx}}" data-pitems="{{pidx}}"> |
| @@ -129,7 +132,10 @@ | @@ -129,7 +132,10 @@ | ||
| 129 | <!-- 新增促销多活动的排版 --> | 132 | <!-- 新增促销多活动的排版 --> |
| 130 | <view class="bdt16" | 133 | <view class="bdt16" |
| 131 | wx:if="{{g_filter.is_more_act(items,item.show_can_cx) && item.show_can_cx[items.goods_id] && item.show_can_cx[items.goods_id].act_arr.length>1}}"> | 134 | wx:if="{{g_filter.is_more_act(items,item.show_can_cx) && item.show_can_cx[items.goods_id] && item.show_can_cx[items.goods_id].act_arr.length>1}}"> |
| 132 | - <view data-coupon="1" bindtap="switch_cx_group" class="cx-frame flex" style="position: relative"> | 135 | + <view bindtap="switch_cx_group" |
| 136 | + data-index="{{pidx}}" | ||
| 137 | + data-gd_key="{{items.goods_id}}" | ||
| 138 | + class="cx-frame flex" style="position: relative"> | ||
| 133 | <view class="cx-sizs fs30">促销</view> | 139 | <view class="cx-sizs fs30">促销</view> |
| 134 | <view class="flex ai_c f1 pdh20"> | 140 | <view class="flex ai_c f1 pdh20"> |
| 135 | <view class="xc-coupon-fram" wx:for="{{item.show_can_cx[items.goods_id].act_arr}}" > | 141 | <view class="xc-coupon-fram" wx:for="{{item.show_can_cx[items.goods_id].act_arr}}" > |
| @@ -148,11 +154,37 @@ | @@ -148,11 +154,37 @@ | ||
| 148 | </block > | 154 | </block > |
| 149 | 155 | ||
| 150 | 156 | ||
| 157 | + <!--此时是多个商品参与活动的切换 验证活动是不是多个,要不要显示切换 --> | ||
| 158 | + <!-- 新增促销多活动的排版 --> | ||
| 159 | + <block wx:if="{{item.show_can_cx}}"> | ||
| 160 | + <block wx:for="{{item.show_can_cx}}" wx:for-item="pitem"> | ||
| 161 | + <view class="bdt16" wx:if="{{pitem.is_duo_gd}}" > | ||
| 162 | + <view bindtap="switch_cx_group" | ||
| 163 | + data-index="{{pidx}}" | ||
| 164 | + data-gd_key="{{index}}" | ||
| 165 | + class="cx-frame flex" style="position: relative"> | ||
| 166 | + <view class="cx-sizs fs30">促销</view> | ||
| 167 | + <view class="flex ai_c f1 pdh20"> | ||
| 168 | + <view class="xc-coupon-fram" wx:for="{{item.show_can_cx[items.goods_id].act_arr}}" > | ||
| 169 | + <view wx:if="{{item.prom_type==3}}" class="xc-coupon t-c four-level-word">优惠促销</view> | ||
| 170 | + <view wx:if="{{item.prom_type==5}}" class="xc-coupon t-c four-level-word">搭配促销</view> | ||
| 171 | + <view wx:if="{{item.prom_type==7}}" class="xc-coupon t-c four-level-word">组合购</view> | ||
| 172 | + <view wx:if="{{item.prom_type==10}}" class="xc-coupon t-c four-level-word">阶梯促销</view> | ||
| 173 | + </view> | ||
| 174 | + </view> | ||
| 175 | + <view class="cx-obtain-coupon wsize"> | ||
| 176 | + <text class="bg_jj"></text> | ||
| 177 | + </view> | ||
| 178 | + </view> | ||
| 179 | + </view> | ||
| 180 | + </block> | ||
| 181 | + </block> | ||
| 182 | + | ||
| 151 | </view> | 183 | </view> |
| 152 | - <!--- 去凑单 --> | ||
| 153 | - <view style="margin-top: 20rpx; padding: 0 30rpx"> | 184 | + <!--- 去凑单 --> |
| 154 | <block wx:if="{{item.make_up_arr}}"> | 185 | <block wx:if="{{item.make_up_arr}}"> |
| 155 | - <view class="flex jc_sb fs28" wx:for="{{item.make_up_arr}}" style="margin-bottom: 20rpx" > | 186 | + <view style="margin-top: 20rpx; padding: 0 30rpx"> |
| 187 | + <view class="flex jc_sb fs28" wx:for="{{item.make_up_arr}}" style="margin-bottom: 20rpx" > | ||
| 156 | <view class="ellipsis-1" style="width: 80%">再买<text class="co-red">{{item.diff}}<text wx:if="{{item.diff_type==0}}">元</text> | 188 | <view class="ellipsis-1" style="width: 80%">再买<text class="co-red">{{item.diff}}<text wx:if="{{item.diff_type==0}}">元</text> |
| 157 | <text wx:if="{{item.diff_type==1}}">件</text> | 189 | <text wx:if="{{item.diff_type==1}}">件</text> |
| 158 | </text>, | 190 | </text>, |
| @@ -168,8 +200,8 @@ | @@ -168,8 +200,8 @@ | ||
| 168 | </view> | 200 | </view> |
| 169 | <view class="co-red" data-prom_id="{{item.prom_id}}" bindtap="go_cou_dang">去凑单></view> | 201 | <view class="co-red" data-prom_id="{{item.prom_id}}" bindtap="go_cou_dang">去凑单></view> |
| 170 | </view> | 202 | </view> |
| 203 | + </view> | ||
| 171 | </block> | 204 | </block> |
| 172 | - </view> | ||
| 173 | <!-- 还差多少件立即享受组合购 --> | 205 | <!-- 还差多少件立即享受组合购 --> |
| 174 | <block wx:if="{{item.need_list && item.need_list.length>0 && !is_edit}}"> | 206 | <block wx:if="{{item.need_list && item.need_list.length>0 && !is_edit}}"> |
| 175 | <view class="fs28 pdr20 pdl20 pdb20 c-red2 flex jc_sb" wx:for="{{item.need_list}}"> | 207 | <view class="fs28 pdr20 pdl20 pdb20 c-red2 flex jc_sb" wx:for="{{item.need_list}}"> |