diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index f6aa22b..7954a65 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -219,6 +219,7 @@ Page({ new_user: 0, //新用户 def_pick_store: null, // 默认的门店 + fir_def_store:null, //客户默认的门店的 lat: null, //维度 lon: null, //经度 @@ -233,11 +234,11 @@ Page({ is_collect_load:0, //是不是处理 is_newsales_rules:0, //是否开启最新的门店规则,此时会新读门店,当点击选择门店时会触发读取线下库存 sales_rules:1, //默认是线上销售 + }, //------初始化加载---------- onLoad: function(t) { - wx.setNavigationBarTitle({ title: "商品详情", }) @@ -297,7 +298,6 @@ Page({ //---如果后台又开等级卡的开关--- if(sw_arr.rank_switch && sw_arr.rank_switch=="2"){ th.setData({rank_switch:true}); - //---回调卡的列表--- th.getPlusCardType(function(ob){ th.setData({card_list:ob.card_list}); @@ -346,38 +346,38 @@ Page({ clearInterval(w_time); var distance = null; var e=JSON.parse(JSON.stringify(ee)); - //如果有开启近距离的话,同时距离优不一样了 if (that.data.lat != null) { //如果经纬度有变化的话 if( appd.lat==that.data.lat && appd.lon==that.data.lon && e.distance>0 ){ + that.data.fir_def_store=e; that.setData({ def_pick_store: e, sto_sele_name: e.pickup_name, sto_sele_id: e.pickup_id, sto_sele_distr: e.distr_type }) - }else{ - //要用接口是获取距离,js的计算不准 - getApp().request.get("/api/weshop/pickup/list",{ - data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon}, - success:function (res) { - if(res.data.code==0){ - e=res.data.data.pageData[0]; - if (e){ - appd.pk_store=e; - that.setData({ - def_pick_store: e, - sto_sele_name: e.pickup_name, - sto_sele_id: e.pickup_id, - sto_sele_distr: e.distr_type - }) - } - - } - } - }) + }else{ + //要用接口是获取距离,js的计算不准 + getApp().request.promiseGet("/api/weshop/pickup/list",{ + data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon}, + }).then(res=>{ + if(res.data.code==0){ + e=res.data.data.pageData[0]; + if (e){ + appd.pk_store=e; + that.data.fir_def_store=e; + that.setData({ + def_pick_store: e, + sto_sele_name: e.pickup_name, + sto_sele_id: e.pickup_id, + sto_sele_distr: e.distr_type + }) + } + + } + }) } //e.distance = distance; @@ -387,18 +387,16 @@ Page({ }else{ if (e) { e.distance = null; + that.data.fir_def_store=e; that.setData({ def_pick_store: e, sto_sele_name: e.pickup_name, sto_sele_id: e.pickup_id, sto_sele_distr: e.distr_type }) - } - - + } } - - + }, 500) }); @@ -549,7 +547,7 @@ Page({ //---展示--- onShow: function() { - var goods_list = null,th = this; + var goods_list = null,th = this,that=this; var ui = setInterval(function () { goods_list = th.selectComponent("#goods_list"); if (goods_list) { @@ -626,8 +624,38 @@ Page({ //获取统一条形码,普通商品和优惠促销的商品 - if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 4 || ee.data.data.prom_type == 5){ - + if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 4 || ee.data.data.prom_type == 5){ + + //默认门店要拿下门店库存 + if(that.data.sales_rules==2 && that.data.is_newsales_rules && that.data.fir_def_store){ + var lock=0,plist=null; + //先读取门店的lock,采用链式写法,少用await + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:ee.data.data.goods_id,storageId:that.data.fir_def_store.pickup_id} + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + for(var i in res.data.data.pageData) + lock+=res.data.data.pageData[i].outQty + } + //---通过接口获取门店的线下库存信息-- + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:that.data.fir_def_store.pickup_no,wareIds:encodeURIComponent(th.data.data.erpwareid),storeId:os.stoid} + }) + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + plist=res.data.data.pageData[0]; + } + if(plist && plist.CanOutQty-lock>0){ + that.data.fir_def_store.CanOutQty=plist.CanOutQty-lock; + }else{ + that.data.fir_def_store.CanOutQty=0; + } + //--给门店赋值线下库存-- + th.setData({def_pick_store:that.data.fir_def_store}); + }) + + } + //获取门店 ee.get_sto(); ee.get_sku(o.stoid, t.data.data.sku, gid); @@ -1453,6 +1481,7 @@ Page({ //-----------选择属性的按钮事件---------- sele_spec: function(e) { + var that=this,ee=this,th=this; var gid = e.currentTarget.dataset.gid; var sku_g = this.data.sku_g; var item = null; @@ -1466,7 +1495,37 @@ Page({ sele_g: item, gid: gid }); - this.get_sto(); + + this.get_sto(); + //默认门店要拿下门店库存 + if(that.data.sales_rules==2 && that.data.def_pick_store){ + var lock=0,plist=null; + //先读取门店的lock,采用链式写法,少用await + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:ee.data.sele_g.goods_id,storageId:that.data.def_pick_store.pickup_id} + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + for(var i in res.data.data.pageData) + lock+=res.data.data.pageData[i].outQty + } + //---通过接口获取门店的线下库存信息-- + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:that.data.def_pick_store.pickup_no,wareIds:encodeURIComponent(th.data.sele_g.erpwareid),storeId:os.stoid} + }) + }).then(res=>{ + if(res.data.code==0 && res.data.data.total>0){ + plist=res.data.data.pageData[0]; + } + if(plist && plist.CanOutQty-lock>0){ + that.data.def_pick_store.CanOutQty=plist.CanOutQty-lock; + }else{ + that.data.def_pick_store.CanOutQty=0; + } + //--给门店赋值线下库存-- + th.setData({def_pick_store:that.data.def_pick_store}); + }) + } + this.sele_spec_chech_activity(); }, @@ -1521,7 +1580,7 @@ Page({ //---------拿出门店分类和门店------------ get_sto(e) { - var th = this; + var th = this,that=this; var timer_get = setInterval(function() { if (th.data.is_get_local_ok == 0) return false; var dd = null, @@ -1562,6 +1621,7 @@ Page({ sto_sele_id: e.data.data.pageData[0].pickup_id, sto_sele_distr: e.data.data.pageData[0].distr_type }); + th.data.fir_def_store=e.data.data.pageData[0]; } //-- 如果有默认选择门店的时候,要把默认门店放在第一位 -- @@ -1780,10 +1840,11 @@ Page({ o_plist[kk].CanOutQty=n_item.CanOutQty-lock_num; new_list.push(o_plist[kk]); //如果找到默认门店 - if(def_pick_store && n_item.StorageNo==def_pick_store.pickup_no){ - def_pick_store.CanOutQty=n_item.CanOutQty-lock_num; - th.setData({def_pick_store:def_pick_store}) - is_find_def_store=1; + if(n_item.StorageNo==th.data.fir_def_store.pickup_no){ + th.data.fir_def_store.CanOutQty=n_item.CanOutQty-lock_num; + if(def_pick_store.pickup_id==th.data.fir_def_store.pickup_id) + th.setData({def_pick_store:th.data.fir_def_store}) + is_find_def_store=1; } } break; @@ -1794,14 +1855,21 @@ Page({ //数据组装下 var em={};em.data={};em.data.data={}; em.data.data.total=new_list.length; - em.data.data.pageData=new_list; - + em.data.data.pageData=new_list; + + if(th.data.fir_def_store && !is_find_def_store){ + th.data.fir_def_store.CanOutQty=0; + //--当选择的门店是客户默认的门店的时候-- + if(th.data.fir_def_store.pickup_id==th.data.def_pick_store.pickup_id) { + th.setData({def_pick_store:th.data.fir_def_store}); + em.data.data.pageData.unshift(th.data.def_pick_store); + }else{ + em.data.data.pageData.splice(1,0,th.data.fir_def_store); + } + } + //---把数组组装进去--- - th.deal_pickup(em); - if(th.data.def_pick_store && !is_find_def_store){ - th.setData({def_pick_store:null}); - } - + th.deal_pickup(em); }else{ th.setData({def_pick_store:null,all_sto:null,only_pk:null}) } @@ -3405,7 +3473,7 @@ Page({ // 选择门店 choice_store: function(ee) { var th = this; - //var ind=ee.currentTarget.dataset.ind; + var ind=ee.currentTarget.dataset.ind; var bconfig = th.data.bconfig; if(!th.data.only_pk && !th.data.def_pickpu_list){ @@ -3461,25 +3529,63 @@ Page({ th.get_sto(); } - - - - this.setData({ - //open_ind_store: ind, - store: 1, - openSpecModal: !1, - openSpecModal_pt: !1 - }) + if(ind!=undefined && ind!=null ){ + this.setData({ + open_ind_store: ind, + store: 1, + openSpecModal: !1, + openSpecModal_pt: !1 + }) + }else{ + this.setData({ + store: 1, + openSpecModal: !1, + openSpecModal_pt: !1 + }) + } }, //关闭选择门店 close_popup: function(e) { - + var th=this; this.setData({ store: 0, choice_sort_store: 0, - sort_store: 0 + sort_store: 0, + fir_pick_index:0, + sec_pick_index:0 }) + + var openindstore=this.data.open_ind_store; + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } + else if (openindstore == 4) { //4就是拼团 + th.setData({ + openSpecModal_pt: 1, //打开拼团购买界面 + store: 0, //关闭门店 + choice_sort_store: 0, //关闭门店2级 + sort_store: 0, //关闭门店2级 + }); + } + else { + th.setData({ + store: 0, + choice_sort_store: 0, + sort_store: 0 + }) + } + + }, + //选择更多门店 more_store: function() { this.setData({ @@ -3509,19 +3615,18 @@ Page({ sec_pick_index: 0 }); }, + choose_for_store_fir: function(e) { var index_c = e.currentTarget.dataset.ind; - var th=this; - this.check_the_pick(index_c,function(){ - th.setData({ - fir_pick_index: index_c - }) - }) - + var th=this; + th.setData({ + fir_pick_index: index_c + }) + }, //如果开启线下库存,已经急速库存才会使用 - async check_the_pick(index,func){ + async check_the_pick(item,func){ var th=this; var goodsinfo=th.data.sele_g; var erpwareid=goodsinfo.erpwareid; @@ -3535,18 +3640,8 @@ Page({ if(this.data.sales_rules!=2 && this.data.is_newsales_rules!=1){ func(); - }else{ - var item=null; - if (th.data.choice_sort_store == 0) { - if (th.data.is_show_sto_cat == 1) { - item = th.data.def_pickpu_list[index]; - } else { - item = th.data.only_pk[index]; //当没有门店分类的时候 - } - } else { - item = th.data.sec_sto.s_arr[index]; - } - + }else{ + //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ data:{store_id:os.stoid,wareId:goodsinfo.goods_id,storageId:item.pickup_id} @@ -3555,8 +3650,7 @@ Page({ for(var i in res.data.data.pageData ) lock+=res.data.data.pageData[i].outQty; } - }) - + }) //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ data:{storageNos:item.pickup_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} @@ -3567,6 +3661,7 @@ Page({ }) if(plist && plist.CanOutQty-lock>0){ + item.CanOutQty=plist.CanOutQty-lock; func(); return false; } @@ -3594,144 +3689,142 @@ Page({ var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } - th.setData({ - def_pick_store: item, - sto_sele_name: item.pickup_name, - sto_sele_id: item.pickup_id, - sto_sele_distr: item.distr_type, - store: 0, - choice_sort_store: 0, - fir_pick_index: 0 - }); - - if (openindstore == 1) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - }); - } else if (openindstore == 2) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - }); - } - else if (openindstore == 4) { //4就是拼团 - th.setData({ - openSpecModal_pt: 1, //打开拼团购买界面 - store: 0, //关闭门店 - choice_sort_store: 0, //关闭门店2级 - sort_store: 0, //关闭门店2级 - }); - } - - else { - th.setData({ - store: 0, - choice_sort_store: 0, - sort_store: 0 - }) - } - + + //--回调函数的用法-- + th.check_the_pick(item,function(){ + th.setData({ + def_pick_store: item, + sto_sele_name: item.pickup_name, + sto_sele_id: item.pickup_id, + sto_sele_distr: item.distr_type, + store: 0, + choice_sort_store: 0, + fir_pick_index: 0 + }); + + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } + else if (openindstore == 4) { //4就是拼团 + th.setData({ + openSpecModal_pt: 1, //打开拼团购买界面 + store: 0, //关闭门店 + choice_sort_store: 0, //关闭门店2级 + sort_store: 0, //关闭门店2级 + }); + } + else { + th.setData({ + store: 0, + choice_sort_store: 0, + sort_store: 0 + }) + } + }) }, //---点击二级之后的选择--- choose_for_store: function(e) { var index_c = e.currentTarget.dataset.ind; - var th=this; - th.check_the_pick(index_c,function(){ - th.setData({ + var th=this; + th.setData({ sec_pick_index: index_c, fir_pick_index: index_c - }) - }) + }) + }, //把选择的门店设置成默认的门店def_pick set_def_pick: function(e) { var th = this; var item = null; - if (th.data.choice_sort_store == 0) { - var index = th.data.fir_pick_index; - if (th.data.is_show_sto_cat == 1) { item = th.data.def_pickpu_list[index]; } else { item = th.data.only_pk[index]; //当没有门店分类的时候 - } } else { var index = th.data.sec_pick_index; item = th.data.sec_sto.s_arr[index]; } - - var store_id = o.stoid; - var user_id = getApp().globalData.user_id; - var def_pickup_id = item.pickup_id; - - getApp().request.put('/api/weshop/users/update', { - data: { - user_id, - def_pickup_id - }, - success: function(res) { - if (res.data.code == 0) { - if (th.data.choice_sort_store == 0) th.setData({ - fir_pick_index: 0 - }); - getApp().globalData.pk_store = item; - } else { - //s.showWarning("设置默认门店地址失败", null, 500, !1); - getApp().my_warnning("设置默认门店地址失败",0,th) - } - - } - }); - - th.setData({ - def_pick_store: item, - sto_sele_name: item.pickup_name, - sto_sele_id: item.pickup_id, - sto_sele_distr: item.distr_type, - store: 0, - choice_sort_store: 0 - }); - - - var openindstore = th.data.open_ind_store; - if (openindstore == 1) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - store: 0, - choice_sort_store: 0, - sort_store: 0, - }); - } else if (openindstore == 2) { - th.setData({ - openSpecModal: !0, - openSpecModal_ind: openindstore, - store: 0, - choice_sort_store: 0, - sort_store: 0, - }); - } - else if (openindstore == 4) { //4就是拼团 - th.setData({ - openSpecModal_pt: 1, //打开拼团购买界面 - store: 0, //关闭门店 - choice_sort_store: 0, //关闭门店2级 - sort_store: 0, //关闭门店2级 - }); - } - - else { - th.setData({ - store: 0, - choice_sort_store: 0, - sort_store: 0, - }) - } - + + //先设置之前,要判断是不是有库存 + th.check_the_pick(item,function(){ + var store_id = o.stoid; + var user_id = getApp().globalData.user_id; + var def_pickup_id = item.pickup_id; + + getApp().request.put('/api/weshop/users/update', { + data: { + user_id, + def_pickup_id + }, + success: function(res) { + if (res.data.code == 0) { + if (th.data.choice_sort_store == 0) th.setData({ + fir_pick_index: 0 + }); + getApp().globalData.pk_store = item; + } else { + //s.showWarning("设置默认门店地址失败", null, 500, !1); + getApp().my_warnning("设置默认门店地址失败",0,th) + } + + } + }); + + th.setData({ + def_pick_store: item, + sto_sele_name: item.pickup_name, + sto_sele_id: item.pickup_id, + sto_sele_distr: item.distr_type, + store: 0, + choice_sort_store: 0 + }); + + var openindstore = th.data.open_ind_store; + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + store: 0, + choice_sort_store: 0, + sort_store: 0, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + store: 0, + choice_sort_store: 0, + sort_store: 0, + }); + } + else if (openindstore == 4) { //4就是拼团 + th.setData({ + openSpecModal_pt: 1, //打开拼团购买界面 + store: 0, //关闭门店 + choice_sort_store: 0, //关闭门店2级 + sort_store: 0, //关闭门店2级 + }); + } + + else { + th.setData({ + store: 0, + choice_sort_store: 0, + sort_store: 0, + }) + } + }) }, wait_for_store_config: function() { diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index 51fc111..9bf1fc3 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -404,7 +404,15 @@ 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}} - + + (库存不足) + + (库存不足) + + (库存不足) + + + 地址:{{def_pick_store.fulladdress}} @@ -910,11 +918,11 @@ - 门店库存不足 + (库存不足) - 门店库存不足 + (库存不足) - 门店库存不足 + (库存不足) @@ -960,11 +968,10 @@ 请先选择门店 - - + - + 库存不足 diff --git a/pages/goods/goodsInfo/goodsInfo.wxss b/pages/goods/goodsInfo/goodsInfo.wxss index fe63d77..af9058f 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxss +++ b/pages/goods/goodsInfo/goodsInfo.wxss @@ -2254,7 +2254,7 @@ right:17rpx; top:55rpx; height: 90rpx; } .sn_height{ - height: 170rpx; + min-height: 170rpx; height: auto;padding: 10rpx 0; } .xc-address_frame .address_frame{ width: 92%; @@ -2566,4 +2566,5 @@ border-radius: 55rpx; button.custom-service { line-height: normal; border: 0;} button.custom-service::after{ border: 0; -} \ No newline at end of file +} +.no_store{color:#d60021; font-size: 26rpx;} \ No newline at end of file diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index ce9e048..01c93a3 100644 --- a/pages/user/order_detail/order_detail.js +++ b/pages/user/order_detail/order_detail.js @@ -1,5 +1,7 @@ var e = getApp(), r = e.request,rq=r,t = require("../../../utils/util.js"), o = require("../../../utils/common.js"),oo=e.globalData,os=oo.setting; var regeneratorRuntime = require('../../../utils/runtime.js'); +var ut= require('../../../utils/util.js'); + Page({ data: { @@ -325,12 +327,14 @@ Page({ } if(good.prom_type==1 || good.prom_type==6){ - if(gg.prom_type!=good.prom_type) - wx.showModal({ - title: '提示', - content: gg.goods_name+'商品的活动发生了变化' - }); - return false; + if(gg.prom_type!=good.prom_type) { + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的活动发生了变化' + }); + return false; + } + }else{ if(gg.prom_type==1 || gg.prom_type==6){ diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 82ad728..25ed2f6 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -422,13 +422,18 @@ Page({ return false; } + + console.log("-----------------111-------------------"); + if(good.prom_type==1 || good.prom_type==6){ - if(gg.prom_type!=good.prom_type) - wx.showModal({ - title: '提示', - content: gg.goods_name+'商品的活动发生了变化' - }); - return false; + if(gg.prom_type!=good.prom_type) { + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的活动发生了变化' + }); + return false; + } + }else{ if(gg.prom_type==1 || gg.prom_type==6){ @@ -507,6 +512,8 @@ Page({ } } + + console.log("------------------------------------"); var prom=null; //---如果是活动的时候---