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}}"> |