From 36b9985b3624675af01a785b0996cbac1dd54105 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Sun, 25 Jun 2023 10:09:47 +0800 Subject: [PATCH] 优惠促销送赠品的优化 --- packageE/pages/cart/cart2/cart2.js | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ pages/cart/cart/cart.js | 4 ++-- 2 files changed, 107 insertions(+), 14 deletions(-) diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index e1935d5..bbb72c0 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -798,8 +798,8 @@ Page({ //-- 剔除赠品的数据,等到确定活动是优惠促销的时候,在显示赠品, 赠品直接删除 -- var new_arr=[]; for (var ir = 0; ir < carr.length; ir++) { - if(carr[ir].is_gift && ) { - var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + if(carr[ir].is_gift && carr[ir].id) { + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + carr[ir].id; getApp().request.delete(url, { success: function (t) {} }); @@ -810,6 +810,22 @@ Page({ } carr=new_arr; + //-- map cy_cx属性要删除 -- + var map=this.data.prom_goods_map; + if(map){ + for (var ky in map) { + if(map[ky]){ + var ob=map[ky]; + for (var ii in ob) { + var item_map = ob[ii]; + if (item_map.hasOwnProperty('cy_cx')) { + delete item_map.cy_cx; + } + } + } + } + } + } //按门店分类的数组 var arr = new Array(); @@ -913,11 +929,14 @@ Page({ for (var j = 0; j < arr.length; j++) { if (arr[j].pickup_id == pcid) { if (item.is_gift != 1) { - //确定配送方式 - if (arr[j].distr_t == 0) { - arr[j].distr_t = car_item.distr_type; - } + //确定配送方式 + if (arr[j].distr_t == 0) { + arr[j].distr_t = car_item.distr_type; + } + }else{ + item.distr_type=0; //赠品不控制物流的方式 } + var e_t = 0, dis_t = 0;//物流方式,配送方式 if (item.distr_type == 0) { dis_t = sto.distr_type; @@ -2006,6 +2025,81 @@ Page({ }); }, + + //寻找活动在列表中的最后一个 + find_pro_last(ord_goods,prom_type,prom_id){ + if(!ord_goods || ord_goods.length==0) return -1; + var len=ord_goods.length; + for(var i=len-1;i>-1;i--){ + var e=ord_goods[i]; + if(e.prom_type==prom_type && e.prom_id==prom_id && e.is_gift!=1){ + return i; + } + } + return -1; + }, + + //寻找活动在列表中的最后一个 + is_has_gift(ord_goods,prom_id){ + if(!ord_goods || ord_goods.length==0) return false; + var len=ord_goods.length; + for(var i=0;i-1 && !is_has_gift){ + + var newd = { + goods_id: get_data.goods_id, + goods_num: get_data.bs * get_data.zp_num, //是赠品的翻倍 + pick_id: pickid, + user_id: app.globalData.user_id, + store_id: os.stoid, + goods_price: 0, + member_goods_price: 0, + goods_name: get_data.goods_name, + goods_sn: get_data.goodsinfo.goods_sn, + sku: get_data.goodsinfo.sku, + is_gift: 1, + prom_id: item_map.prom_id, + prom_type: 3, + selected: 1, + gift_id: get_data.gift_id, + original_img: th.data.imgUrl + get_data.goodsinfo.original_img + }; + var fd_gd=ord_goods[pos] + + newd.guide_id=fd_gd.guide_id; + newd.guide_type=fd_gd.guide_type; + newd.distr_type=fd_gd.distr_type; + + ord_goods.splice(1,0,newd); + + + } + + }, + calc_per: async function (c_arr) { var send_gf = {}; @@ -2032,6 +2126,8 @@ Page({ var ob = th.data.prom_goods_map[pickid]; for (var ii in ob) { var item_map = ob[ii]; + var b=1; + //if (item_map.bs == undefined || item_map.bs == null) { if (!item_map.hasOwnProperty('cy_cx')) { //等待,获取一下优惠活动的信息 @@ -2076,6 +2172,9 @@ Page({ item_map.uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; item_map.whsle_id = get_data.goodsinfo.whsle_id; + //-- 购物车添加赠品 -- + th.cart_add_gift(item_map,pickid,i,ord_goods,get_data); + } item_map.s_libao = get_data.libao; item_map.s_lb_num = get_data.lb_num; @@ -2114,12 +2213,6 @@ Page({ duo_zp_num_arr[item_map.prom_id] = t_zp_num; } } - //--- 不是多个赠品赠送的时候, --- - else{ - - } - - } else item_map.cy_cx = 0; }) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 7f2c4f5..f2ed3e0 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -666,12 +666,12 @@ Page({ }) //只有一种活动,但是又是秒杀之类是互动,就要失效。不能是普通购买 - if (prom.length == 1 && [1, 2, 4, 6, 8, 9].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) { + if (prom && prom.length == 1 && [1, 2, 4, 6, 8, 9].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) { th.disInvalid(item); continue; } //只有秒杀和积分购的时候,不能是普通购买 - if (prom.length == 2 && [1, 4].indexOf(prom.prom_type) > -1 && [1, 4].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) { + if (prom && prom.length == 2 && [1, 4].indexOf(prom.prom_type) > -1 && [1, 4].indexOf(prom.prom_type) > -1 && !prom.is_integral_normal && !prom.is_pd_normal) { th.disInvalid(item); continue; } -- libgit2 0.21.4