From d89736172ccc29b7af4f22be495b8d3206474f0c Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Wed, 19 May 2021 14:32:22 +0800 Subject: [PATCH] 1、 OA单 2. 5点优化 3. 服务卡项加入购物车购买流程 --- app.json | 3 ++- packageA/pages/cart2_ser/cart2_ser.js | 301 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------- packageA/pages/cart2_ser/cart2_ser.wxml | 45 +++++++++++++++++++++++++++++++++++---------- packageA/pages/goodsInfo/goodsInfo.js | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- packageA/pages/goodsInfo/goodsInfo.wxml | 4 ++-- pages/cart/cart/cart.js | 1099 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- pages/cart/cart/cart.wxml | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ pages/cart/cart/cart.wxss | 1 + pages/goods/goodsInfo/goodsInfo.js | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------- pages/goods/goodsInfo/goodsInfo.wxml | 4 ++-- pages/index/index/index.js | 11 ++++++++--- pages/team/team_more/team_more.js | 2 +- pages/togoin/togoin.js | 5 +++++ pages/user/index/index.js | 9 +++++++++ pages/user/index/index.wxml | 4 ++-- pages/user/my_service/appment_main.js | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ pages/user/plus/plus.js | 69 +++++++++++++++++++++++++++++++++++++++------------------------------ pages/user/plus/plus.wxml | 58 +++++++++++++++++++++++++++++----------------------------- 18 files changed, 1488 insertions(+), 459 deletions(-) diff --git a/app.json b/app.json index 1556432..2880bf2 100644 --- a/app.json +++ b/app.json @@ -137,7 +137,8 @@ "pages/my_service/tment_order_list", "pages/my_service/beauty_deta", "pages/profile/profile", - "pages/parseHtml/parseHtml" + "pages/parseHtml/parseHtml", + "pages/cart2_ser/cart2_ser" ] diff --git a/packageA/pages/cart2_ser/cart2_ser.js b/packageA/pages/cart2_ser/cart2_ser.js index fb3c9e9..87a733c 100644 --- a/packageA/pages/cart2_ser/cart2_ser.js +++ b/packageA/pages/cart2_ser/cart2_ser.js @@ -38,8 +38,8 @@ Page({ bn_pickname: "", //选择的门店名称 /*------------------------*/ - //判断页面是返回回来的还是 首次进入的 yuer:0, + is_cart:0, //是不是购物车进来的购买 }, onLoad: function(t) { wx.setNavigationBarTitle({ @@ -48,7 +48,11 @@ Page({ var appD=getApp().globalData.service_now; this.data.postdata=appD; - this.data.param=t; + this.data.param=t; + if(t.is_cart){ + this.setData({is_cart:1}); + } + var th=this; getApp().promiseGet("/api/wx/weappSendlist/page", { @@ -71,7 +75,6 @@ Page({ to.auth.get_u(func); }, - //----------------展示页面,是再获取用户信息之后-------------- show_page:function(){ var th=this; @@ -84,7 +87,15 @@ Page({ getApp().globalData.userInfo = e.data.data; th.setData({userinfo:e.data.data}); //获取立即购买的商品信息 - th.get_buy_goods(); + if(th.data.is_cart){ + //读取门店 + to.get_allsto(function (e) { + th.setData({ allsto: e }); + th.get_cart(); + }) + }else{ + th.get_buy_goods(); + } //获取提现金额 getApp().request.get("/api/weshop/withdrawals/summoney", { @@ -101,6 +112,75 @@ Page({ }); }, + //-----获取购物车,入口-------- + get_cart: function () { + var th = this,app=getApp(); + a.get("/api/weshop/cartService/page", { + data: { + user_id: to.globalData.user_id, selected:1, + store_id: oo.stoid, pageSize: 600 }, + success:async function (su) { + //按门店分类的数组 + var arr = new Array(); + var carr = su.data.data.pageData; + th.data.cartlist_y = carr; //存储原始购物车列表 + + //---是不是购买等级卡成功的返回---等级卡显示的判断--- + var is_card_back=getApp().globalData.is_card_back; + + + //在分组的时候,就不要再调用接口,await + for (var i = 0; i < carr.length; i++) { + var good=null; + var item = carr[i]; + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { + good = res.data.data; + }) + + item.img_url = oo.imghost + good.img_url; + item.erpItemID=good.erpItemID; + + /*----接口要弄出来的,先顶着-----*/ + var pcid = item.pick_id; + var find = 0; + //----如果有就加进去,没有就新增一个---- + //-----------循环查找门店------------- + if (arr.length > 0) { + for (var j = 0; j < arr.length; j++) { + if (arr[j].pickup_id == pcid) { + arr[j].goods.push(item); + find = 1;break; + } + } + } + //------如果没有找到----- + if (find == 0) { + var pikname = '',sto=null; + //----找到门店名称----- + for (var k = 0; k < th.data.allsto.length; k++) { + if (pcid == th.data.allsto[k].pickup_id) { + pikname = th.data.allsto[k].pickup_name; sto = th.data.allsto[k]; break; + } + } + var narr = new Array(); narr.push(item); + var ie = { + pickup_id: pcid, pname: pikname, goods: narr,keyid:sto.keyid, + goods_price: 0, shipping_price: 0, user_money: 0, total_amount: 0, order_amount: 0}; + arr.push(ie); + + } + } + + //深拷贝 + th.data.old_cartlist= JSON.parse(JSON.stringify(arr)); + th.setData({ + cartlist: arr, + }); + th.calculatePrice(); + } + }); + }, + //-----获取立即购买的商品信息---- get_buy_goods: function (){ var th=this,a=getApp().request; @@ -147,7 +227,117 @@ Page({ invoiceToggle: !this.data.invoiceToggle }); }, - + + + //-------------------计算购物车订单价格------------------- + calculatePrice: function() { + var th = this; + to.getConfig2(async function(ee){ + wx.showLoading({ + title:"处理中." + }) + var all_price=0; //所有的商品总价 + var all_shipping_m= 0; //所有的物流总价 + var all_total_m = 0; //所有的订单应付总价 + var all_order_m = 0; //所有的订单应付总价 + var all_user_m=0; //所有的订单用户使用金额 + var all_coupon_price_m=0; //所有的订单用户使用优惠券价格 + var all_cutprice=0; //所有的优惠减件 + var all_order_prom=0; //所有的订单优惠 + + var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money?th.data.userinfo.frozen_money:0); + var freight_free = ee.freight_free; //全场满多少包邮 + var no_ex_id=ee.no_ex_id; + var no_ex_good=null; + var by_qc={}; + var c_arr=JSON.parse(JSON.stringify(th.data.old_cartlist)); + + //---循环购物车--- + for(var i in c_arr){ + + var cart_item=c_arr[i]; //就是每一单的意思 + var pickid=cart_item.pickup_id; + var o_price=0; + var o_shipping_price=0,goods_weight=-1, goods_piece=-1; + var item=c_arr[i].goods; //就是每一单的从表的意思 + + //---如果有选择优惠券的情况下--- + var quan_price=0; + var coupon_price=0; + var quan_no= null; + + //--------循环计算总价----------- + for(var j=0;j cart_item.order_amount) { + cart_item.user_money = cart_item.order_amount; + umoney = umoney - cart_item.order_amount; + }else { + cart_item.user_money = umoney; + umoney=0; + } + + }else{ + //--------------如果使用余额,购物车购买--------------------- + if (th.data.js_use_money == 1) { + if (umoney > cart_item.order_amount) { + cart_item.user_money = cart_item.order_amount; + umoney = umoney - cart_item.order_amount; + }else { + cart_item.user_money = umoney; + umoney=0; + } + }else{ + cart_item.user_money=0; + } + } + all_price += parseFloat(f_o_price); + all_total_m += parseFloat(cart_item.total_amount); + all_shipping_m += parseFloat(cart_item.shipping_price); + all_order_m += parseFloat(cart_item.order_amount); + } + + + all_total_m = parseFloat(all_total_m).toFixed(2); + all_order_m = parseFloat(all_order_m).toFixed(2); + all_price = parseFloat(all_price).toFixed(2); + all_total_m = parseFloat(all_total_m).toFixed(2); + + var atxt = "formData.total_amount"; + var atxt1 = "formData.order_amount"; + var atxt2 = "formData.all_price"; + + th.setData({ [atxt]: all_total_m, [atxt1]: all_order_m, + [atxt2]: all_price,show_submit:1 + }) + th.data.order_prom_list_cart=c_arr; + wx.hideLoading(); + }); + }, //---------计算立即购买---------- calculatePrice2: function () { @@ -186,38 +376,73 @@ Page({ if(this.data.is_summit_ing==1) return false; //--提交中退出-- this.data.is_summit_ing=1; var th=this,pdata=new Array(); - var ff=true; + var item={ - 'user_id': to.globalData.user_id, - 'account': th.data.formData.order_amount, //使用余额 - 'store_id':oo.stoid, //商家 - 'list':new Array(), - }; - var gg = getApp().globalData.service_now; - var goods={ - 'card_id': th.data.bn_goods.id, - 'itemid': th.data.bn_goods.erpItemID, - 'qty': gg.goods_num, - 'price': th.data.formData.order_amount, - 'pickup_id':gg.pick_id, - 'pickup_keyid':gg.keyid, - }; - - //--导购分享过来的id-- - if(gg.guide_id){ - goods.guide_id=gg.guide_id; - goods.guide_type=gg.guide_type; - //调用接口判断是不是会员 - await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ - if(res.data.code==0){ - goods.guide_name=res.data.data.salesman; - goods.guide_sn=res.data.data.salesman_no; - } - }) + 'user_id': to.globalData.user_id, + 'account': th.data.formData.order_amount, //使用余额 + 'store_id':oo.stoid, //商家 + 'list':new Array(), + }; + + //判断是不是购物车购买还是立即购买 + if(this.data.is_cart){ + var list= th.data.cartlist; + for(var i in list){ + var gglist = list[i].goods; + for(var j in gglist){ + var gg=gglist[j]; + var goods={ + 'card_id': gg.service_id, + 'itemid': gg.erpItemID, + 'qty': gg.goods_num, + 'price': gg.money, + 'pickup_id':gg.pick_id, + 'pickup_keyid':list[i].keyid, + }; + //--导购分享过来的id-- + if(gg.guide_id){ + goods.guide_id=gg.guide_id; + goods.guide_type=gg.guide_type; + //调用接口判断是不是会员 + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ + if(res.data.code==0){ + goods.guide_name=res.data.data.salesman; + goods.guide_sn=res.data.data.salesman_no; + } + }) + } + item.list.push(goods); + } + } + }else{ + + var gg = getApp().globalData.service_now; + var goods={ + 'card_id': th.data.bn_goods.id, + 'itemid': th.data.bn_goods.erpItemID, + 'qty': gg.goods_num, + 'price': th.data.formData.order_amount, + 'pickup_id':gg.pick_id, + 'pickup_keyid':gg.keyid, + }; + + //--导购分享过来的id-- + if(gg.guide_id){ + goods.guide_id=gg.guide_id; + goods.guide_type=gg.guide_type; + //调用接口判断是不是会员 + await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/"+oo.stoid+"/"+gg.guide_id,{}).then(res=>{ + if(res.data.code==0){ + goods.guide_name=res.data.data.salesman; + goods.guide_sn=res.data.data.salesman_no; + } + }) + } + item.list.push(goods); } - item.list.push(goods); + + pdata=item; - var str = JSON.stringify(pdata); console.log("支付数据"); console.log(str); @@ -236,7 +461,13 @@ Page({ if (res.statusCode == 200) { var data=res.data; if(data.code==0){ - + if(th.data.is_cart){ + var list = th.data.cartlist_y; + for (var i = 0; i < list.length; i++) { + //删除购物车 + a.delete("/api/weshop/cartService/del/" + oo.stoid + "/" + list[i].id, {}); + } + } var order_amount = pdata.account; //要进行判断,如果是用微信支付,就要跳转到支付界面 if (order_amount > 0) { diff --git a/packageA/pages/cart2_ser/cart2_ser.wxml b/packageA/pages/cart2_ser/cart2_ser.wxml index 4fe080a..45890cd 100644 --- a/packageA/pages/cart2_ser/cart2_ser.wxml +++ b/packageA/pages/cart2_ser/cart2_ser.wxml @@ -1,9 +1,36 @@
- + + + + + + + + {{item.pname}} + + + + + + + + + + {{items.service_name}} + + + {{filters.toFix(items.money,2)}} + x{{items.goods_num}} + + + + + + - + {{bn_pickname}} @@ -24,14 +51,12 @@ - - + + + + + + diff --git a/packageA/pages/goodsInfo/goodsInfo.js b/packageA/pages/goodsInfo/goodsInfo.js index 8233b89..a1d77df 100644 --- a/packageA/pages/goodsInfo/goodsInfo.js +++ b/packageA/pages/goodsInfo/goodsInfo.js @@ -400,8 +400,9 @@ Page({ 'data.goods_id': t.data.data.id, 'data.id': t.data.data.id, 'data.sales_sum': t.data.data.sales_sum, - 'data.storageId':t.data.data.storageId - }); + 'data.storageId':t.data.data.storageId, + 'data.service_sn':t.data.data.serviceSn, + }); //-----商品详情--- @@ -522,9 +523,77 @@ Page({ newd['pick_name'] = th.data.sto_sele_name; newd['guide_id'] = getApp().globalData.guide_id; newd['guide_type']=0; - th.buyNow(newd); - } + }else{ + + var newd = { + service_id: th.data.data.id, + service_sn:th.data.data.service_sn, + service_name:th.data.data.goods_name, + goods_num: th.data.goodsInputNum, + pick_id: th.data.sto_sele_id, + user_id:oo.user_id, + store_id:os.stoid, + money:th.data.data.shop_price + }; + if(getApp().globalData.guide_id){ + newd['guide_id'] = getApp().globalData.guide_id; + newd['guide_type']=0; + } + + //----先看会员在购物车中是否加入了该商品----- + getApp().request.get("/api/weshop/cartService/page", { + data: { + store_id: os.stoid, + user_id: oo.user_id, + service_id: th.data.data.id, + pick_id: th.data.sto_sele_id, + }, + success: function(re) { + + //-------如果购物车中有相关的数据--------- + if (re.data.data.total > 0) { + var item = re.data.data.pageData[0]; + var updata = { + id: item.id, + goods_num: th.data.goodsInputNum + item.goods_num, + money: th.data.data.shop_price, + store_id: os.stoid, + }; + + if (getApp().globalData.guide_id) { + updata['guide_id'] = getApp().globalData.guide_id; + updata['guide_type'] = 1; + } + getApp().request.put("/api/weshop/cartService/update", { + data: updata, + success: function(t) { + getApp().my_warnning('加入购物车成功', 1, th, 450); + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; + th.setData({ + cartGoodsNum: c_num + }); + th.closeSpecModal(); + } + }); + } else { + + getApp().request.post("/api/weshop/cartService/save", { + data: newd, + success: function(t) { + getApp().my_warnning('加入购物车成功', 1, th, 450); + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; + th.setData({ + cartGoodsNum: c_num + }); + th.closeSpecModal(); + } + }); + } + } + }); + + } }, diff --git a/packageA/pages/goodsInfo/goodsInfo.wxml b/packageA/pages/goodsInfo/goodsInfo.wxml index 9491caa..fe21a4e 100644 --- a/packageA/pages/goodsInfo/goodsInfo.wxml +++ b/packageA/pages/goodsInfo/goodsInfo.wxml @@ -160,8 +160,8 @@ - - 立即购买 + 加入购物车 + 立即购买 diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 9b49260..8520aa9 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -29,6 +29,8 @@ Page({ card_field:"", bconf:null, btn_click:1, + + service_data:null, }, onLoad: function() { var a = this,ee=a; @@ -124,10 +126,7 @@ Page({ } }) - - - - + }, onHide(){ @@ -147,9 +146,11 @@ Page({ allsto: e }); th.get_cart(); + th.get_ser_cart(); }) } else { th.get_cart(); + th.get_ser_cart(); } //要获取会员是不是等级会员 @@ -172,10 +173,18 @@ Page({ } } }) - - + if( (!this.data.requestData || this.data.requestData.length==0) && (!this.data.service_data || this.data.service_data.length==0)) { + setTimeout(function () { + var goods_list = th.selectComponent("#goods_list"); //组件的id + if(goods_list){ + goods_list.init(); + goods_list.get_list(); + } + }, 800) + } }, - //-----真的获取购物车-------- + + //-----真的获取购物车-------- get_cart: function() { var th = this; var rd = Math.random().toString(36).substr(2, 15); @@ -328,13 +337,7 @@ Page({ } } - if(arr.length==0) { - setTimeout(function () { - var goods_list = th.selectComponent("#goods_list"); //组件的id - goods_list.init(); - goods_list.get_list(); - }, 800) - } + if(th.data.is_open_offline && th.data.is_open_offline>0){ //-- 此时要实时更新线下取价价格 -- @@ -357,6 +360,106 @@ Page({ }); }, + //-----真的获取购物车-------- + get_ser_cart: function() { + var th = this; + var rd = Math.random().toString(36).substr(2, 15); + getApp().request.get("/api/weshop/cartService/page", { + data: { + user_id: app.globalData.user_id, + rd: rd, + store_id: oo.stoid, + pageSize: 600, + }, + success:async function(su) { + //按门店分类的数组 + var arr = new Array(), + carr = su.data.data.pageData; + var all_num = 0; + + if(carr && carr.length>0) { + for (var i = 0; i < carr.length; i++) { + var item = carr[i]; + var good = null; + + await getApp().request.promiseGet("/api/weshop/serviceCard/get/" + oo.stoid + "/" + item.service_id, {}).then(res => { + good = res.data.data; + }) + if(!good){ + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + getApp().request.delete(url, { + success: function (t) { + } + }); + continue; + } + + + //如果商品下架了,或者商品是赠品,一开始都要清除 + if (good.is_show == 0) { + var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; + getApp().request.delete(url, { + success: function (t) { + } + }); + //商品已经下架 + continue; + } + + all_num += item.goods_num; + item.img_url = oo.imghost + good.imgUrl; + item.selected = 0; + + + var pcid = item.pick_id; + var find = 0; + //---------循环查找门店--- + if (arr.length > 0) { + for (var j = 0; j < arr.length; j++) { + if (arr[j].pid == pcid) { + arr[j].goods.push(item); + find = 1; + break; + } + } + } + + //------如果没有找到----- + if (find == 0) { + var pikname = ''; + //找到门店名称 + for (var k = 0; k < th.data.allsto.length; k++) { + if (pcid == th.data.allsto[k].pickup_id) { + pikname = th.data.allsto[k].pickup_name; + break; + } + } + var narr = new Array(); + narr.push(item); + var ie = { + pid: pcid, + pname: pikname, + goods: narr, + selected: 0 + }; + arr.push(ie); + } + } + } + + + th.setData({ + service_data: arr, + all_num2: all_num, + is_edit: 0 + }), + th.doCheckAll(), wx.stopPullDownRefresh(); + + } + }); + }, + + //设置莫个门店的所有线下价格 async set_offline(list){ var th=this; @@ -444,7 +547,6 @@ Page({ }; th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); } - }, //-------------加数量--------------------- @@ -464,7 +566,6 @@ Page({ goods_id: a.goods_id, store_id: oo.stoid }; - isShowLoading: 0; this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); } else { wx.showModal({ @@ -500,66 +601,180 @@ Page({ this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); } }, - //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- + + + //-----------------点击输入修改商品数量--------------- + valueToNum_ser: function(t) { + if(!this.data.is_load) return false; + //控制住,避免事件响应冲突,只有input有输入的时候,才刷新 + if(this.data.btn_click){ + return false; + } + this.data.btn_click=1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.service_data[b].goods[a]; + var e = a; + var th=this; + + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { + var s = { + goods_num: a, + goods_id: e.goods_id, + id: e.id, + store_id: oo.stoid + }; + th.postCardList_ser(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + }, + //-------------加数量--------------------- + addNum_ser: function(t) { + if(!this.data.is_load) return false; + if (this.data.up_dating == 1) return false; + this.data.up_dating = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.service_data[b].goods[a]; + + var e = { + goods_num: a.goods_num + 1, + id: a.id, + goods_id: a.goods_id, + store_id: oo.stoid + }; + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + + }, + //-------------减数量--------------------- + subNum_ser: function(t) { + if(!this.data.is_load) return false; + if (this.data.up_dating == 1) return false; + this.data.up_dating = 1; + + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.service_data[b].goods[a]; + this.data.btn_click=1; + + if (a.goods_num - 1 < 0){ + this.data.up_dating = 0; + return false; + } + + if (1 != a.goods_num) { + var e = { + goods_num: a.goods_num - 1, + id: a.id, + goods_id: a.goods_id, + store_id: oo.stoid + }; + this.postCardList_ser(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + }, + + + //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- checkAll: function() { var e = this, dda = e.data.requestData, + sdda = e.data.service_data, tfeel = 0, t_num = 0, text_arr = ""; + + if(e.data.requestData && e.data.requestData.length>0 + && e.data.service_data && e.data.service_data.length>0){ + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + this.data.btn_click=1; - for (var i = 0; i < dda.length; i++) { - var item = dda[i].goods; - if (!e.data.checkAllToggle) { - var txt = "requestData[" + i + "].selected"; - e.setData({ - [txt]: 0, - }); - } - var fir = 0; - for (var j = 0; j < item.length; j++) { - if(item[j].is_gift) continue; - if (fir == 0) { - fir = item[j].distr_type; - } else { - //如果同一门店有不同门店的商品,不能同一配送 - if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { - text_arr += item[j].goods_name + " "; - break; + if(dda && dda.length>0){ + for (var i = 0; i < dda.length; i++) { + var item = dda[i].goods; + if (!e.data.checkAllToggle) { + var txt = "requestData[" + i + "].selected"; + e.setData({ + [txt]: 0, + }); + } + var fir = 0; + for (var j = 0; j < item.length; j++) { + if(item[j].is_gift) continue; + if (fir == 0) { + fir = item[j].distr_type; + } else { + //如果同一门店有不同门店的商品,不能同一配送 + if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) { + text_arr += item[j].goods_name + " "; + break; + } + } + var txt = "requestData[" + i + "].goods[" + j + "].selected" + e.setData({ + [txt]: !e.data.checkAllToggle, + }) + if (!e.data.checkAllToggle) { + tfeel += item[j].goods_num * item[j].goods_price; + t_num += item[j].goods_num; } } - var txt = "requestData[" + i + "].goods[" + j + "].selected" + } + + if (text_arr != "") { + wx.showModal({ + title: '提示', + content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' + }); + return false; + } else { e.setData({ - [txt]: !e.data.checkAllToggle, - }) - if (!e.data.checkAllToggle) { - tfeel += item[j].goods_num * item[j].goods_price; - t_num += item[j].goods_num; + checkAllToggle: !e.data.checkAllToggle, + total_fee: tfeel.toFixed(2), + total_num: t_num, + }); + + for(var i in e.data.requestData){ + e.check_prom_activity(i) } } } - if (text_arr != "") { - wx.showModal({ - title: '提示', - content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致' - }); - return false; - } else { + if(sdda && sdda.length>0){ + for (var i = 0; i < sdda.length; i++) { + var item = sdda[i].goods; + if (!e.data.checkAllToggle) { + var txt = "service_data[" + i + "].selected"; + e.setData({ + [txt]: 0, + }); + } + var fir = 0; + for (var j = 0; j < item.length; j++) { + var txt = "service_data[" + i + "].goods[" + j + "].selected" + e.setData({ + [txt]: !e.data.checkAllToggle, + }) + if (!e.data.checkAllToggle) { + tfeel += item[j].goods_num * item[j].money; + t_num += item[j].goods_num; + } + } + } e.setData({ checkAllToggle: !e.data.checkAllToggle, total_fee: tfeel.toFixed(2), total_num: t_num, }); - - for(var i in e.data.requestData){ - e.check_prom_activity(i) - } - } - }, + }, //------门店全选按钮,要判断是否门店的匹配方式一致--------- check_th_all_item:async function(ele) { var e = this, @@ -567,10 +782,32 @@ Page({ item = this.data.requestData[pitems].goods, sele = this.data.requestData[pitems].selected; this.data.btn_click=1; + var garr=e.data.service_data; var isok = 1, fir = 0, iarr = item; + + if(!sele){ + var check_is_service_selected=0; + for (var ii in garr){ + for (var ij in garr[ii].goods){ + if( garr[ii].goods[ij].selected){ + check_is_service_selected=1; + break; + } + } + } + + if(check_is_service_selected){ + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } + if (!sele && item.length > 0) { for (var i = 0; i < iarr.length; i++) { if(iarr[i].is_gift==1) continue; @@ -612,7 +849,6 @@ Page({ } this.doCheckAll(); }, - //---------------单选,也要判断门店的配送方式是否一致-------------- check_th_item: async function(t) { var e = this, @@ -622,13 +858,32 @@ Page({ var isok = 1,fir = 0; var iarr = e.data.requestData[pitems].goods; this.data.btn_click=1; - + var garr= e.data.service_data; + + if (!a.selected) { + var check_is_service_selected = 0; + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_service_selected = 1; + break; + } + } + } + if (check_is_service_selected) { + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } //当数量大于1,且是选择的时候 if (iarr.length > 1 && !a.selected) { + for (var i = 0; i < iarr.length; i++) { if(iarr[i].is_gift==1) continue; - //---当不是本身选择项目---- var sel = iarr[i].selected; if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) { @@ -662,10 +917,93 @@ Page({ if(i!=pitems) await e.check_prom_activity(i); } } - this.doCheckAll(); } }, + + //------门店全选按钮,要判断是否门店的匹配方式一致--------- + check_th_all_item_ser:async function(ele) { + var e = this, + pitems = ele.currentTarget.dataset.pitems, + item = this.data.service_data[pitems].goods, + sele = this.data.service_data[pitems].selected; + this.data.btn_click=1; + var garr= e.data.requestData; + + var isok = 1, + fir = 0, + iarr = item; + + if(!sele){ + var check_is_goods_selected=0; + for (var ii in garr){ + for (var ij in garr[ii].goods){ + if( garr[ii].goods[ij].selected){ + check_is_goods_selected=1; + break; + } + } + } + if(check_is_goods_selected){ + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } + + for (var i = 0; i < item.length; i++) { + var txt = "service_data[" + pitems + "].goods[" + i + "].selected"; + e.setData({ + [txt]: Number(!sele), + }); + } + var txt = "service_data[" + pitems + "].selected"; + e.setData({ + [txt]: Number(!sele), + }); + this.doCheckAll(); + }, + //---------------单选,也要判断门店的配送方式是否一致-------------- + check_th_item_ser: async function(t) { + var e = this, + item = t.currentTarget.dataset.item, + pitems = t.currentTarget.dataset.pitems; + a = this.data.service_data[pitems].goods[item]; + var isok = 1,fir = 0; + var iarr = e.data.service_data[pitems].goods; + this.data.btn_click=1; + + var garr= e.data.requestData; + + if(!a.selected){ + var check_is_goods_selected=0; + for (var ii in garr){ + for (var ij in garr[ii].goods){ + if( garr[ii].goods[ij].selected){ + check_is_goods_selected=1; + break; + } + } + } + + if(check_is_goods_selected){ + wx.showModal({ + title: '提示', + content: '服务卡项目不能和商品一起选择' + }); + return false; + } + } + + var txt = "service_data[" + pitems + "].goods[" + item + "].selected"; + e.setData({ + [txt]: Number(!a.selected), + }); + this.doCheckAll(); + }, + //----------检查是否全选--------- doCheckAll: function() { var th = this, @@ -673,49 +1011,80 @@ Page({ t_num = 0, ischeck = 1, car = this.data.requestData, + car2 = this.data.service_data, all_num = 0; - for (var a = 0; a < car.length; a++) { - var c_item=car[a]; - var item = car[a].goods, - is_s_sele = 1; - var offline_price=0; - var offline_num=0; - for (var c = 0; c < item.length; c++) { - if(item[c].is_gift) continue; - all_num += item[c].goods_num; - if (item[c].selected == 0) { - ischeck = 0; - is_s_sele = 0; - } else { - tfeel += item[c].goods_num * item[c].goods_price; - t_num += item[c].goods_num; + //-- 购物车 -- + if(car && car.length>0){ + for (var a = 0; a < car.length; a++) { + var c_item=car[a]; + var item = car[a].goods, + is_s_sele = 1; + var offline_price=0; + var offline_num=0; + for (var c = 0; c < item.length; c++) { + if(item[c].is_gift) continue; + all_num += item[c].goods_num; + if (item[c].selected == 0) { + ischeck = 0; + is_s_sele = 0; + } else { + tfeel += item[c].goods_num * item[c].goods_price; + t_num += item[c].goods_num; + } + + //-- 如果这个商品是线下取价的时候 -- + if(item[c].is_offline){ + offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; + offline_num+=item[c].goods_num; + } + } - //-- 如果这个商品是线下取价的时候 -- - if(item[c].is_offline){ - offline_price+= (item[c].goods_price-item[c].offline_price)*item[c].goods_num; - offline_num+=item[c].goods_num; + var txt = "requestData[" + a + "].selected"; + th.setData({ + [txt]: Number(is_s_sele) + }); + + //当有线下取价的时候 + if(offline_price){ + var txt1= "requestData[" + a + "].offline_price"; + var txt2= "requestData[" + a + "].offline_num"; + th.setData({ + [txt1]: offline_price.toFixed(2), + [txt2]: offline_num, + }); } } + } - var txt = "requestData[" + a + "].selected"; - th.setData({ - [txt]: Number(is_s_sele) - }); + //-- 服务卡 -- + if(car2 && car2.length>0){ + for (var a = 0; a < car2.length; a++) { + var c_item=car2[a]; + var item = car2[a].goods, is_s_sele = 1; + + for (var c = 0; c < item.length; c++) { + if(item[c].is_gift) continue; + all_num += item[c].goods_num; + if (item[c].selected == 0) { + ischeck = 0; + is_s_sele = 0; + } else { + tfeel += item[c].goods_num * item[c].money; + t_num += item[c].goods_num; + } + + } - //当有线下取价的时候 - if(offline_price){ - var txt1= "requestData[" + a + "].offline_price"; - var txt2= "requestData[" + a + "].offline_num"; + var txt = "service_data[" + a + "].selected"; th.setData({ - [txt1]: offline_price.toFixed(2), - [txt2]: offline_num, + [txt]: Number(is_s_sele) }); } - } + this.setData({ checkAllToggle: ischeck, total_fee: tfeel.toFixed(2), @@ -904,6 +1273,20 @@ Page({ }); }, + //----------------------更新购物数量,加减,调用接口--------------------- + postCardList_ser: function(t, item, pitem) { + var e = this,th=e; + var user_id = getApp().globalData.user_id; + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: t.goods_num + }); + e.doCheckAll(); + e.update_cart_ser(t, pitem, item); + }, + + + //---检验线下库存的数量--- async check_down_line(t, pitem, item,erpwareid){ var ob={},th=this; @@ -993,6 +1376,25 @@ Page({ }); }, + //--更新购物车--- + update_cart_ser: function(t, pitem, item) { + var e = this; + getApp().request.put("/api/weshop/cartService/update", { + data: t, + success:async function(ee) { + var txt = "service_data[" + pitem + "].goods[" + item + "].goods_num"; + e.setData({ + [txt]: t.goods_num, + }); + e.doCheckAll(); + getApp().requestCardNum(e); + } + }); + }, + + + + //-------下拉刷新--------- onPullDownRefresh: function(t) { this.getCardList(); @@ -1008,259 +1410,293 @@ Page({ }) } - var glist = ""; //用逗号隔开的 - var map = new Map(); //使用map值键进行运算 - var map_limit = new Map(); //使用map值键进行存储限购 - var g_arr = new Array(); //已选的商品列表 - var user_id = getApp().globalData.user_id; - var th = this; - //用于判断是不是积分购的普通购买 - var normal_arr={}; - var ab = 0; //选中 - 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++) { - if (i_arr[j].selected && i_arr[j].is_gift!=1) { - - if(i_arr[j].is_pd_normal) { - normal_arr[i_arr[j].goods_id]=1; - } - //map 的key是不会重复,会覆盖,, - var ie = { - goods_id: i_arr[j].goods_id, - id: i_arr[j].id, - goods_price: i_arr[j].goods_price, - }; - //判断是不是线下取价 - if(i_arr[j].is_offline){ - ie.is_offline=i_arr[j].is_offline; - ie.offline_price=i_arr[j].offline_price; - ie.pricing_type=i_arr[j].pricing_type; - } - g_arr.push(ie); - - if (map.has(i_arr[j].goods_id + "")) { - var num11 = map.get(i_arr[j].goods_id + ""); - var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); - map.set(i_arr[j].goods_id + "", num22); - } else { - map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); + var garr=this.data.requestData; + var check_is_goods_selected=0; + if(garr) { + for (var ii in garr) { + for (var ij in garr[ii].goods) { + if (garr[ii].goods[ij].selected) { + check_is_goods_selected = 1; + break; } - glist += i_arr[j].goods_id + ","; - ab = 1; - //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- - if((i_arr[j].prom_type==0 || i_arr[j].prom_type==3 || i_arr[j].prom_type==5) && th.data.sales_rules==2 && i_arr[j].is_gift!=1){ - //--获取商品的线下商品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; + } + } + } + //-- 如果是商品的结算 -- + if(check_is_goods_selected) { + var glist = ""; //用逗号隔开的 + var map = new Map(); //使用map值键进行运算 + var map_limit = new Map(); //使用map值键进行存储限购 + var g_arr = new Array(); //已选的商品列表 + var user_id = getApp().globalData.user_id; + var th = this; + //用于判断是不是积分购的普通购买 + var normal_arr = {}; + var ab = 0; //选中 + 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++) { + if (i_arr[j].selected && i_arr[j].is_gift != 1) { + + if (i_arr[j].is_pd_normal) { + normal_arr[i_arr[j].goods_id] = 1; } - - var is_ok=1; - //如果是优惠活动话,要看活动有没有过期 - if(i_arr[j].prom_type==3){ - //判断有没有活动 - await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid+"/"+i_arr[j].goods_id+"/1", {}).then(res => { - if(res.data.code==0){ - if(!res.data.data.promGoodsLists){ - t.my_warnning(i_arr[j].goods_name+"优惠活动已经过期", 0, th); - wx.hideLoading(); - is_ok=0; - } - } - }) + //map 的key是不会重复,会覆盖,, + var ie = { + goods_id: i_arr[j].goods_id, + id: i_arr[j].id, + goods_price: i_arr[j].goods_price, + }; + //判断是不是线下取价 + if (i_arr[j].is_offline) { + ie.is_offline = i_arr[j].is_offline; + ie.offline_price = i_arr[j].offline_price; + ie.pricing_type = i_arr[j].pricing_type; } - if(!is_ok){return false;} - } + g_arr.push(ie); + + if (map.has(i_arr[j].goods_id + "")) { + var num11 = map.get(i_arr[j].goods_id + ""); + var num22 = parseInt(i_arr[j].goods_num) + parseInt(num11); + map.set(i_arr[j].goods_id + "", num22); + } else { + map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); + } + glist += i_arr[j].goods_id + ","; + ab = 1; + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存--- + if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5) && th.data.sales_rules == 2 && i_arr[j].is_gift != 1) { + //--获取商品的线下商品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 { - if(i_arr[j].is_gift==1) continue; - rq.put("/api/weshop/cart/update", { - data: { - id: i_arr[j].id, - selected: 0, - store_id: oo.stoid - }, - success: function(ee) { - console.log(ee); + var is_ok = 1; + //如果是优惠活动话,要看活动有没有过期 + if (i_arr[j].prom_type == 3) { + //判断有没有活动 + await getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid + "/" + i_arr[j].goods_id + "/1", {}).then(res => { + if (res.data.code == 0) { + if (!res.data.data.promGoodsLists) { + t.my_warnning(i_arr[j].goods_name + "优惠活动已经过期", 0, th); + wx.hideLoading(); + is_ok = 0; + } + } + }) + } + if (!is_ok) { + return false; + } } - }); - } - } - } - if (ab == 0) { - t.my_warnning("未选择商品", 0, th); - wx.hideLoading(); - return false; - } - glist = glist.substring(0, glist.length - 1); - //--取一下商品的限购 以及活动的限购,redis数量-- - rq.get("/api/weshop/goods/getGoodsListNum", { - data: { - goodsidlist: glist, - store_id: oo.stoid - }, - async success(ee) { - console.log(ee); - if (ee.data.code == 0) { - var ddata = ee.data.data, - isok = 1, - gname = "", - err = ""; - //--组装-- - for (var ij = 0; ij < ddata.length; ij++) { - var val = ddata[ij]; - var obj = map_limit.get(val.goods_id + ""); - if (obj) continue; - - var promgoodsbuynum = 0; - var goodsbuynum = 0; - //--要获得商品,该用户买了多少件,同步应用-- - await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + } else { + if (i_arr[j].is_gift == 1) continue; + rq.put("/api/weshop/cart/update", { data: { - store_id: oo.stoid, - user_id: user_id, - goods_id: val.goods_id, - prom_type: val.prom_type, - prom_id: val.prom_id + id: i_arr[j].id, + selected: 0, + store_id: oo.stoid }, - }).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 ie= { - promgoodsbuynum: promgoodsbuynum, - goodsbuynum: goodsbuynum - }; - map_limit.set(val.goods_id + "", ie); + success: function (ee) { + console.log(ee); + } + }); } + } + } + if (ab == 0) { + t.my_warnning("未选择商品", 0, th); + wx.hideLoading(); + return false; + } - try { - for(var ind in ddata) { - var val=ddata[ind]; - var num = map.get(val.goods_id + ""); - if (num <= 0) { - isok = 0; - gname = val.goods_name; - throw "购买数量不能为0"; - return false; - } + glist = glist.substring(0, glist.length - 1); + //--取一下商品的限购 以及活动的限购,redis数量-- + rq.get("/api/weshop/goods/getGoodsListNum", { + data: { + goodsidlist: glist, + store_id: oo.stoid + }, + async success(ee) { + console.log(ee); + if (ee.data.code == 0) { + var ddata = ee.data.data, + isok = 1, + gname = "", + err = ""; + //--组装-- + for (var ij = 0; ij < ddata.length; ij++) { + var val = ddata[ij]; + var obj = map_limit.get(val.goods_id + ""); + if (obj) continue; + + var promgoodsbuynum = 0; + var goodsbuynum = 0; + //--要获得商品,该用户买了多少件,同步应用-- + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { + data: { + store_id: oo.stoid, + user_id: user_id, + goods_id: val.goods_id, + prom_type: val.prom_type, + prom_id: val.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 ie = { + promgoodsbuynum: promgoodsbuynum, + goodsbuynum: goodsbuynum + }; + map_limit.set(val.goods_id + "", ie); + } - if(val.prom_type==1 || val.prom_type==6){ - if (num > val.store_count) { + try { + for (var ind in ddata) { + var val = ddata[ind]; + var num = map.get(val.goods_id + ""); + if (num <= 0) { isok = 0; gname = val.goods_name; - throw "超出库存"; + throw "购买数量不能为0"; return false; } - } - if(th.data.sales_rules!=2){ - if (num > val.store_count) { + 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 && !normal_arr[val.goods_id]) { isok = 0; gname = val.goods_name; - throw "超出库存"; + throw "超出活动库存"; + return false; + } + if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动库存"; return false; } - } - - if (num > val.redisnum && val.redisnum && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动库存"; - return false; - } - if (num > val.goods_num - val.buy_num && val.goods_num && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动库存"; - return false; - } - - var buyed = map_limit.get(val.goods_id + ""); - if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { - isok = 0; - gname = val.goods_name; - throw "超出商品限购"; - return false; - } - - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { - isok = 0; - gname = val.goods_name; - throw "超出活动限购"; - return false; - } + var buyed = map_limit.get(val.goods_id + ""); + if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) { + isok = 0; + gname = val.goods_name; + throw "超出商品限购"; + return false; + } - var card_field=th.data.card_field; - for (var i = 0; i < g_arr.length; i++) { - if (g_arr[i].goods_id == val.goods_id) { + if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0 && !normal_arr[val.goods_id]) { + isok = 0; + gname = val.goods_name; + throw "超出活动限购"; + return false; + } - //如果会员是等级会员,商品有等级价,且不是活动商品 - if(card_field && val[card_field]>0 && (val.prom_type==0 || val.prom_type==3 || val.prom_type==4 || val.prom_type==5 || normal_arr[val.goods_id]) ){ - if (g_arr[i].goods_price != val[card_field]){ - isok = 0; - gname = val.goods_name; - throw "商品价格已经变化"; - } - }else{ - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { - isok = 0; - gname = val.goods_name; - throw "商品价格已经变化"; + var card_field = th.data.card_field; + for (var i = 0; i < g_arr.length; i++) { + if (g_arr[i].goods_id == val.goods_id) { + + //如果会员是等级会员,商品有等级价,且不是活动商品 + if (card_field && val[card_field] > 0 && (val.prom_type == 0 || val.prom_type == 3 || val.prom_type == 4 || val.prom_type == 5 || normal_arr[val.goods_id])) { + if (g_arr[i].goods_price != val[card_field]) { + isok = 0; + gname = val.goods_name; + throw "商品价格已经变化"; + } + } else { + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { + isok = 0; + gname = val.goods_name; + throw "商品价格已经变化"; + } } - } - //-- 数据的更新 -- - var data={ - id: g_arr[i].id, - selected: 1, - store_id: oo.stoid - }; - //-- 如果有线下取价的时候 -- - if(g_arr[i].is_offline){ - data.pricing_type=g_arr[i].pricing_type; - data.offline_price=g_arr[i].offline_price; - } - rq.put("/api/weshop/cart/update", { - data: data, - success: function(ee) { - console.log(ee); + //-- 数据的更新 -- + var data = { + id: g_arr[i].id, + selected: 1, + store_id: oo.stoid + }; + //-- 如果有线下取价的时候 -- + if (g_arr[i].is_offline) { + data.pricing_type = g_arr[i].pricing_type; + data.offline_price = g_arr[i].offline_price; } - }); + rq.put("/api/weshop/cart/update", { + data: data, + success: function (ee) { + console.log(ee); + } + }); + } } - } + } + } catch (e) { + err = e; + } + if (isok == 0) { + t.confirmBox(gname + ":" + err); + wx.hideLoading(); + return false; } - } catch (e) { - err = e; - } - if (isok == 0) { - t.confirmBox(gname + ":" + err); wx.hideLoading(); - return false; + wx.navigateTo({ + url: "/pages/cart/cart2/cart2" + }); + } + } + }); + }else{ + //-- 开始服务卡的购物车购买 -- + for (var i = 0; i < this.data.service_data.length; i++) { + var i_arr = this.data.service_data[i].goods; + for (var j = 0; j < i_arr.length; j++) { + if (i_arr[j].selected) { + await rq.promisePut("/api/weshop/cartService/update", { + data: { + id: i_arr[j].id, + selected: 1, + store_id: oo.stoid + } + }); } - wx.hideLoading(); - wx.navigateTo({ - url: "/pages/cart/cart2/cart2" - }); } } - }); + wx.hideLoading(); + getApp().goto("/packageA/pages/cart2_ser/cart2_ser?is_cart=1"); + } }, //结算到最后一个商品 @@ -1302,11 +1738,12 @@ Page({ //--多个删除购物车商品--- check_del: function() { - var glist = ""; //用逗号隔开的 + var glist = "",slist=''; //用逗号隔开的 var user_id = getApp().globalData.user_id; var th = this; var ab = 0; //选中 + var abc=0; // 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++) { @@ -1317,18 +1754,42 @@ Page({ } } - if (ab == 0) { - t.my_warnning("未选择商品", 0, th); + for (var ii = 0; ii < this.data.service_data.length; ii++) { + var i_arr = this.data.service_data[ii].goods; + for (var jj = 0; jj < i_arr.length; jj++) { + if (i_arr[jj].selected) { + slist += i_arr[jj].id + ","; + abc = 1; + } + } + } + + if (ab == 0 && abc==0) { + t.my_warnning("未选择商品或者服务卡", 0, th); return false; } - glist = glist.substring(0, glist.length - 1); - //要删除购物车中的商品 - var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; - getApp().request.delete(url, { - success: function(t) { - th.getCardList(); - } - }); + + if(ab){ + glist = glist.substring(0, glist.length - 1); + //要删除购物车中的商品 + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + user_id + "/" + glist; + getApp().request.delete(url, { + success: function(t) { + th.getCardList(); + } + }); + } + if(abc){ + slist = slist.substring(0, slist.length - 1); + //要删除购物车中的商品 + var url = '/api/weshop/cartService/delIds/' + oo.stoid + '/' + user_id + "/" + slist; + getApp().request.delete(url, { + success: function(t) { + th.getCardList(); + } + }); + } + }, //跳到首页 goto: function(e) { diff --git a/pages/cart/cart/cart.wxml b/pages/cart/cart/cart.wxml index 4648b52..0c90842 100644 --- a/pages/cart/cart/cart.wxml +++ b/pages/cart/cart/cart.wxml @@ -13,19 +13,22 @@ - + @@ -156,7 +224,7 @@ - + @@ -169,7 +237,7 @@ - + diff --git a/pages/cart/cart/cart.wxss b/pages/cart/cart/cart.wxss index 36e86e1..a1602a5 100644 --- a/pages/cart/cart/cart.wxss +++ b/pages/cart/cart/cart.wxss @@ -352,3 +352,4 @@ page { } .quan_color{ background-color: #ff5306; height: 40rpx;color: #fff; padding: 0 10rpx; border-radius: 10rpx; margin-left: 10rpx} .red_c{color:#ff5306} +.title_show{ margin: 10rpx 0 10px 0;padding: 0 20rpx} diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index fd5a67f..fd595bb 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -63,7 +63,7 @@ Page({ name: "详情", id: 1 }, { - name: "评论", + name: "评价", id: 2 }], activeCategoryId2: 0, @@ -1439,6 +1439,7 @@ Page({ } } }); + } //else "exchange" == t.currentTarget.dataset.action ? this.exchange(d) : this.buyNow(d); else { @@ -1719,18 +1720,62 @@ Page({ } var ind = t.currentTarget.dataset.ind; - this.setData({ - openSpecModal: !0, - openSpecModal_ind: ind, - }); - - var is_open=th.data.config - - - this.get_off_price(); + //回调。判断是不是优惠促销 + th.check_is_prom_goods(function (){ + th.setData({ + openSpecModal: !0, + openSpecModal_ind: ind, + }); + //var is_open=th.data.config + th.get_off_price(); + }) }, + //判断是不是优惠促销 + check_is_prom_goods:function(callback){ + var th=this; + var usr=getApp().globalData.userInfo; + if(this.data.sele_g.prom_type!=0 && this.data.sele_g.prom_type!=3){ + callback(); + }else{ + //-- 判断有没有优惠活动 -- + getApp().request.promiseGet("/api/weshop/goods/getGoodsPromList/" + os.stoid+"/"+th.data.sele_g.goods_id+"/0", {}).then(res => { + if(res.data.code==0){ + var r_data=res.data.data; + th.data.prom_goods=r_data.promGoodsLists; + if(!th.data.prom_goods){ + callback(); + return false; + } + ///api/weshop/order/getWPayOrder?store_id=1&user_id=5682366&prom_id=1&goods_id=1 + getApp().promiseGet("/api/weshop/order/getWPayOrder",{ + data:{store_id:os.stoid,user_id:usr.user_id,goods_id:th.data.sele_g.goods_id,prom_id:th.data.prom_goods[0].prom_id} + }).then(res=>{ + if(res.data.code==0){ + wx.showToast({ + title: "您还有该商品订单未支付", + icon: 'none', + duration: 2000 + }) + setTimeout(function (){ + getApp().goto("/pages/user/order_detail/order_detail?order_id=" + res.data.data.order_id,) + },1000) + } + //未找到相关记录 + else{ + callback(); + } + }) + } + + }) + + } + }, + + + //----获取线下价格------- get_off_price(){ var th=this; @@ -3038,7 +3083,8 @@ Page({ pageSize: 3, page: 1, state: 2, - team_id: prom_id + team_id: prom_id, + ordernum:1 } }).then(res => { teamgroup = res.data.data.pageData; @@ -4916,13 +4962,16 @@ Page({ var arr = [1219, 2089, 3031]; var new_arr = new Array(); var card_name_map=new Map(); - for (var i = 0; i < plusCard.length; i++) { - if((user.card_field==null || user.card_field=="") && plusCard[i].IsStopBuy==true) continue; + + var list=[]; + for (var i = 0; i < plusCard.length; i++) { + if((!user || user.card_field==null || user.card_field=="") && plusCard[i].IsStopBuy==true) continue; var name="card"+plusCard[i].CorrPrice.toLowerCase(); card_name_map.set(name,plusCard[i].CardName); + list.push(plusCard[i]); } - - var ob={"card_list":plusCard,"name_map":card_name_map}; + + var ob={"card_list":list,"name_map":card_name_map}; func(ob); }) }, diff --git a/pages/goods/goodsInfo/goodsInfo.wxml b/pages/goods/goodsInfo/goodsInfo.wxml index 9fffebf..a5d479c 100644 --- a/pages/goods/goodsInfo/goodsInfo.wxml +++ b/pages/goods/goodsInfo/goodsInfo.wxml @@ -298,7 +298,7 @@ - + @@ -315,7 +315,7 @@ - + - + @@ -78,7 +78,7 @@ - + diff --git a/pages/user/my_service/appment_main.js b/pages/user/my_service/appment_main.js index e1292ac..7f47914 100644 --- a/pages/user/my_service/appment_main.js +++ b/pages/user/my_service/appment_main.js @@ -560,6 +560,9 @@ Page({ th.data.is_get_local_ok = 1; } }) + //获取上一次的预约 + this.get_fir_service(); + }, //查询剩下可预约人数 query_more: function() { @@ -633,5 +636,98 @@ Page({ var th = this; var nav_b = th.selectComponent("#nav_b"); //组件的id nav_b.close_box(); + }, + + //判断分享的导购是不是有门店,是不是该门店下又该会员 + check_firleader(data){ + var th=this; + var itemId = this.data.itemId; //服务id + var url = "/api/weshop/marketing/reservation/storage/pagenew"; + var key_word = data.store_name; + key_word = key_word.replace(/\s+/g, ""); + var usr=getApp().globalData.userInfo; + getApp().request.promiseGet(url, { + data: { + userId: usr.user_id, + storeId: os.stoid, + serviceId: itemId, + page: 1, + pageSize: 1000, + keyWord: key_word + } + }).then(res => { + //-- 如果是门店的话 -- + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { + var store_data=null; + for(var i in res.data.data.pageData){ + var it=res.data.data.pageData[i]; + if(it.Id==data.StorageId){ + store_data={ + store_name: data.store_name, + storageId: data.StorageId, + }; + break; + } + } + if(!store_data) return false; + th.setData(store_data) + + }else{ + return false; + } + + //导购接口地址 + var url = "/api/weshop/marketing/reservation/staff/pagenew"; + return getApp().request.promiseGet(url, { + isShowLoading:1, + data: { + storeId: os.stoid, + userId: usr.user_id, + serviceId: itemId, + storageId: data.StorageId + } + }) + }).then(res=>{ + if (res && res.data && res.data.code == 0) { + var beautician_list=res.data.data; + for(var i in beautician_list){ + var item=beautician_list[i]; + if(item.staffid==data.beauticianID){ + th.setData({ + beautician_name:data.beautician_name, + beauticianID:data.beauticianID, + }) + break; + } + } + + } + }) + }, + + //获取上一次预约的信息 + get_fir_service:function (){ + var th=this; + var usr=getApp().globalData.userInfo; + if(!usr) return false; + + getApp().promiseGet("/api/weshop/marketing/reservation/reservation/page",{ + data:{storeId:os.stoid,userId:usr.user_id,projectId:th.data.project_id} + }).then(res=>{ + if(res.data.code==0 && res.data.data && res.data.data.pageData ){ + var ppdata= res.data.data.pageData[0]; + var data={ + store_name:ppdata.StorageName, + beautician_name:ppdata.BeauticianName, + beauticianID:ppdata.BeauticianID, + StorageId:ppdata.StorageID, + } + //检查门店和导购能不能默认使用 + th.check_firleader(data); + }; + }) } + + + }) \ No newline at end of file diff --git a/pages/user/plus/plus.js b/pages/user/plus/plus.js index 5164e85..c6e2b1d 100644 --- a/pages/user/plus/plus.js +++ b/pages/user/plus/plus.js @@ -178,41 +178,50 @@ Page({ new_arr.push(item); } - //根據距離遠近排序,越近在前面,升序 - new_arr.sort(function (a, b) { - if (a.fee < b.fee) { - return -1; - } else if (a.fee == b.fee) { - return 0; - } else { - return 1; - } - }); - //里面和外面要显示统一 - switch (new_arr.length) { - case 1:arr=[3031]; break; - case 2: arr = [2089, 3031]; break; - case 3: arr = [1219, 2089, 3031];break; - } + //看是不是还有卡项是可以购买的 + if(new_arr && new_arr.length>0){ + //根據距離遠近排序,越近在前面,升序 + new_arr.sort(function (a, b) { + if (a.fee < b.fee) { + return -1; + } else if (a.fee == b.fee) { + return 0; + } else { + return 1; + } + }); - //---给数组添加立省多少钱--- - for (i = 0; i < plusCard.length; i++) { - //判断是否停用 - - for (var j = 0; j < new_arr.length; j++) { - if (i == new_arr[j].index) { - plusCard[i].free = arr[j]; - break; - } - + //里面和外面要显示统一 + switch (new_arr.length) { + case 1:arr=[3031]; break; + case 2: arr = [2089, 3031]; break; + case 3: arr = [1219, 2089, 3031];break; + } + //---给数组添加立省多少钱--- + for (i = 0; i < plusCard.length; i++) { + //判断是否停用 + for (var j = 0; j < new_arr.length; j++) { + if (i == new_arr[j].index) { + plusCard[i].free = arr[j]; + break; + } + } } - } - th.setData({ - is_plusCard: plusCard, is_show: 1 - }) + th.setData({ + is_plusCard: plusCard, is_show: 1 + }) + + }else{ + th.setData({is_show: 1}); + wx.showToast({ + title: "暂无可购买的等级卡项", + icon: 'none', + duration: 4000 + }) + } setTimeout(function(){ var goods_list = th.selectComponent("#goods_list"); //组件的id goods_list.init(); diff --git a/pages/user/plus/plus.wxml b/pages/user/plus/plus.wxml index efb2313..89d65dd 100644 --- a/pages/user/plus/plus.wxml +++ b/pages/user/plus/plus.wxml @@ -6,44 +6,44 @@ - - - - - - - - - - - - - {{item.CardName}} - 开通会员卡仅{{item.CardFee}}元 - - 立即购买 - - + + + + + + + + + + + + + + {{item.CardName}} + 开通会员卡仅{{item.CardFee}}元 + + 立即购买 + - + + + - + - - 按去年用户消费计算,开卡后一年预计省¥{{item.free}}元 + + 按去年用户消费计算,开卡后一年预计省¥{{item.free}}元 + - - - - + + + - - - + -- libgit2 0.21.4