diff --git a/app.js b/app.js index 90f5a8b..9a126d6 100644 --- a/app.js +++ b/app.js @@ -395,6 +395,23 @@ App({ if(n>15) clearInterval(page.data[key]); },1000); } + }, + + + //------定时等待某个值,有值才进行运算-------- + waitfor2:function(page,key,pop_value_key,func){ + var n=0; + if(!page.data[key]){ + page.data[key]=setInterval(function(){ + console.log(page.data[key]);n++; + if(page.data[pop_value_key]) { + clearInterval(page.data[key]); + func(); + } + if(n>15) clearInterval(page.data[key]); + },1000); + } } + }); diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index f99152a..0799676 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -1,6 +1,7 @@ var t = getApp(), a = t.request, oo = t.globalData.setting, + os=oo, app = getApp(), rq = t.request, ut = require("../../../utils/util.js"); @@ -26,13 +27,24 @@ Page({ isadd: 0, //是否可以加商品数量 card_field:"", + bconf:null, + }, onLoad: function() { + var a = this,ee=a; + //----获取系统参数----- + getApp().getConfig2(function(e) { + ee.setData({ + bconfig: e, + sales_rules:e.sales_rules + }); + }) + wx.setNavigationBarTitle({ title: "购物车", }) - var a = this; + //判断是否有登陆 t.auth.hadAuth() && t.getUserInfo(function() { a.getCardList(); @@ -117,6 +129,8 @@ Page({ var all_num = 0; for (var i = 0; i < carr.length; i++) { + + var item = carr[i]; all_num += item.goods_num; item.original_img = oo.imghost + item.original_img; @@ -427,7 +441,7 @@ Page({ //----------------------更新购物数量,加减,调用接口--------------------- postCardList: function(t, item, pitem) { - var e = this; + var e = this,th=e; var user_id = getApp().globalData.user_id; console.log('update'); console.log(t); @@ -436,11 +450,12 @@ Page({ async success(d) { var limit = d.data.data.viplimited; var store_count = d.data.data.store_count; + var wareIds=d.data.data.erpwareid; var goodsinfo = e.data.requestData[pitem].goods[item]; var promgoodsbuynum = 0; var goodsbuynum = 0; - + //--要获得商品,该用户买了多少件,同步应用-- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { data: { @@ -455,6 +470,7 @@ Page({ if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; goodsbuynum = buy_num_data.goodsbuynum; }) + var buyed_mum2 = t.goods_num + goodsbuynum; if (buyed_mum2 > limit && limit > 0) { @@ -463,86 +479,206 @@ Page({ content: '购买数量超出商品限购' }); var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - var cbuy = limit - buyed_mum; + var cbuy = limit - buyed_mum2; e.setData({ [txt]: cbuy > 0 ? cbuy : 0, }); e.doCheckAll(); + + t.goods_num=cbuy > 0 ? cbuy : 0, + e.update_cart(t, pitem, item); return false; } - if (t.goods_num > store_count) { - wx.showModal({ - title: '提示', - content: '购买数量超出商品库存' - }); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: store_count - }); - e.doCheckAll(); - return false; - } - + if (goodsinfo.prom_type == 1) { - //读取秒杀 - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { + //读取秒杀 + rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { isShowLoading: 0, success: function(res_d) { - var false_data = res_d.data.data; - - //--判断库存-- - if (t.goods_num > false_data.goods_num - false_data.buy_num) { - wx.showModal({ - title: '提示', - content: '购买数量超出活动库存' - }); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: false_data.goods_num - false_data.buy_num - }); - e.doCheckAll(); - return false; - } - - //--判断redis数量是否已经超出-- - if (t.goods_num > false_data.redisnum) { - wx.showModal({ - title: '提示', - content: '购买数量超出商品库存' - }); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: false_data.redisnum - }); - e.doCheckAll(); - return false; - } - - //--活动的限购是不是要判断-- - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { - wx.showModal({ - title: '提示', - content: '购买数量超出秒杀限购' - }); - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; - e.setData({ - [txt]: false_data.false_data.buy_limit - }); - e.doCheckAll(); - return false; - } - e.update_cart(t, pitem, item); + + if(res_d.data.code==0){ + if (t.goods_num > store_count) { + wx.showModal({ + title: '提示', + content: '购买数量超出商品库存' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: store_count + }); + e.doCheckAll(); + + t.goods_num=store_count; + e.update_cart(t, pitem, item); + + return false; + } + + var false_data = res_d.data.data; + //--判断库存-- + if (t.goods_num > false_data.goods_num - false_data.buy_num) { + wx.showModal({ + title: '提示', + content: '购买数量超出活动库存' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: false_data.goods_num - false_data.buy_num + }); + e.doCheckAll(); + + t.goods_num=false_data.goods_num - false_data.buy_num; + e.update_cart(t, pitem, item); + + return false; + } + + //--判断redis数量是否已经超出-- + if (t.goods_num > false_data.redisnum) { + wx.showModal({ + title: '提示', + content: '购买数量超出商品库存' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: false_data.redisnum + }); + e.doCheckAll(); + + t.goods_num=false_data.redisnum; + e.update_cart(t, pitem, item); + + + return false; + } + + //--活动的限购是不是要判断-- + if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { + wx.showModal({ + title: '提示', + content: '购买数量超出秒杀限购' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: false_data.false_data.buy_limit + }); + e.doCheckAll(); + + t.goods_num=false_data.false_data.buy_limit; + e.update_cart(t, pitem, item); + + return false; + } + }else{ + //--- 看一下是不是线下库存 --- + if(th.data.sales_rules==2){ + th.check_down_line(t, pitem, item,wareIds); + }else{ + if (t.goods_num > store_count) { + wx.showModal({ + title: '提示', + content: '购买数量超出商品库存' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: store_count + }); + e.doCheckAll(); + return false; + } + e.update_cart(t, pitem, item); + } + } + } }) - } else { - e.update_cart(t, pitem, item); + } else { + //--- 看一下是不是线下库存 --- + if(th.data.sales_rules==2){ + th.check_down_line(t, pitem, item,wareIds); + }else{ + if (t.goods_num > store_count) { + wx.showModal({ + title: '提示', + content: '购买数量超出商品库存' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: store_count + }); + e.doCheckAll(); + t.goods_num=store_count; + } + e.update_cart(t, pitem, item); + } } } }); }, - - //更新购物车 + + //---检验线下库存的数量--- + async check_down_line(t, pitem, item,erpwareid){ + var ob={},th=this; + await this.check_down_line_next(t, pitem, item,erpwareid,function(res){ + ob=res; + }); + var log=0; + if(ob.code==-1){ + wx.showModal({ + title: '提示', + content: '购买数量超出商品库存' + }); + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; + th.setData({ + [txt]: ob.CanOutQty + }); + th.doCheckAll(); + t.goods_num=ob.CanOutQty; + } + this.update_cart(t, pitem, item); + }, + + //---检验线下库存的数量的子函数--- + async check_down_line_next(t, pitem, item,erpwareid,func){ + var goodsinfo = this.data.requestData[pitem].goods[item]; + var lock=0,pick_no,plist; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:t.goods_id,storageId:goodsinfo.pick_id,pageSize:1000} + }).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; + } + }) + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+goodsinfo.pick_id,{ + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:goodsinfo.pick_id} + }).then(res=>{ + if(res.data.code==0){ + pick_no=res.data.data.pickup_no; + } + }) + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} + }).then(res=>{ + if(res.data.code==0){ + plist=res.data.data.pageData[0]; + } + }) + var ob={}; ob.code=1; + if(t.goods_num>plist.CanOutQty-lock){ + ob.code=-1; + ob.CanOutQty=plist.CanOutQty-lock + if(ob.CanOutQty<0) ob.CanOutQty=0; + } + func(ob) + }, + + + //--更新购物车--- update_cart: function(t, pitem, item) { var e = this; getApp().request.put("/api/weshop/cart/update", { @@ -573,7 +709,7 @@ Page({ var th = this; var ab = 0; //选中 - console.log('checkout'); + wx.showLoading(); for (var i = 0; i < this.data.requestData.length; i++) { var i_arr = this.data.requestData[i].goods; for (var j = 0; j < i_arr.length; j++) { @@ -594,6 +730,25 @@ Page({ } glist += i_arr[j].goods_id + ","; ab = 1; + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算--- + if(i_arr[j].prom_type==0 && th.data.sales_rules==2){ + //--获取商品的线下商品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={} + await th.check_down_line_next(i_arr[j],i,j,gd.erpwareid,function(rs){ + ob=rs; + }); + if(ob.code==-1){ + t.my_warnning(gd.goods_name+"门店库存不足", 0, th); + wx.hideLoading(); + return false; + } + } + } else { rq.put("/api/weshop/cart/update", { data: { @@ -610,6 +765,7 @@ Page({ } if (ab == 0) { t.my_warnning("未选择商品", 0, th); + wx.hideLoading(); return false; } @@ -657,7 +813,8 @@ Page({ } try { - ddata.forEach(function(val, ind) { + for(var ind in ddata) { + var val=ddata[ind]; var num = map.get(val.goods_id + ""); if (num <= 0) { isok = 0; @@ -665,12 +822,25 @@ Page({ throw "购买数量不能为0"; return false; } - if (num > val.store_count) { - isok = 0; - gname = val.goods_name; - throw "超出库存"; - return false; - } + + if(val.prom_type==1 || val.prom_type==6){ + if (num > val.store_count) { + isok = 0; + gname = val.goods_name; + throw "超出库存"; + return false; + } + } + + if(th.data.sales_rules!=2){ + if (num > val.store_count) { + isok = 0; + gname = val.goods_name; + throw "超出库存"; + return false; + } + } + if (num > val.redisnum && val.redisnum) { isok = 0; gname = val.goods_name; @@ -712,7 +882,7 @@ Page({ throw "商品价格已经变化"; } }else{ - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { isok = 0; gname = val.goods_name; throw "商品价格已经变化"; @@ -733,14 +903,16 @@ Page({ } } - }) + } } catch (e) { err = e; } if (isok == 0) { t.confirmBox(gname + ":" + err); + wx.hideLoading(); return false; } + wx.hideLoading(); wx.navigateTo({ url: "/pages/cart/cart2/cart2" }); @@ -821,6 +993,8 @@ Page({ wx.switchTab({ url: '/pages/index/index/index', }) - } + }, + + }); \ No newline at end of file diff --git a/pages/cart/cart2/cart2.js b/pages/cart/cart2/cart2.js index 0c1d7de..4351297 100644 --- a/pages/cart/cart2/cart2.js +++ b/pages/cart/cart2/cart2.js @@ -1,6 +1,6 @@ var t = getApp(),app=t, a = t.request, e = require("../../../utils/common.js"), s = require("../../../utils/util.js"), o = require("../../../utils/md5.js"), to = getApp(); -var oo=t.globalData.setting; +var oo=t.globalData.setting,os=oo; var regeneratorRuntime = require('../../../utils/runtime.js'); var util_pay = require("../../../utils/pay.js"); @@ -84,6 +84,9 @@ Page({ is_coupon:null, //选择券的控制属性 is_shipping_code:"",//插入用户默认地址 wu_arr_txt:"", //要更新的物流的字段 + + sales_rules:1, //默认是显示线上库存 + }, onLoad: function(t) { @@ -101,7 +104,7 @@ Page({ //先获取是否有关闭使用优惠券 getApp().getConfig2(function (ee) { var json_d = JSON.parse(ee.switch_list); - th.setData({ is_close_quan: json_d.is_close_quan }); + th.setData({ is_close_quan: json_d.is_close_quan,sales_rules:ee.sales_rules }); //-----先获取物流,再获取用户信息,再展示页面----- th.get_wuliu(th.get_info(th.show_page)); }) @@ -698,7 +701,7 @@ Page({ }, //--------------------提交订单----------------------- - submitForm: function(t) { + async submitForm(t){ if(this.data.is_summit_ing==1) return false; //--提交中退出-- this.data.is_summit_ing=1; var th=this,pdata=new Array(); @@ -772,7 +775,20 @@ Page({ 'prom_type':th.data.bn_goods.prom_type, //促销活动类型 'prom_id': th.data.bn_goods.prom_id, //促销活动id }; - + + //如果不立即购买或者秒杀,如果是线下库存购买的时候 + if(goods.prom_type!=1 && goods.prom_type!=6 && th.data.sales_rules==2){ + var isok=1; + await th.check_store_num(goods.goods_id,th.data.bn_pick, gg.goods_num,function(res){ + isok=res; + }); + if(!isok){ + getApp().confirmBox("商品的门店库存不足"); + th.data.is_summit_ing=0; + return false; + } + } + //--组装优惠券的钱-- if(th.data.formData.coupon_price){ item.coupon_price=th.data.formData.coupon_price; @@ -868,6 +884,20 @@ Page({ }else{ goods.prom_type = 0;goods.prom_id =0; } + + //如果不立即购买或者秒杀,如果是线下库存购买的时候 + if(goods.prom_type==0 && th.data.sales_rules==2){ + var isok=1; + await th.check_store_num(goods.goods_id, t_item.pickup_id,goods.goods_num,function(res){ + isok=res; + }); + if(!isok){ + getApp().confirmBox( goods.goods_name+"的门店库存不足"); + th.data.is_summit_ing=0; + return false; + } + } + item.order_goods.push(goods); } pdata.push(item); @@ -975,6 +1005,50 @@ Page({ }) }, + + //---确认线下门店的数量足不足--- + async check_store_num(goods_id,pick,goods_num,func){ + var lock=0,pick_no,plist,erpwareid; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:goods_id,storageId:pick,pageSize:1000} + }).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; + } + }) + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick,{ + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} + }).then(res=>{ + if(res.data.code==0){ + pick_no=res.data.data.pickup_no; + } + }) + //先获取商品的线下库存 + await getApp().request.promiseGet("/api/weshop/goods/get/"+os.stoid+"/"+goods_id,{ + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} + }).then(res=>{ + if(res.data.code==0){ + erpwareid=res.data.data.erpwareid; + } + }) + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} + }).then(res=>{ + if(res.data.code==0){ + plist=res.data.data.pageData[0]; + } + }) + var isok=1; + if(goods_num>plist.CanOutQty-lock){ + isok=0; + } + func(isok); + }, + useCoupon: function() { if (this.data.order.couponNum <= 0) { diff --git a/pages/cart/cart2/cart2.wxml b/pages/cart/cart2/cart2.wxml index 0849202..c8dba07 100644 --- a/pages/cart/cart2/cart2.wxml +++ b/pages/cart/cart2/cart2.wxml @@ -376,7 +376,7 @@ {{item.Sum}}元优惠券 - {{filters.replace_time2(item.BeginDate)}}至{{filters.replace_time2(item.BillDate)}} + {{filters.replace_time2(item.BeginDate)}}至{{item.ValidDate?filters.replace_time2(item.ValidDate):'不限'}} - + + + + + 客服 + + @@ -751,18 +765,17 @@ 立即购买 - + - + + 加入购物车 立即购买 - - - 库存不足 - - + + 库存不足 + @@ -862,7 +875,13 @@ 已售:{{sele_g.sales_sum}} - 可售:{{sele_g.store_count}} + + 可售:{{def_pick_store.CanOutQty}} + 可售:0 + + + 可售:{{sele_g.store_count}} + @@ -872,7 +891,7 @@ 已售:{{prom_act.buy_num}} 可售:{{prom_act.goods_num-prom_act.buy_num}} - + @@ -889,23 +908,31 @@ - - - 选择门店 + + + 选择门店 更多门店 - - 地址:{{def_pick_store.fulladdress}} + + (库存不足) + + (库存不足) + + (库存不足) + + + + 地址:{{def_pick_store.fulladdress}} - - - - - 加入购物车 - 立即购买 - + + + + 库存不足 + + + + + + 库存不足 + + + + 库存不足 + + + + 请先选择门店 + + + + + + 库存不足 + + + 加入购物车 + 立即购买 + + + + + + 库存不足 + + + 加入购物车 + 立即购买 + + + + + + + + + @@ -1062,7 +1134,7 @@ 购买数量 - - + + @@ -1281,7 +1353,8 @@ {{item.pickup_name}} - 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}} + + 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}} 地址:{{item.fulladdress}} diff --git a/pages/goods/goodsInfo/goodsInfo.wxss b/pages/goods/goodsInfo/goodsInfo.wxss index 70b40d8..af9058f 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxss +++ b/pages/goods/goodsInfo/goodsInfo.wxss @@ -599,7 +599,8 @@ border-radius: 0 56rpx 55rpx 0; text-align: center; } .spec_bt{ - background: fff;color: #333; margin-left: 10rpx;padding: 4rpx 15rpx 4rpx; border-radius:30rpx;font-size: 24rpx;border: 1rpx solid #ccc; + background: fff;color: #333; margin-left: 10rpx;padding: 4rpx 15rpx 4rpx; display: inline-block; + border-radius:30rpx;font-size: 24rpx;border: 1rpx solid #ccc; margin: 10rpx; height: 40rpx; line-height: 40rpx; } .spec_bt.act{background: #d60021;color: #fff;border: 1rpx solid #d60021;} .sub { @@ -2253,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%; @@ -2560,4 +2561,10 @@ border-radius: 55rpx; .carde_frame{ height: 50rpx; line-height: 18rpx -} \ No newline at end of file +} + +button.custom-service { line-height: normal; border: 0;} +button.custom-service::after{ + border: 0; +} +.no_store{color:#d60021; font-size: 26rpx;} \ No newline at end of file diff --git a/pages/goods/goodsList/goodsList.js b/pages/goods/goodsList/goodsList.js index 5a6d098..76d79d8 100644 --- a/pages/goods/goodsList/goodsList.js +++ b/pages/goods/goodsList/goodsList.js @@ -97,10 +97,15 @@ Page({ }, requestGoodsList: function(t) { var e = this; - this.data.requestUrl = t, - t += "&orderField=" + e.data.tabname; - t += "&orderType=" + e.data.adname; - t +="&page=" + e.data.currentPage, + this.data.requestUrl = t; + + //不是商品分组的,不是默认排序的 + if(t.indexOf("group_id")==-1 || e.data.tabname!="goods_id" ){ + t += "&orderField=" + e.data.tabname; + t += "&orderType=" + e.data.adname; + } + + t +="&page=" + e.data.currentPage; a.request(t, function(t) { e.setData({is_go:1}); diff --git a/pages/index/index/index.js b/pages/index/index/index.js index 59a8d7a..4706a81 100644 --- a/pages/index/index/index.js +++ b/pages/index/index/index.js @@ -149,7 +149,8 @@ Page({ data: { store_id: os.stoid, pageSize: 5, - is_show: 1 + is_show: 1, + level:1 } }).then(res => { if (res.data.data) { @@ -181,7 +182,7 @@ Page({ //读取全局是否有弄自定义模板 await api.get_template_fir(o.stoid).then(res => { var data = res.data.data; - if (data.length > 0) { + if (data && data.length > 0) { var temp_data = data[0]; var t_arr = JSON.parse(temp_data.json_str); th.setData({ diff --git a/pages/user/address_list/address_list.js b/pages/user/address_list/address_list.js index ce198f7..ad0b36a 100644 --- a/pages/user/address_list/address_list.js +++ b/pages/user/address_list/address_list.js @@ -154,5 +154,59 @@ Page({ - } + } , + + //获取微信地址 + get_wx:function(){ + var th=this; + wx.getSetting({ + success(res) { + console.log("vres.authSetting['scope.address']:", res.authSetting['scope.address']) + if (res.authSetting['scope.address']) { + wx.chooseAddress({ + success(res) { + th.save_wx_addr(res); + } + }) + + } else { + if (res.authSetting['scope.address'] == false) { + console.log("222") + wx.openSetting({ + success(res) {} + }) + } else { + + wx.chooseAddress({ + success(res) { + th.save_wx_addr(res); + } + }) + } + } + } + }) + }, + + save_wx_addr:function (res) { + var pd={},th=this; + pd.store_id=os.stoid; + pd.user_id=getApp().globalData.user_id; + pd.userName=res.userName; + pd.provinceName=res.provinceName; + pd.countryName=res.countyName; + pd.cityName=res.cityName; + pd.detailInfo=res.detailInfo; + pd.postalCode=res.postalCode; + pd.telNumber=res.telNumber; + getApp().request.promisePost("/api/weshop/useraddress/saveWx",{data:pd}).then(res=>{ + if(res.data.code==0){ + getApp().my_warnning("保存成功",1,th); + setTimeout(function () { + th.onShow(); + },1000) + } + }) + + } }); \ No newline at end of file diff --git a/pages/user/address_list/address_list.json b/pages/user/address_list/address_list.json index 7bc362b..467c798 100644 --- a/pages/user/address_list/address_list.json +++ b/pages/user/address_list/address_list.json @@ -1,3 +1,6 @@ { - "navigationBarTitleText": "收货地址" + "navigationBarTitleText": "收货地址", + "usingComponents": { + "warn": "/components/long_warn/long_warn" + } } \ No newline at end of file diff --git a/pages/user/address_list/address_list.wxml b/pages/user/address_list/address_list.wxml index 26def32..f624fda 100644 --- a/pages/user/address_list/address_list.wxml +++ b/pages/user/address_list/address_list.wxml @@ -28,8 +28,19 @@ 暂无收货地址 - - 添加收货地址 + + + + + + 获取微信地址 + + + + + + 新建收货地址 + + + @@ -69,12 +80,17 @@ - - - - + - 新建收货地址 - - - - \ No newline at end of file + + + + + + 获取微信地址 + + + + + + 新建收货地址 + + + + \ No newline at end of file diff --git a/pages/user/address_list/address_list.wxss b/pages/user/address_list/address_list.wxss index d6a4958..d20eeaa 100644 --- a/pages/user/address_list/address_list.wxss +++ b/pages/user/address_list/address_list.wxss @@ -213,14 +213,14 @@ page { } .container .new { - width: 100%; + width: 86%; display: flex; - justify-content: center; position: fixed; bottom: 0rpx; height: 204rpx; align-items: center; background-color: rgb(255, 255, 255); + margin-left:7% } .container .new .add { @@ -229,7 +229,7 @@ page { .container navigator { display: flex; - width: 430rpx; + width: 300rpx; height: 62rpx; background-color: rgb(239, 22, 51); border-radius: 40rpx; @@ -238,3 +238,10 @@ page { color: rgb(255, 255, 255); font-size: 27rpx; } + +.container navigator.ye{ + background-color: #fc872d; +} +.nothing .address navigator.ye{ + background-color: #fc872d; +} diff --git a/pages/user/order_detail/order_detail.js b/pages/user/order_detail/order_detail.js index 2f99c7e..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: { @@ -270,10 +272,206 @@ Page({ }, //--------立即支付---------- - jumpToCart4: function(e) { - this.data.optionIsGoup ? wx.navigateTo({ - url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true" - }) : o.jumpToCart4({ + async jumpToCart4(e) { + var th=this; + if(this.data.optionIsGoup) + wx.navigateTo({ + url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true" + }) + var order=this.data.order; + var order_goods=order.order_goods; + + for(var i in order_goods){ + var good=order_goods[i]; + //如果不是小程序有的功能,直接提示要去3.0处理 + if(good.prom_type==2 || good.prom_type==3 || good.prom_type==4 || good.prom_type==5){ + wx.showModal({ + title: '提示', + content: '小程序还未有该活动,请到3.0公众号支付' + }); + return false; + } + + //要每件每件的商品进行检查,看有么有超出库存,超出限购 + var good= order_goods[i],goodsbuynum=0,promgoodsbuynum=0,gg=null; + //获取单品的现在的活动状态 + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, { + }).then(res=>{ + gg=res.data.data; + }) + var limit = gg.viplimited; + var store_count = gg.store_count; + + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: good.goods_id, + prom_type: good.prom_type, + prom_id: good.prom_id + }, + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; + goodsbuynum = buy_num_data.goodsbuynum; + }) + + var buyed_mum2=goodsbuynum+good.goods_num; + if (buyed_mum2 > limit && limit > 0) { + wx.showModal({ + title: '提示', + content: gg.goods_name+'购买数量超出商品限购' + }); + return false; + } + + 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; + } + + }else{ + + if(gg.prom_type==1 || gg.prom_type==6){ + var prom=null; + //---如果是活动的时候--- + var prom=null,th=this; + if(gg.prom_type==1){ + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + if(gg.prom_type==6){ + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + + if(prom){ + var t_now=ut.gettimestamp(); + if(prom.is_end==0 && prom.start_timet_now){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的活动发生了变化' + }); + return false; + } + } + } + + + var isok=1; + var card_field=th.data.card_field; + //如果会员是等级会员,商品有等级价,且不是活动商品 + if(card_field && gg[card_field]>0){ + if (good.goods_price != gg[card_field]) isok = 0; + }else{ + if (good.goods_price != gg.shop_price) isok = 0; + + } + if(!isok){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的价格发生了变化' + }); + return false; + } + + //--如果是线下库存的时候-- + if(th.data.conf.sales_rules==2){ + var ob={}; + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ + ob=obj; + }) + if(ob.code==-1){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'门店库存不足' + }); + return false; + } + + }else{ + if(good.goods_num>store_count){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的库存不足' + }); + return false; + } + + } + } + + var prom=null; + //---如果是活动的时候--- + var prom=null,goodsinfo=good,th=this; + if(goodsinfo.prom_type==1){ + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + if(goodsinfo.prom_type==6){ + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + //----------如果有活动,并且在进行中,就不计算线下库存--------------- + if(prom){ + var now=ut.gettimestamp(); + if(prom.is_end==1 && prom.end_time prom.buy_limit && prom.buy_limit > 0) { + wx.showModal({ + title: '提示', + content: goodsinfo.goods_name+'购买数量超出商品活动限购' + }); + return false; + } + + var redis_num = 0; + //------判断活动是否抢光----- + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, { + }).then(res => { + redis_num = res.data.data; + }); + + if (good.goods_num > redis_num) { + wx.showModal({ + title: gg.goods_name+'超出商品活动库存', + }); + return false; + } + } + + } + + o.jumpToCart4({ order_sn: this.data.order.order_sn, order_amount: this.data.order.order_amount }, 1); @@ -344,14 +542,18 @@ Page({ //-----删除订单----- deleteOrderData: function(t) { var th=this; - var order_id=t.currentTarget.dataset.order_id; + var order_id=t.currentTarget.dataset.order_id; + var up_data={ + order_id: order_id,isdel:1 + }; + if(th.data.order.order_status!=6){ + up_data.order_status=5; + } wx.showModal({ title: "是否删除订单?", success: function(tt) { - t.confirm && rq.put("/api/weshop/order/updatebyId", { - data: { - order_id: order_id, order_status: 5 - }, + tt.confirm && rq.put("/api/weshop/order/updatebyId", { + data: up_data, success: function (t) { getApp().my_warnning("删除成功",1,th); setTimeout(function () { @@ -389,7 +591,48 @@ Page({ if(item.order_amount==0 || item.user_money==0) return true; } return false; - } + }, + + + + //---检验线下库存的数量的子函数--- + async check_down_line_next(gg,num,pick_id,func){ + + var lock=0,pick_no,plist; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_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; + } + }) + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{ + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id} + }).then(res=>{ + if(res.data.code==0){ + pick_no=res.data.data.pickup_no; + } + }) + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid} + }).then(res=>{ + if(res.data.code==0){ + plist=res.data.data.pageData[0]; + } + }) + var ob={}; ob.code=1; + if(num>plist.CanOutQty-lock){ + ob.code=-1; + ob.CanOutQty=plist.CanOutQty-lock + if(ob.CanOutQty<0) ob.CanOutQty=0; + } + func(ob) + }, + diff --git a/pages/user/order_detail/order_detail.wxml b/pages/user/order_detail/order_detail.wxml index a3c5550..292b975 100644 --- a/pages/user/order_detail/order_detail.wxml +++ b/pages/user/order_detail/order_detail.wxml @@ -137,6 +137,9 @@ + + 删除订单 + @@ -146,7 +149,7 @@ 申请退款 - 删除订单 + 删除订单 重新退款 退款详情 diff --git a/pages/user/order_list/order_list.js b/pages/user/order_list/order_list.js index 103dd9b..25ed2f6 100644 --- a/pages/user/order_list/order_list.js +++ b/pages/user/order_list/order_list.js @@ -11,6 +11,7 @@ var t = function(t) { a = require("../../../utils/common.js"), s = new t.default(); var regeneratorRuntime = require('../../../utils/runtime.js'); +var ut= require('../../../utils/util.js'); Page({ data: { @@ -39,18 +40,36 @@ Page({ //已经读取过接口 is_get: 0, conf: null, - iscodeall: null + iscodeall: null, + + //会员的等级价位 + card_field:null, }, onLoad: function(t) { var th = this; if (t.type != undefined) this.setData({ activeCategoryId: t.type }) - s.init(this, "", "orderList"); + s.init(this, "", "orderList"); + //---查看会员的等级价--- getApp().getConfig2(function(e) { - th.setData({ - conf: e - }); + th.setData({conf: e }); + //--- 看后台是不是有开通等级卡 --- + if(e.switch_list){ + var s_list=JSON.parse(e.switch_list); + //如果后台有开启等级价的功能 + if(parseInt(s_list.rank_switch)==2){ + var user=getApp().globalData.userInfo; + var str = user['card_expiredate'].replace(/-/g, '/'); + var end = new Date(str); + end = Date.parse(end) / 1000; + var now = ut.gettimestamp(); + //--- 判断是等级会员,且在有效期范围内 --- + if(user.card_field && now{ + gg=res.data.data; + }) + var limit = gg.viplimited; + var store_count = gg.store_count; + + //---要获得商品,该用户买了多少件,同步应用--- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: os.stoid, + user_id: getApp().globalData.user_id, + goods_id: good.goods_id, + prom_type: good.prom_type, + prom_id: good.prom_id + }, + }).then(res => { + var buy_num_data = res.data.data; + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; + goodsbuynum = buy_num_data.goodsbuynum; + }) + + var buyed_mum2=goodsbuynum+good.goods_num; + if (buyed_mum2 > limit && limit > 0) { + wx.showModal({ + title: '提示', + content: gg.goods_name+'购买数量超出商品限购' + }); + 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; + } + + }else{ + + if(gg.prom_type==1 || gg.prom_type==6){ + var prom=null; + //---如果是活动的时候--- + var prom=null,th=this; + if(gg.prom_type==1){ + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + if(gg.prom_type==6){ + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + + if(prom){ + var t_now=ut.gettimestamp(); + if(prom.is_end==0 && prom.start_timet_now){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的活动发生了变化' + }); + return false; + } + } + } + + + var isok=1; + var card_field=th.data.card_field; + //如果会员是等级会员,商品有等级价,且不是活动商品 + if(card_field && gg[card_field]>0){ + if (good.goods_price != gg[card_field]) isok = 0; + }else{ + if (good.goods_price != gg.shop_price) isok = 0; + + } + if(!isok){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的价格发生了变化' + }); + return false; + } + + //--如果是线下库存的时候-- + if(th.data.conf.sales_rules==2){ + var ob={}; + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ + ob=obj; + }) + if(ob.code==-1){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'门店库存不足' + }); + return false; + } + + }else{ + if(good.goods_num>store_count){ + wx.showModal({ + title: '提示', + content: gg.goods_name+'商品的库存不足' + }); + return false; + } + + } + } + + console.log("------------------------------------"); + + var prom=null; + //---如果是活动的时候--- + var prom=null,goodsinfo=good,th=this; + if(goodsinfo.prom_type==1){ + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + if(goodsinfo.prom_type==6){ + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ + }).then(res=>{ + if(res.data.code==0){ + prom=res.data.data; + } + }) + } + //----------如果有活动,并且在进行中,就不计算线下库存--------------- + if(prom){ + var now=ut.gettimestamp(); + if(prom.is_end==1 && prom.end_time prom.buy_limit && prom.buy_limit > 0) { + wx.showModal({ + title: '提示', + content: goodsinfo.goods_name+'购买数量超出商品活动限购' + }); + return false; + } + + var redis_num = 0; + //------判断活动是否抢光----- + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, { + }).then(res => { + redis_num = res.data.data; + }); + + if (good.goods_num > redis_num) { + wx.showModal({ + title: gg.goods_name+'超出商品活动库存', + }); + return false; + } + } + + + } + th.pay_next(e); }, - + + + pay_next(e){ + if (e.order_amount == 0) { + var dd = { + parent_sn: e.order_sn, + store_id: e.store_id, + type: 1, + }; + getApp().request.post("/api/weshop/order/pay/createOrder", { + data: dd, + success: function(t) { + if (t.data.code == 0) { + th.onload(); + } else { + getApp().confirmBox(t.data.msg + "请您取消该订单"); + } + } + }) + return false; + } + a.jumpToCart4({ + order_sn: e.order_sn, + order_amount: e.order_amount, + type: 1 //正常单 + }); + }, + + //---检验线下库存的数量的子函数--- + async check_down_line_next(gg,num,pick_id,func){ + + var lock=0,pick_no,plist; + //先读取门店的lock + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ + data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_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; + } + }) + //先获取门店的编号 + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{ + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id} + }).then(res=>{ + if(res.data.code==0){ + pick_no=res.data.data.pickup_no; + } + }) + //读取线下的门店库存 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid} + }).then(res=>{ + if(res.data.code==0){ + plist=res.data.data.pageData[0]; + } + }) + var ob={}; ob.code=1; + if(num>plist.CanOutQty-lock){ + ob.code=-1; + ob.CanOutQty=plist.CanOutQty-lock + if(ob.CanOutQty<0) ob.CanOutQty=0; + } + func(ob) + }, + + + //------图片失败,默认图片--------- bind_bnerr: function(e) { var _errImg = e.currentTarget.dataset.errorimg; diff --git a/pages/user/order_list/order_list.wxml b/pages/user/order_list/order_list.wxml index 078d4b9..335bf1a 100644 --- a/pages/user/order_list/order_list.wxml +++ b/pages/user/order_list/order_list.wxml @@ -24,16 +24,20 @@ 待收货 待评价 已评价 - 已取消 + 已取消 + + 待支付尾款 退款成功 支付尾款失败 退款中 + + @@ -126,8 +130,6 @@ - - 已取消 取消订单 拼团失败 @@ -136,7 +138,7 @@ 申请退款 - 删除订单 + 删除订单 重新退款 退款详情 diff --git a/pages/user/order_list/order_list.wxss b/pages/user/order_list/order_list.wxss index c5f5be2..a63509b 100644 --- a/pages/user/order_list/order_list.wxss +++ b/pages/user/order_list/order_list.wxss @@ -152,8 +152,8 @@ page { } .Commodity_number .lin { - border-left: 2rpx solid rgb(129, 65, 81); - margin: 0rpx 15rpx; + border-right: 1rpx solid #C4182E; + margin: 0rpx 11rpx; width: 2rpx; height: 31rpx; }