diff --git a/app.js b/app.js index bafc13b..0392cb7 100644 --- a/app.js +++ b/app.js @@ -650,6 +650,9 @@ App({ }) } else { + if(th.globalData.pk_store.is_no_dis){ + th.globalData.pk_store.is_no_dis=0; + } func(th.globalData.pk_store); } }) diff --git a/packageC/pages/luckyGo/luckyGo_goodsInfo/buy_pt.wxml b/packageC/pages/luckyGo/luckyGo_goodsInfo/buy_pt.wxml index 26fbc72..23c34f5 100644 --- a/packageC/pages/luckyGo/luckyGo_goodsInfo/buy_pt.wxml +++ b/packageC/pages/luckyGo/luckyGo_goodsInfo/buy_pt.wxml @@ -72,6 +72,7 @@ (配送不匹配) + (配送不匹配) (库存不足) 地址:{{def_pick_store.fulladdress}} @@ -174,6 +175,11 @@ 配送不匹配 + + + 配送不匹配 + + diff --git a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js index b986b98..3423071 100644 --- a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js +++ b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js @@ -852,6 +852,7 @@ Page({ ee.is_no_dis = 1; } + var appd = getApp().globalData; var w_time = setInterval(function () { if (that.data.is_get_local_ok == 0) return false; @@ -2943,6 +2944,11 @@ Page({ } + }else{ + //只有是普通商品购买的时候,才要给商品赋值指定门店 + if (is_normal && goodsinfo.pick_group_ids) { + goodsinfo.pickup_ids = goodsinfo.pick_up_lists; + } } //---如果有活动,不算在一起--- if (prom) { @@ -2954,8 +2960,11 @@ Page({ } } - var item = arrdata[i], gg = ""; + if (goodsinfo.goods_id != g_id && goodsinfo.pick_group_ids ) { + item.pickup_ids= goodsinfo.pick_up_lists; + } + if (item.goods_spec == "null" || item.goods_spec == null) item.goods_spec = ""; if (item.goods_color == "null" || item.goods_color == null) item.goods_color = ""; @@ -3003,6 +3012,15 @@ Page({ var gid = e.currentTarget.dataset.gid; var nor = e.currentTarget.dataset.nor; + //在切换规格的时候,指定门店不匹配的状态要清理 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ + th.data.def_pick_store.is_no_dis_nor=0; + that.setData({ + def_pick_store: th.data.def_pick_store + }) + } + + var sku_g = this.data.sku_g; if (nor) { sku_g = this.data.sku_g_pt; @@ -3221,6 +3239,42 @@ Page({ if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) { + //-- 如果有指定门店的时候 -- + if(th.data.sele_g.pickup_ids && th.data.is_normal){ + + var ok_arr=[]; + for (let i in e.data.data.pageData) { + let ite = e.data.data.pageData[i]; + //-- 查找一下门店有没有在 -- + var idx=th.data.sele_g.pickup_ids.findIndex(function (e){ + return e.pickup_id==ite.pickup_id; + }) + if(idx>-1){ + ok_arr.push(ite) + } + } + + //判断会员的默认的门店是不是匹配指定的门店 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ + //-- 查找一下门店有没有在 -- + var idx1=th.data.sele_g.pickup_ids.findIndex(function (e){ + return e.pickup_id==th.data.def_pick_store.pickup_id; + }) + + if(idx1<0){ + th.data.def_pick_store.is_no_dis_nor=1; + that.setData({ + def_pick_store: th.data.def_pick_store + }) + } + } + + + e.data.data.pageData=ok_arr; //数组重新赋值 + e.data.data.total=ok_arr.length; //数组的长度 + } + + var his_cate_num = 0; for (let i in e.data.data.pageData) { let item = e.data.data.pageData[i]; @@ -4497,14 +4551,19 @@ Page({ if (ind == 1) { //如果拼单的sku data是空的,就要先获取一下 if (th.data.sku_g_pt) { + + //要同步指定门店 + th.set_sele_g(th.data.sku_g_pt); + th.get_sto(1); th.setData({ is_normal: ind, openSpecModal_pt: 1 }); } else { - th.get_sto(1); + th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () { + th.get_sto(1); th.setData({ is_normal: ind, openSpecModal_pt: 1 @@ -7240,5 +7299,17 @@ Page({ }, + //要同步sele_g的指定门店,在有单独购买的时候,积分购和拼团 + set_sele_g:function (sku_list){ + var goods_id=this.data.sele_g.goods_id; + for (var i in sku_list) { + if(goods_id==sku_list[i].goods_id){ + this.data.sele_g.pickup_ids=sku_list[i].pickup_ids; + break; + } + } + } + + }); diff --git a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml index 89c9c35..09c2b40 100644 --- a/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml +++ b/packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml @@ -1370,6 +1370,8 @@ {{item.pickup_name}} + (配送不匹配) + (配送不匹配) @@ -1396,6 +1398,8 @@ {{item.pickup_name}} + (配送不匹配) + (配送不匹配) diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 458bf11..0dc1b56 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -319,6 +319,7 @@ Page({ }, 800) } }, + //失效单选 inCheck_th_item: async function (e) { console.log('失效单选'); @@ -336,6 +337,8 @@ Page({ // this.doCheckAll(); }, + + //清空失效宝贝 delInva_all(obj = null) { @@ -3317,7 +3320,25 @@ Page({ var steep = getApp().get_limit_qty(i_arr[j], act.length, 1); var py_type = parseInt(i_arr[j].prom_type + ''); + //商品只查一次。看一下有没有 + var gd = null; + //获取商品信息,包含线下商品ID,指定门店销售的信息 + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { + if (res.data.code == 0) gd = res.data.data; + }) + if ([0, 3, 5, 7, 10].indexOf(py_type) > -1) { + //如果是指定门店,就要判断 + if(gd.pick_group_ids){ + var idx0=gd.pick_up_lists.findIndex(function (e){ + return e.pickup_id==i_arr[j].pick_id; + }) + if(idx0<0){ + getApp().confirmBox(i_arr[j].goods_name + "的指定门店不匹配"); + wx.hideLoading(); + return false; + } + } if (mo_num > i_arr[j].goods_num) { getApp().confirmBox(i_arr[j].goods_name + "的未达到起订数量"); @@ -3342,16 +3363,12 @@ Page({ } - //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || i_arr[j].prom_type == 10 || i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) { - //--获取商品的线下商品ID-- - var gd = null; - await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id, {}).then(res => { - if (res.data.code == 0) gd = res.data.data; - }) + + //--判断商品是线下库存-- var ob = {} diff --git a/pages/goods/goodsInfo/buy_com_pop.wxml b/pages/goods/goodsInfo/buy_com_pop.wxml index 9dd9a1c..a0ffcd1 100644 --- a/pages/goods/goodsInfo/buy_com_pop.wxml +++ b/pages/goods/goodsInfo/buy_com_pop.wxml @@ -57,6 +57,7 @@ (库存不足) (配送不匹配) + (配送不匹配) (库存不足) @@ -112,6 +113,12 @@ 配送不匹配 + + + 配送不匹配 + + + diff --git a/pages/goods/goodsInfo/buy_pt.wxml b/pages/goods/goodsInfo/buy_pt.wxml index 8883f33..96aca25 100644 --- a/pages/goods/goodsInfo/buy_pt.wxml +++ b/pages/goods/goodsInfo/buy_pt.wxml @@ -47,7 +47,7 @@ - + {{def_pick_store.pickup_name}} @@ -65,17 +65,19 @@ - (配送不匹配) + + (库存不足) (库存不足) (配送不匹配) + (配送不匹配) (库存不足) - 地址:{{def_pick_store.fulladdress}} + 地址:{{def_pick_store.fulladdress}} @@ -157,6 +159,11 @@ 配送不匹配 + + + 配送不匹配 + + diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index fa186be..e4bdc9c 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -298,7 +298,6 @@ Page({ getApp().globalData.groupchat_id = t.groupchat_id } - self = this; //检查测肤 getApp().check_skin_face(t, 0, gid); @@ -855,6 +854,17 @@ Page({ ee.is_no_dis = 1; } + //-- 如果有指定门店的时候,pickup_ids是经过判断是不是普通商品后才会有的 -- + if(th.data.sele_g && th.data.sele_g.pickup_ids){ + var idx=th.data.sele_g.pickup_ids.findIndex(function (e){ + return e.pickup_id==ee.pickup_id; + }) + if(idx<0){ + ee.is_no_dis=1; + } + } + + var appd = getApp().globalData; var w_time = setInterval(function () { if (that.data.is_get_local_ok == 0) return false; @@ -1103,6 +1113,11 @@ Page({ //if (ee.data.prom_type) { t.data.data.prom_type = ee.data.prom_type; t.data.data.prom_id = ee.data.prom_id; + + //只有是普通商品的时候,才要给商品赋值指定门店 + if ([1, 2, 4, 6, 8, 9].indexOf(parseInt(ee.data.prom_type))<0 && t.data.data.pick_up_lists && t.data.data.pick_up_lists.length) { + t.data.data.pickup_ids = t.data.data.pick_up_lists; + } //} ee.setData({ data: t.data.data, @@ -1110,12 +1125,8 @@ Page({ userInfo: getApp().globalData.userInfo }); - - - //获取统一条形码,普通商品和优惠促销的商品 if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5 || ee.data.data.prom_type == 7 || ee.data.data.prom_type == 9 || ee.data.data.prom_type == 10) { - ee.get_sto(); ee.get_sku(o.stoid, t.data.data, gid); ee.check_has_flash(); @@ -3052,8 +3063,31 @@ Page({ for (var i = 0; i < arrdata.length; i++) { var goodsinfo = arrdata[i], prom = null; + if (goodsinfo.goods_id != g_id) { + + //要判断一下商品的活动是不是多活动,确定一下商品的prom_type + var url = '/api/weshop/activitylist/listGoodActInfo2New'; + var req_d = { + "store_id": os.stoid, + "goods_id": goodsinfo.goods_id, + "user_id": getApp().globalData.user_id, + } + var ck_res=await getApp().request.promiseGet("/api/weshop/activitylist/listGoodActInfo2New", { data:req_d }); + if (ck_res.data.code == 0 && ck_res.data.data && ck_res.data.data.length > 0) { + var arr = ck_res.data.data; + //-- 预热也要计算 -- + var arr2 = arr.filter(function (e) { + return e.s_time < ut.gettimestamp() || (e.warm_uptime && e.warm_uptime < ut.gettimestamp()) + }) + + if (arr2.length == 1) { + goodsinfo.prom_type = arr2[0].prom_type; + goodsinfo.prom_id = arr2[0].act_id; + } + } + switch (goodsinfo.prom_type) { case 1: @@ -3088,20 +3122,36 @@ Page({ continue; } + }else{ + + //只有是普通商品的时候,才要给商品赋值指定门店 + if ([1, 2, 4, 6, 8, 9].indexOf(parseInt(this.data.prom_type)) <0 || is_normal) { + //如果商品有设置分组 + if(goodsinfo.pick_group_ids){ + goodsinfo.pickup_ids = goodsinfo.pick_up_lists; + } + } + } //---如果有活动,不算在一起--- if (prom) { - if (goodsinfo.prom_type == 1 || goodsinfo.prom_type == 6) { + if ([1,2,4,6].indexOf(parseInt(goodsinfo.prom_type))>-1) { console.log(prom); - if (prom.is_end == 0 && prom.end_time > now && prom.start_time < now) continue; + if (prom.is_end == 0 && prom.end_time > now && (prom.start_time < now || (prom.show_time && prom.show_time < now ) ) ) continue; } else { continue; } } + var item = arrdata[i],gg = ""; + + if (goodsinfo.goods_id != g_id) { + //-- 如果商品有设置分组 -- + if(item.pick_group_ids){ + item.pickup_ids = item.pick_up_lists; + } + } - var item = arrdata[i], - gg = ""; if (item.goods_spec == "null" || item.goods_spec == null) item.goods_spec = ""; if (item.goods_color == "null" || item.goods_color == null) item.goods_color = ""; @@ -3145,8 +3195,19 @@ Page({ //-----------选择属性的按钮事件---------- sele_spec: function (e) { + var that = this; var th = this; + + //在切换规格的时候,指定门店不匹配的状态要清理 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ + th.data.def_pick_store.is_no_dis_nor=0; + that.setData({ + def_pick_store: th.data.def_pick_store + }) + } + + var gid = e.currentTarget.dataset.gid; var nor = e.currentTarget.dataset.nor; var user_id = getApp().globalData.user_id; @@ -3157,6 +3218,11 @@ Page({ if (nor) this.data.base_nor = nor; } + //要把不匹配还原 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ + th.data.def_pick_store.is_no_dis=0; + th.setData({def_pick_store:th.data.def_pick_store}) + } //普通商品多规格的时候,商品切换 if (this.data.base_nor_prom_type) this.data.base_nor_prom_type = parseInt(this.data.base_nor_prom_type); @@ -3214,7 +3280,10 @@ Page({ - if (nor) that.get_sto(1); + if (nor) { + that.set_sele_g(sku_g) + that.get_sto(1); + } else that.get_sto(); @@ -3427,7 +3496,6 @@ Page({ }, - //---------拿出门店分类和门店------------ get_sto(e) { console.log('get_sto') @@ -3473,10 +3541,8 @@ Page({ dd.lat = th.data.lat; dd.lon = th.data.lon; } - clearInterval(timer_get); - - + clearInterval(timer_get); //如果会员是有默认的门店话 if (!th.data.def_pick_store && th.data.fir_def_store && Object.keys(th.data.fir_def_store).length > 0) { @@ -3495,6 +3561,46 @@ Page({ if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) { + //-- 如果有指定门店的时候 -- + if(th.data.sele_g.pickup_ids){ + + var ok_arr=[]; + for (let i in e.data.data.pageData) { + let ite = e.data.data.pageData[i]; + //-- 查找一下门店有没有在 -- + var idx=th.data.sele_g.pickup_ids.findIndex(function (e){ + return e.pickup_id==ite.pickup_id; + }) + if(idx>-1){ + ok_arr.push(ite) + } + } + + //判断会员的默认的门店是不是匹配指定的门店 + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ + + //-- 查找一下门店有没有在 -- + var idx1=th.data.sele_g.pickup_ids.findIndex(function (e){ + return e.pickup_id==th.data.def_pick_store.pickup_id; + }) + + if(idx1<0){ + th.data.def_pick_store.is_no_dis_nor=1; + //-- 如果不是活动的普通购买的时候 -- + if(!th.data.is_normal){ + th.data.def_pick_store.is_no_dis=1; + } + that.setData({ + def_pick_store: th.data.def_pick_store + }) + } + } + + + e.data.data.pageData=ok_arr; //数组重新赋值 + e.data.data.total=ok_arr.length; //数组的长度 + } + var his_cate_num = 0; for (let i in e.data.data.pageData) { let item = e.data.data.pageData[i]; @@ -3543,7 +3649,8 @@ Page({ }); //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购-- - if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && !th.data.sele_g.whsle_id && ([1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 || is_normal == 1)) { + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.is_newsales_rules + && !th.data.sele_g.whsle_id && ([1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 || is_normal == 1)) { setTimeout(function () { th.deal_pickup_dline(e); }, 800) @@ -4932,7 +5039,7 @@ Page({ }, //--点击弹起拼单-- - openSpecModel_pt: function (e) { + openSpecModel_pt:function (e) { this.setData({ open_ind_store: 4, @@ -4959,19 +5066,29 @@ Page({ //如果拼单的sku data是空的,就要先获取一下 if (th.data.sku_g_pt) { + + //要同步指定门店 + th.set_sele_g(th.data.sku_g_pt); + th.get_sto(1); th.setData({ is_normal: ind, openSpecModal_pt: 1, }); } else { - th.get_sto(1); + th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () { + + th.get_sto(1); + th.setData({ is_normal: ind, openSpecModal_pt: 1, }); }); + + + } if (!th.data.sele_g.whsle_id) th.check_is_youhui(th.data.gid, 1); } else { @@ -7811,18 +7928,25 @@ Page({ }, //-- 积分购普通购买 -- - go_pay_integral_normal: function () { + go_pay_integral_normal:async function () { this.data.g_buy_num = new Map(); var th = this; if (th.data.sku_g_pt) { + + //要同步指定门店 + th.set_sele_g(th.data.sku_g_pt); + this.get_sto(1) this.setData({ openSpecModal_inte_normal: 1 }); } else { - th.get_sto(1); + th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () { + + th.get_sto(1); + th.setData({ is_normal: 1, openSpecModal_inte_normal: 1 @@ -8450,6 +8574,17 @@ Page({ switch_cx_group: function () { var pro_pop = this.selectComponent("#pro_pop"); //组件的id pro_pop.set_init(0, this.data.cx_prom_group); + }, + + //要同步sele_g的指定门店,在有单独购买的时候,积分购和拼团 + set_sele_g:function (sku_list){ + var goods_id=this.data.sele_g.goods_id; + for (var i in sku_list) { + if(goods_id==sku_list[i].goods_id){ + this.data.sele_g.pickup_ids=sku_list[i].pickup_ids; + break; + } + } } diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index debf06f..cabe175 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -1632,6 +1632,8 @@ {{item.pickup_name}} (库存不足) + (配送不匹配) + (配送不匹配) @@ -1660,6 +1662,8 @@ {{item.pickup_name}} (库存不足) + (配送不匹配) + (配送不匹配) diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index b47b72d..ddccccd 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -24,12 +24,11 @@ Page({ getApp().getConfig2(function (e) { - th.setData({conf: e,sales_rules:e.sales_rules, userInfo: getApp().globalData.userInfo}); //--- 看后台是不是有开通等级卡 --- if(e.switch_list){ var s_list=JSON.parse(e.switch_list); - th.setData({sys_switch: s_list,appoint_pick_keyid:s_list.appoint_pick_keyid}); + th.setData({sys_switch: s_list,appoint_pick_keyid:s_list.appoint_pick_keyid}); var is_open_offline=s_list.is_pricing_open; var user=getApp().globalData.userInfo; //如果后台有开启等级价的功能 @@ -450,6 +449,18 @@ Page({ gg = res.data.data; }) + //-- 要进行判断指定门店的判断优化,先做普通商品 -- + if([0,3,5,7,10].indexOf(parseInt(good.prom_type))>-1 && gg.pick_group_ids){ + var idx0=gg.pick_up_lists.findIndex(function (e){ + return e.pickup_id==order.pickup_id; + }) + if(idx0<0){ + getApp().confirmBox(gg.goods_name + "的指定门店不匹配"); + th.setData({ paying: 0 }); + return false; + } + } + var limit = gg.viplimited; var store_count = gg.store_count; good.erpwareid = gg.erpwareid; diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 8a68f5e..e7792f4 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -745,7 +745,6 @@ Page({ for (var i in order_goods) { var good = order_goods[i]; - //线下取价功能已经关闭或者过期 if (!th.data.is_open_offline && good.offline_cut > 0) { wx.showModal({ @@ -764,6 +763,18 @@ Page({ gg = res.data.data; }) + //-- 要进行判断指定门店的判断优化,先做普通商品 -- + if([0,3,5,7,10].indexOf(parseInt(good.prom_type))>-1 && gg.pick_group_ids){ + var idx0=gg.pick_up_lists.findIndex(function (e){ + return e.pickup_id==order.pickup_id; + }) + if(idx0<0){ + getApp().confirmBox(gg.goods_name + "的指定门店不匹配"); + th.setData({ paying: 0 }); + return false; + } + } + var limit = gg.viplimited; var store_count = gg.store_count; good.erpwareid = gg.erpwareid;