const app = getApp();
let self = null;
var os = app.globalData.setting;
var ut = require("../../../../utils/util.js");
var regeneratorRuntime = require('../../../../utils/runtime.js');
var oo = app.globalData;
let imgDraw = {
    "width": "650px",
    "height": "843px",
    "background": "https://mshopimg.yolipai.net/miniapp/images/zhg/bg-zuhegou.jpg",
    "views": [{ // 头像
        "type": "image",
        "url": "https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/0F/08/ChMkJlauzXWIDrXBAAdCg2xP7oYAAH9FQOpVAIAB0Kb342.jpg",
        "css": {
            "width": "100px",
            "height": "100px",
            "top": "20px",
            "left": "275px",
            "borderRadius": "100px",
            "mode": "scaleToFill",
            "borderWidth": "2px",
            "borderColor": "#fff",
        }
    },
    { //昵称
        "type": "text",
        "text": "我是店铺名",
        "css": {
            "width": "650px",
            "color": "#fff",
            "top": "136px",
            // "left": "137px",
            "textAlign": "center",
            "fontSize": "26px",
            "maxLines": "1",
        }
    },
    { //10元任选3件
        "type": "text",
        "text": "10元3件",
        "css": {
            "color": "#fff",
            "width": "650px",
            "top": "270px",
            "fontSize": "70px",
            "maxLines": "1",
            "textAlign": "center",
            "fontWeight": "bold",
        }
    },
    { //活动时间
        "type": "text",
        "text": "活动时间:2021.07.06 - 2021.07.08",
        "css": {
            "color": "#333",
            "width": "650px",
            "top": "440px",
            "fontSize": "26px",
            "fontWeight": "normal",
            "maxLines": "1",
            "textAlign": "center"
        }
    },
    { // 码
        "type": "image",
        "url": "https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/0F/08/ChMkJlauzXWIDrXBAAdCg2xP7oYAAH9FQOpVAIAB0Kb342.jpg",
        "css": {
            "color": "#000",
            "width": "200px",
            "height": "200px",
            "top": "525px",
            "left": "225px",
        }
    },
    { // 扫码提示
        "type": "text",
        "text": "长按扫码即可参与活动",
        "css": {
            "color": "#666",
            "width": "650px",
            "top": "750px",
            "fontSize": "26px",
            "textAlign": "center"
        }
    },
    ]
};
Page({
    /**
     * 页面的初始数据
     */
    data: {
        iurl: os.imghost,
        showRule: false,
        showMask: false,
        showNum: false,
        haveAdded: false,
        //imgDraw: imgDraw, 分享内容
        id: 0, //获得活动id
        page: 1, //第一页
        no_more: 0, //没有更多
        loading: 0, //加载中
        list: null, //商品列表的显示
        act: null, //组合活动
        all_price: 0, //合计价格
        all_num: 0, //全部数量
        sele_pick_id: 0, //默认选择门店,当用户什么商品都没有选,sele_pick_id=0
        def_store: null, //用户默认的门店
        sele_store: 0, //是不是选择了门店
        more_store: 0, //选择门店
        sort_store: 0, //门店分类
        choice_sort_store: 0, //选择分类门店
        fir_pick_index: 0, //门店选择的下标
        sec_pick_index: 0, //门店选择的下标,地区选择之后的内页
        userbuynum:false,//是否有超出购买次数,还是否可以购买。false 为可购买,true为不可购买
        sales_map:{},  //线下销售的map
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        console.log(options, 111);
        self = this;
        var the_id = options.id;
        if (options.title) {
            wx.setNavigationBarTitle({
                title: options.title,
            });
        };
        var first_leader = options.first_leader;
        //--如果tg_id是空的话,分享回来--
        if (the_id == undefined || the_id == null || the_id == "") {
            var gid_str = decodeURIComponent(options.scene);
            gid_str = gid_str.split("_");
            the_id = gid_str[0];
            if (gid_str.length > 1) {
                first_leader = gid_str[1];
            }
        }
        this.data.id = the_id;
        if (first_leader) {
            getApp().globalData.first_leader = first_leader;
            //调用接口判断是不是会员
            getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => {
                if (res.data.code == 0) {
                    getApp().globalData.guide_id = res.data.data.id;
                }
            })
        }
    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        getApp().check_can_share();
        getApp().is_Single_page(this, function () {
            var th = this,
                that = this,
                ee = this;
            this.data.is_timer = 1;
            if (this.data.act) this.countDown();
            //如果有会员的时候
            var userInfo = getApp().globalData.userInfo;
            if (userInfo) {
                if (!th.data.is_get_act) {
                    //获取活动信息
                    var url = "/api/weshop/prom/zhbuy/get/" + os.stoid + "/" + th.data.id + "/" + userInfo.user_id;
                    getApp().request.get(url, {
                        success: function (e) {
                            th.data.is_get_act = 1;
                            if (e.data.code == 0 && e.data.data) {
                                self.setData({
                                    act: e.data.data
                                });
                                if (e.data.data.is_show != 1) {
                                    th.setData({
                                        error: '活动未开启'
                                    });
                                    return false;
                                }
                                if (ut.gettimestamp() < e.data.data.start_time) {
                                    th.setData({
                                        error: '活动还未开始'
                                    });
                                    return false;
                                }
                                if (e.data.data.is_end == 0 && ut.gettimestamp() < e.data.data.end_time) {
                                  //判断是否有限制购买次数
                                  if(e.data.data.buy_limit !=0){
                                    self.getUserBuyPromNum()
                                  }  
                                  //-- 获取商品列表 --
                                    self.get_list();
                                    self.countDown();
                                } else {
                                    th.setData({
                                        error: '活动已经过期'
                                    });
                                    return false;
                                }
                            } else {
                                th.data.is_get_act = 0;
                                th.setData({
                                    error: e.data.msg
                                });
                                return false;
                            }
                        }
                    });
                }
                //等待活动值
                this.waitfor2(10, 'list', function () {
                    if (!th.data.list) return false;
                    if (ut.gettimestamp() < th.data.act.start_time) {
                        return false;
                    }
                    if (th.data.act.is_end == 10 || ut.gettimestamp() >= th.data.act.end_time) {
                        return false;
                    }
                    //获取头像的分享
                    th.get_head_temp(function () {
                        var txt = th.data.act.zhprice + "元" + th.data.act.zhbuyqty + "件";
                        imgDraw.views[0].url = th.data.share_head;
                        imgDraw.views[1].text = userInfo.nickname;
                        imgDraw.views[2].text = txt;
                        var start = ut.formar_no_full(th.data.act.start_time, '.');
                        var end = ut.formar_no_full(th.data.act.end_time, '.');
                        txt = "活动时间:" + start + " - " + end;
                        imgDraw.views[3].text = txt;
                        var scene = th.data.id + "";
                        var user_id = getApp().globalData.user_id;
                        scene += "_" + user_id;
                        ///二微码
                        var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" +
                            os.stoid + "?sceneValue=" + scene + "&pageValue=packageB/pages/zuhegou/index/index";
                        wx.getImageInfo({
                            src: path3,
                            success: function (res) {
                                var vpath = res.path;
                                imgDraw.views[4].url = vpath;
                                th.setData({
                                    imgDraw: imgDraw
                                })
                            }
                        })
                    })
                    //获取用户的默认门店
                    getApp().get_user_store(function (e) {
                        if (!e) {
                            th.data.fir_def_store = {}; //赋值空对象
                            return false;
                        }
                        if(getApp().globalData.is_dj_pk) th.setData({has_def:1})
                        var ee = JSON.parse(JSON.stringify(e));
                        var appd = getApp().globalData;
                        //-- 等待定位系统的开启 --
                        th.waitfor2(15, 'is_get_local_ok', function () {
                            if (!th.data.is_get_local_ok) return false;
                            var e = JSON.parse(JSON.stringify(ee));
                            //如果有开启近距离的话,同时距离优不一样了
                            if (that.data.lat != null) {
                                //如果经纬度有变化的话
                                if (e && appd.lat == that.data.lat && appd.lon == that.data.lon && e.distance > 0) {
                                    that.set_def_storage(e);
                                } else {
                                    //要用接口是获取距离,js的计算不准
                                    getApp().request.promiseGet("/api/weshop/pickup/list", {
                                        data: {
                                            store_id: os.stoid,
                                            pickup_id: e.pickup_id,
                                            is_pos: 1,
                                            lat: th.data.lat,
                                            lon: th.data.lon
                                        },
                                    }).then(res => {
                                        if (res.data.code == 0) {
                                            e = res.data.data.pageData[0];
                                            if (e) {
                                                e.is_no_dis = ee.is_no_dis;
                                                appd.pk_store = e;
                                                that.set_def_storage(e);
                                            }
                                        }
                                    })
                                }
                                appd.lat = that.data.lat;
                                appd.lon = that.data.lon;
                            } else {
                                if (e) {
                                    e.distance = null;
                                    that.set_def_storage(e);
                                }
                            }
                        })
                    });
                    //----获取系统参数-----
                    getApp().getConfig2(function (e) {
                        ee.setData({
                            bconfig: e,
                        });
                        //设置基本参数
                        th.wait_for_store_config(e);
                        var json_d = JSON.parse(e.switch_list);
                        ee.setData({
                            store_config: e,
                            sys_switch: json_d,
                            is_closecoupon: json_d.is_closecoupon,
                            is_newsales_rules: json_d.is_newsales_rules,
                            is_open_offline: json_d.is_pricing_open,
                            sales_rules: e.sales_rules,
                            appoint_pick_keyid: json_d.appoint_pick_keyid
                        });
                        //-- 计算等级价相关 --
                        var swithc_list = e.switch_list;
                        var sw_arr = JSON.parse(swithc_list);
                        //---如果后台又开等级卡的开关---
                        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
                                });
                                var user = getApp().globalData.userInfo;
                                if (!user) return false;
                                if (user.card_field && user['card_expiredate']) {
                                    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 < end) {
                                        var card_name = ob.name_map.get(user.card_field);
                                        th.setData({
                                            card_field: user.card_field,
                                            card_name: card_name,
                                            card_list: ob.card_list
                                        });
                                    }
                                }
                                //获取购物车的内容
                                setTimeout(function(){
                                    th.get_cart_val(e);
                                },1000)
                            })
                        } else {
                            //获取购物车的内容
                            setTimeout(function(){
                                th.get_cart_val(e);
                            },1000)
                        }
                    }, 1);
                })
            } else {
                getApp().goto("/packageE/pages/togoin/togoin");
                return false;
            }
        })
    },
    //获取用户参与活动的次数
    getUserBuyPromNum(){
      var userInfo = getApp().globalData.userInfo;
      var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${this.data.act.id}`;
      getApp().request.get(url, {
          success: (e)=>{
              if (e.data.code == 0 && e.data.data) {
                let userbuynum=e.data.data.userbuynum
                if (userbuynum >=this.data.act.buy_limit && this.data.act.buy_limit !=0) {
                  this.setData({
                    userbuynum:true
                  })
                }
              } else {
              }
          }
      });
    },
    onHide: function () {
        this.data.is_timer = 0;
    },
    //-- 调用接口的LIST,获取商品 --
    get_list: function () {
        var th = this;
        if (this.data.loading) return false;
        if (this.data.no_more) return false;
        this.data.loading = 1;
        var url = "/api/weshop/prom/zhbuyGoods/page";
        var req_data = {
            page: this.data.page,
            pageSize: 10,
            store_id: os.stoid,
            zh_id: this.data.id
        }
        //开始调用接口
        getApp().request.get(url, {
            data: req_data,
            success: function (res) {
                th.data.loading = 0;
                th.setData({
                    is_get: 1
                })
                if (ut.ajax_ok(res)) {
                    th.data.page++;
                    var list = th.data.list;
                    if (!list) list = [];
                    //当是下拉刷新的时候
                    if (th.data.page > 1 && th.data.cart_list) {
                        //下拉之后也要重新计算一下金额
                        th.calc_more(res.data.data.pageData, function (list1) {
                            for (var i in list1) {
                                list.push(list1[i]);
                            }
                            th.setData({
                                list: list
                            });
                            th.re_sum_price();
                        })
                    } else {
                        for (var i in res.data.data.pageData) {
                            list.push(res.data.data.pageData[i]);
                        }
                        th.setData({
                            list: list
                        });
                        if (res.data.data.total <= 10) {
                            th.setData({
                                no_more: 1
                            });
                        }
                    }
                } else {
                    th.setData({
                        no_more: 1
                    });
                }
            }
        })
    },
    //-- 滚动到底部触发 --
    get_more_list: function () {
        this.get_list();
    },
    /**
     * 用户点击右上角分享
     */
     onShareAppMessage: function () {   	  getApp().globalData.no_clear=1;
        var title = this.data.act.name;
        var url = "/packageB/pages/zuhegou/index/index?id=" + this.data.act.id;
        if (getApp().globalData.user_id) {
            url += "&first_leader=" + getApp().globalData.user_id;
        }
        var ob = {
            title: title,
            path: url,
        };
        if (this.data.act.img_url)
            ob.imageUrl = this.data.iurl + this.data.act.img_url;
        return ob;
    },
    /**
     * 用户分享朋友圈
     */
    onShareTimeline() {
        getApp().globalData.no_clear=1;
        var title = this.data.act.name;
        var user_id=getApp().globalData.user_id;
        if(!user_id) user_id=0;
        var ob = {
            title: title,
            query: 'first_leader='+user_id+"&id=" + this.data.act.id
        };
        if (this.data.act.img_url)
            ob.imageUrl = this.data.iurl + this.data.act.img_url;
        return ob;
    },
    /**
     * 点击规则详情,弹出规则
     */
    showRule() {
        this.setData({
            type: 0, //控制显示规则详情还是提示信息,0规则详情,1提示信息
            showRule: true,
            showMask: true,
        });
    },
    /**
     * 点击关闭按钮关闭规则详情弹窗
     */
    closeRule() {
        this.setData({
            showRule: false,
            showMask: false,
        });
    },
    /**
     * 点击提示信息
     */
    showInfo() {
        this.setData({
            type: 1,
            showRule: true,
            showMask: true,
        });
    },
    /**
     * 加入购物车
     */
    addToCart(e) {
        var th = this;
        var index = e.currentTarget.dataset.index;
        var userInfo = getApp().globalData.userInfo;
        if (!userInfo) {
            getApp().goto("/packageE/pages/togoin/togoin");
            return false;
        }
        let haveAdded = this.data.list[index].haveAdded;
        this.data.sele_index = index;
        let title = '';
        self = this;
        th.data.s_cart_num = 0;
        if(this.data.userbuynum){
          wx.showToast({
            title: '你已超出该活动购买次数!',
            icon: 'none',
            duration: 2000
          })
          return
        }
        //说明是加入购物车是时候
        this.data.is_zuhe_addcart = 1;
        if (!haveAdded) {
            //购买的商品的数量默认超量的数量
            th.data.sele_g = this.data.list[index];
            if (!th.data.sele_g.num){
                th.data.goodsInputNum = 1;
                if(th.data.sele_g.zhqty)  th.data.goodsInputNum = th.data.sele_g.zhqty;
            }
            //如果没有门店,活动商品的配送方式和门店的配送方式不一样
            if (!th.data.def_pick_store ||
                (th.data.sele_g.distr_type != 0 && th.data.def_pick_store.distr_type != 0 && th.data.sele_g.distr_type != th.data.def_pick_store.distr_type)) {
                //选择了门店
                if (th.data.sele_store) {
                    wx.showToast({
                        title: "该商品的物流配送方式和默认门店不匹配!",
                        icon: 'none',
                        duration: 2000
                    })
                } else {
                    wx.showModal({
                        title: '温馨提示',
                        content: '该商品的物流配送方式和默认门店不匹配,是否要切换门店?',
                        success(res) {
                            if (res.confirm) {
                                //物流的配送方式不一样
                                th.get_sto();
                                var set_data = {
                                    store: 1
                                };
                                if (th.data.def_pick_store) {
                                    set_data.is_no_pipei = th.data.def_pick_store.pickup_id;
                                }
                                th.setData(set_data);
                            }
                        }
                    })
                }
                return false;
            } else {
                //先判断一下线下库存
                th.check_pk_store_conut(function(){
                    th.setData({
                        is_no_pipei: 0
                    });
                    th.check_is_in_cart(function () {
                        th.add_cart_func();
                    })
                })
            }
        } else {
            var txt = "list[" + index + "].haveAdded";
            var txt1 = "list[" + index + "].num";
            var txt2 = "list[" + index + "].showNum";
            th.data.sele_g = this.data.list[index];
            wx.showModal({
                title: '温馨提示',
                content: "确定取消该商品参与活动?",
                success(res) {
                    if (res.confirm) {
                        console.log('用户点击确定');
                        if (th.data.sele_g.cart_num && th.data.sele_g.cart_num - th.data.sele_g.num > 0) {
                            var updata = {
                                id: th.data.sele_g.cart_id,
                                goods_num: th.data.sele_g.cart_num - th.data.sele_g.num,
                                store_id: os.stoid
                            }
                            getApp().request.put("/api/weshop/cart/update", {
                                data: updata,
                                success: function (rs) {
                                    if (rs.data.code == 0) {
                                        title = '取消成功';
                                        th.setData({
                                            [txt1]: 0,
                                            [txt2]: false,
                                            [txt]: false,
                                        });
                                        wx.showToast({
                                            title: title,
                                            icon: 'success',
                                        });
                                        th.re_sum_price();
                                    }
                                }
                            })
                        } else {
                            var url = '/api/weshop/cart/del/' + os.stoid + '/' + th.data.sele_g.cart_id;
                            getApp().request.delete(url, {
                                success: function (res) {
                                    if (res.data.code == 0) {
                                        title = '取消成功';
                                        th.setData({
                                            [txt1]: 0,
                                            [txt2]: false,
                                            [txt]: false,
                                        });
                                        wx.showToast({
                                            title: title,
                                            icon: 'success',
                                        });
                                        th.re_sum_price();
                                    }
                                }
                            });
                        }
                    } else if (res.cancel) {
                        console.log('用户点击取消')
                        self.setData({
                            haveAdded: true,
                        });
                    }
                }
            })
        }
    },
    //在启用线下的时候,要判断一下是不是有库存
    async check_pk_store_conut(func,is_no_msg,gd,by_num){
       var th=this;
       if(this.data.sales_rules<2){
           if(is_no_msg) return true;
           else {
               if(func)  func();
               return false;
           }
       }
       //门店库存no
       var pkno= gd && gd.pickup_no?gd.pickup_no:this.data.def_pick_store.pickup_no;
       var pickup_id=gd && gd.pick_id?gd.pick_id:this.data.def_pick_store.pickup_id;
       var lock = [];
       var plist=null;
       var good=gd || th.data.sele_g;
       var buy_num=by_num || th.data.goodsInputNum;
       if(this.data.sales_map[good.goods_id]){
           var mp=this.data.sales_map[good.goods_id];
           var lock_num=mp.lock_num;
           var CanOutQty=mp.CanOutQty;
           if (CanOutQty < lock_num +buy_num) {
               if(!is_no_msg) {
                   wx.showToast({
                       title: "门店库存不足",
                       icon: 'none',
                       duration: 2000
                   })
               }
               return false;
           }
           if(is_no_msg) return true;
           func();
       }else {
           //先读取门店的lock,采用链式写法,少用await
          await  getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
               data: {store_id: os.stoid, wareId: good.goods_id, pageSize: 1000}
           }).then(res => {
               if (res.data.code == 0 && res.data.data.total > 0) {
                   lock = res.data.data.pageData
               }
           })
           var dw_rq={ storageNos: pkno,wareIds: encodeURIComponent(good.erpwareid), storeId: os.stoid, pageSize: 2000};
           if(this.data.sales_rules==3){
               dw_rq.storageIds = encodeURIComponent(th.data.appoint_pick_keyid)
               delete dw_rq.storageNos
           }
           //---通过接口获取门店的线下库存信息--
           await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
               data:dw_rq
           }).then(res => {
               if (ut.ajax_ok(res)) {
                   plist = res.data.data.pageData[0];
               }
           })
           if(!plist){
               if(!is_no_msg) {
                   wx.showToast({
                       title: "该商品在门店未找到库存",
                       icon: 'none',
                       duration: 2000
                   })
               }
               return false;
           }
           var lock_num = th.find_lock_num(pickup_id, lock);
           this.data.sales_map[good.goods_id]={
               CanOutQty:plist.CanOutQty,
               lock_num:lock_num
           }
           if (plist.CanOutQty < lock_num + buy_num) {
               if(!is_no_msg) {
                   wx.showToast({
                       title: "该商品在门店未找到库存",
                       icon: 'none',
                       duration: 2000
                   })
               }
               return false;
           }
           if(is_no_msg) return true;
           func();
       }
    },
    find_lock_num(pick_id, lock) {
        var lock_num = 0;
        if (!lock) return 0;
        if (lock.length < 0) return 0;
        for (var i in lock) {
            if (pick_id == lock[i].pickupId) {
                lock_num += lock[i].outQty;
            }
        }
        return lock_num;
    },
    /**
     * 增加数量
     */
    add(e) {
        if(this.data.userbuynum){
          wx.showToast({
            title: '你已超出该活动购买次数!',
            icon: 'none',
            duration: 2000
          })
          return
        }
        var th = this;
        var userInfo = getApp().globalData.userInfo;
        if (!userInfo) {
            getApp().goto("/packageE/pages/togoin/togoin");
            return false;
        }
        if (this.data.changing) return false;
        this.data.changing = 1;
        var index = e.currentTarget.dataset.index;
        this.data.sele_g = th.data.list[index];
        this.data.sele_index = index;
        th.data.goodsInputNum = th.data.sele_g.num + 1;
        //必须是组合购买的超量
        var is_zhqty=0;
        if(th.data.goodsInputNum
= 2) {
            var check_num = num - 1;
            //小于起购数
            if (check_num < item.zhqty) {
                wx.showToast({
                    title: "该商品至少要购买" + item.zhqty + "件",
                    icon: 'none',
                    duration: 2000
                })
                return false;
            }
            if (th.data.changing) return false;
            th.data.changing = 1;
            th.data.sele_g = item;
            th.data.sele_index = index;
            th.data.goodsInputNum = check_num;
            th.sub_updata_cart();
            return false;
        }
        var txt = "list[" + index + "].haveAdded";
        var txt1 = "list[" + index + "].num";
        var txt2 = "list[" + index + "].showNum";
        wx.showModal({
            title: '温馨提示',
            content: '确定取消该商品参与活动?',
            success(res) {
                if (res.confirm) {
                    if (th.data.s_cart_num) {
                        var updata = {
                            id: th.data.sele_g.cart_id,
                            goods_num: th.data.s_cart_num,
                            store_id: os.stoid
                        }
                        getApp().request.put("/api/weshop/cart/update", {
                            data: updata,
                            success: function (rs) {
                                if (rs.data.code == 0) {
                                    var title = '取消成功';
                                    th.setData({
                                        [txt1]: 0,
                                        [txt2]: false,
                                        [txt]: false,
                                    });
                                    wx.showToast({
                                        title: title,
                                        icon: 'success',
                                    });
                                    th.re_sum_price();
                                }
                            }
                        })
                    } else {
                        var url = '/api/weshop/cart/del/' + os.stoid + '/' + item.cart_id;
                        getApp().request.delete(url, {
                            success: function (res) {
                                if (res.data.code == 0) {
                                    var title = '移除购物车成功';
                                    th.setData({
                                        [txt1]: 0,
                                        [txt2]: false,
                                        [txt]: false,
                                    });
                                    wx.showToast({
                                        title: title,
                                        icon: 'success',
                                    });
                                    th.re_sum_price(); //重新统计数量和总金额
                                }
                            }
                        });
                    }
                } else if (res.cancel) {
                    console.log('用户点击取消')
                    self.setData({
                        haveAdded: true,
                    });
                }
            }
        })
        return false;
    },
    /** 分享 **/
    share() {
        var th = this;
        var userInfo = getApp().globalData.userInfo;
        if (!userInfo) {
            getApp().goto("/packageE/pages/togoin/togoin");
            return false;
        }
        wx.showLoading();
        setTimeout(function () {
            th.setData({
                showMask: true,
                showPoster: true,
            });
            wx.hideLoading();
        }, 1000);
    },
    /**
     * 关闭海报
     */
    closePoster() {
        this.setData({
            showMask: false,
            showPoster: false,
        });
    },
    onImgOK(e) {
        console.log(e.detail.path);
        this.setData({
            myimg: e.detail.path,
        });
    },
    //---小于10的格式化函数----
    timeFormat(param) {
        return param < 10 ? '0' + param : param;
    },
    //----倒计时函数-----
    countDown() {
        if (!this.data.is_timer) return false;
        var th = this;
        // 获取当前时间,同时得到活动结束时间数组
        var endTime = this.data.act.end_time;
        var newTime = ut.gettimestamp();
        // 对结束时间进行处理渲染到页面
        var obj = null;
        // 如果活动未结束,对时间进行处理
        if (endTime - newTime > 0) {
            var time = (endTime - newTime);
            // 获取天、时、分、秒
            var day = parseInt(time / (60 * 60 * 24));
            var hou = parseInt(time % (60 * 60 * 24) / 3600);
            var min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
            var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
            obj = {
                hou: this.timeFormat(hou),
                min: this.timeFormat(min),
                sec: this.timeFormat(sec)
            }
            if (day > 0) {
                obj.day = this.timeFormat(day);
            }
        } else {
            //活动已结束,全部设置为'00'
            obj = {
                day: '00',
                hou: '00',
                min: '00',
                sec: '00'
            }
            th.setData({
                prom_time_text: '活动已经结束:',
                prom_st: 3
            })
            th.setData({
                djs: obj
            });
            return false;
        }
        th.setData({
            djs: obj
        });
        setTimeout(function () {
            th.countDown()
        }, 1000);
    },
    close_all: function () {
        this.setData({
            showMask: false,
            showPoster: false,
            showRule: false
        });
    },
    //------定时等待某个值,有值才进行运算--------
    waitfor2: function (n, pop_value, func) {
        var th = this;
        if (n <= 0) {
            func()
            return false
        }
        if (th.data[pop_value]) {
            func();
            return false;
        }
        setTimeout(function () {
            --n;
            th.waitfor2(n, pop_value, func)
        }, 1000);
    },
    //--获取头像的本地缓存,回调写法--
    get_head_temp: function (tt) {
        var ee = this;
        if (ee.data.share_head) {
            tt();
            return false;
        }
        //---获取分享图片的本地地址,头像和商品图片----
        var path2 = getApp().globalData.userInfo.head_pic;
        if (path2 == "") {
            ee.data.share_head = "../../../../images/share/hui_hear_pic.png";
            tt();
        } else {
            path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn");
            path2 = path2.replace("https://thirdwx.qlogo.cn", "https://wx.qlogo.cn");
            wx.getImageInfo({
                src: path2,
                success: function (res) {
                    //res.path是网络图片的本地地址
                    console.log(res);
                    ee.data.share_head = res.path;
                    tt();
                },
                fail: function () {
                    ee.data.share_head = "../../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的
                    tt();
                }
            });
        }
    },
    go_url: function (e) {
        var url = e.currentTarget.dataset.url;
        getApp().goto(url);
    },
    //-- 加入购物的函数 --
    add_cart_func: function () {
        if (oo.user_id == null) {
            this.data.changing = 0;
            return getApp().my_warnning("还未登录!", 0, this);
        }
        if (!getApp().globalData.userInfo) {
            this.data.changing = 0;
            return getApp().my_warnning("还未登录!", 0, this);
        }
        var e = this,
            th = e,
            o = this.data.sele_g,
            a = o.goods_id;
        //----------添加到购物车时,要判断限购数量,--------
        e.get_buy_num(o, function (ee) {
            //---判断商品是否超出限购---
            if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {
                if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).gd_buynum > th.data.sele_g.viplimited) {
                    wx.showModal({
                        title: '提示',
                        content: '超出商品限购'
                    });
                    th.data.changing = 0;
                    return false;
                }
                if (th.data.s_cart_num) {
                    if (th.data.s_cart_num + th.data.g_buy_num.get(th.data.sele_g.goods_id).gd_buynum > th.data.sele_g.viplimited) {
                        wx.showModal({
                            title: '提示',
                            content: '超出商品限购'
                        });
                        th.data.changing = 0;
                        return false;
                    }
                }
            }
            //---判断商品是否超出活动限购---
            if (th.data.sele_g.buyqty > 0) {
                if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).prom_buybum > th.data.sele_g.buyqty) {
                    wx.showModal({
                        title: '提示',
                        content: '超出商品活动限购'
                    });
                    th.data.changing = 0;
                    return false;
                }
            }
            if (th.data.goodsInputNum <= 0) {
                this.data.changing = 0;
                return s.my_warnning("商品数量不能为0", 0, th);
            }
            if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined)
                th.setData({
                    sto_sele_name: ""
                });
            if (th.data.sto_sele_name == "") {
                th.data.changing = 0;
                return s.my_warnning("请选择门店", 0, th);
            }
            //--------------此时操作的数据------------
            var newd = {
                goods_id: o.goods_id,
                goods_num: th.data.goodsInputNum,
                pick_id: th.data.sto_sele_id,
                user_id: oo.user_id,
                store_id: os.stoid,
                goods_price: o.shop_price,
                member_goods_price: o.shop_price,
                goods_name: o.goods_name,
                goods_sn: o.goods_sn,
            };
            if (th.data.s_cart_num) {
                newd.goods_num = th.data.s_cart_num;
            }
            //---是不是从收藏夹出来的---
            if (th.data.c_guide_id) {
                newd['guide_id'] = th.data.c_guide_id;
                newd['guide_type'] = 2;
                newd['guide_type'] = 3;
            } else {
                if (getApp().globalData.guide_id) {
                    newd['guide_id'] = getApp().globalData.guide_id;
                    newd['guide_type'] = 0;
                    newd['guide_type'] = 1;
                }
            }
            //让商品带上房间号
            if (th.data.sys_switch.is_skuroom_id == 1) {
                if (th.data.sele_g.goods_id == getApp().globalData.room_goods_id) {
                    newd.room_id = getApp().globalData.room_id;
                }
            } else {
                if (newd.goods_id == getApp().globalData.room_goods_id) newd.room_id = getApp().globalData.room_id;
            }
            if (o.store_count <= 0) {
                th.data.changing = 0;
                return getApp().my_warnning("库存已为空!", 0, th);
            }
            if (o.store_count < e.data.goodsInputNum) {
                th.data.changing = 0;
                return getApp().my_warnning("库存不足!", 0, th);
            }
            th.add_cart_next(o, newd); //加入购物车下一步
        })
    },
    //---加入购物车的最后一步---
    add_cart_next(o, newd) {
        var th = this;
        //如果会员有等级价
        if (th.data.card_field) {
            var card_price = o[th.data.card_field];
            if (card_price > 0) {
                newd.goods_price = card_price;
                newd.member_goods_price = card_price;
            }
        }
        var index = this.data.sele_index;
        var txt = "list[" + index + "].haveAdded";
        var txt1 = "list[" + index + "].num";
        var txt2 = "list[" + index + "].showNum";
        var txt3 = "list[" + index + "].current_price";
        newd.prom_type = 7;
        newd.prom_id = th.data.act.id;
        if (th.data.adding) return false;
        th.data.adding = 1;
        //-------如果购物车中有相关的数据---------
        if (th.data.list[index].num > 0) {
            var item = th.data.sele_g;
            if (th.data.goodsInputNum > o.store_count) {
                th.data.adding = 0;
                return getApp().my_warnning("库存不足!", 0, th);
            }
            if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).prom_buybum > o.buyqty && o.buyqty > 0) {
                th.data.adding = 0;
                return getApp().my_warnning("超出商品活动限购!", 0, th);
            }
            if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id).prom_buybum > th.data.sele_g.viplimited &&
                th.data.sele_g.viplimited > 0
            ) {
                th.data.adding = 0;
                return getApp().my_warnning("超出商品限购!", 0, th);
            }
            //如果商品没有其他活动,要取一下线下价格
            var updata = {
                id: item.cart_id,
                goods_num: th.data.goodsInputNum,
                goods_price: newd.goods_price,
                member_goods_price: newd.goods_price,
                store_id: os.stoid,
                state:0
            };
            if (th.data.s_cart_num) {
                updata.goods_num = th.data.s_cart_num;
            }
            //---是不是从收藏夹出来的---
            if (th.data.c_guide_id) {
                updata['guide_id'] = th.data.c_guide_id;
                updata['guide_type'] = 3; //加入购物车之后就变成了3
            } else {
                if (getApp().globalData.guide_id) {
                    updata['guide_id'] = getApp().globalData.guide_id;
                    updata['guide_type'] = 0;
                }
            }
            getApp().request.put("/api/weshop/cart/update", {
                data: updata,
                success: function (t) {
                    th.setData({
                        [txt1]: th.data.goodsInputNum,
                        [txt2]: true,
                        [txt]: true,
                        [txt3]: newd.goods_price,
                    });
                    th.data.adding = 0;
                    th.data.sele_store = 1;
                    if (th.data.s_cart_num) {
                        var txt_temp = "list[" + index + "].cart_num";
                        th.setData({
                            [txt_temp]: th.data.s_cart_num
                        })
                    }
                    th.re_sum_price(); //重新统计数量和总金额
                }
            });
        } else {
            getApp().request.post("/api/weshop/cart/save", {
                data: newd,
                success: function (t) {
                    if (t.data.code == 0) {
                        var txt4 = "list[" + th.data.sele_index + "].cart_id";
                        th.setData({
                            [txt1]: newd.goods_num,
                            [txt2]: true,
                            [txt3]: newd.goods_price,
                            [txt]: true,
                            [txt4]: t.data.data.id,
                        });
                        th.data.adding = 0;
                        th.data.sele_store = 1;
                        th.re_sum_price(); //重新统计数量和总金额
                    }
                }
            });
        }
    },
    //等待获取配置
    wait_for_store_config: function (bconfig) {
        var th = this;
        var e = bconfig;
        if (e && e.is_sort_storage) {
            wx.getLocation({
                type: 'gcj02',
                success: function (res) {
                    th.data.lat = res.latitude;
                    th.data.lon = res.longitude;
                    th.data.is_get_local_ok = 1;
                },
                fail: function (res) {
                    if (res.errCode == 2) {
                        th.setData({
                            is_gps: 0
                        });
                        if (th.data.is_gps == 0) {
                            getApp().confirmBox("请开启GPS定位", null, 10000, !1);
                        }
                    } else {
                        th.setData({
                            is_gps: "3"
                        });
                    }
                    th.data.is_get_local_ok = 1;
                }
            })
        } else {
            th.data.is_get_local_ok = 1;
        }
    },
    //---  获取卡类列表 ---
    getPlusCardType: function (func) {
        var storid = os.stoid;
        var user = getApp().globalData.userInfo;
        if (!user) return false;
        getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => {
            var plusCard = res.data.data;
            var arr = [1219, 2089, 3031];
            var new_arr = new Array();
            var card_name_map = new Map();
            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": list,
                "name_map": card_name_map
            };
            func(ob);
        })
    },
    //--- 设置一下默认库存的数量 ----
    set_def_storage(ee) {
        var that = this;
        that.data.fir_def_store = ee;
        that.setData({
            def_pick_store: ee,
            sto_sele_name: ee.pickup_name,
            sto_sele_id: ee.pickup_id,
            sto_sele_distr: ee.distr_type
        })
    },
    //---------拿出门店分类和门店------------
    get_sto(e) {
        var th = this;
        this.waitfor2(15, 'is_get_local_ok', function () {
            //if (!th.data.sele_g) return false;
            var dd = null;
            var g_distr_type = 0;
            if (th.data.sele_g) g_distr_type = th.data.sele_g.distr_type;
            if (g_distr_type != 0) {
                dd = {
                    store_id: os.stoid,
                    distr_type: g_distr_type,
                    isstop: 0,
                    is_pos: 1,
                    pageSize: 2000
                }
            } else {
                dd = {
                    store_id: os.stoid,
                    isstop: 0,
                    is_pos: 1,
                    pageSize: 2000
                }
            }
            //如果有距离的话
            if (th.data.lat != null) {
                dd.lat = th.data.lat;
                dd.lon = th.data.lon;
            }
            //如果会员是有默认的门店话
            if (!th.data.def_pick_store && th.data.fir_def_store) {
                th.setData({
                    def_pick_store: th.data.fir_def_store
                });
            }
            wx.showLoading({
                title: '加载中.'
            });
            //----------获取门店----------------
            getApp().request.promiseGet("/api/weshop/pickup/list", {
                data: dd,
            }).then(res => {
                var e = res;
                if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) {
                    var his_cate_num = 0;
                    for (let i in e.data.data.pageData) {
                        let item = e.data.data.pageData[i];
                        if (item.category_id > 0) {
                            his_cate_num = 1;
                            break;
                        }
                    }
                    e.his_cate_num = his_cate_num;
                    //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店
                    if (dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store) == '{}') && th.data.bconfig && th.data.bconfig.is_sort_storage) {
                        th.setData({
                            def_pick_store: e.data.data.pageData[0],
                            sto_sele_name: e.data.data.pageData[0].pickup_name,
                            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];
                    }
                    //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 --
                    if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}') {
                        for (var k = 0; k < e.data.data.pageData.length; k++) {
                            if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) {
                                e.data.data.pageData.splice(k, 1); //删除
                                break;
                            }
                        }
                        e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加
                    }
                    th.setData({
                        all_pick_list: e.data.data.pageData
                    });
                    th.deal_pickup(e);
                }
            })
        })
    },
    //------------处理门店---------------
    deal_pickup(e) {
        var th = this;
        wx.hideLoading();
        //单总量超出5个的时候
        if (e.data.data.total > 10 && e.his_cate_num) {
            getApp().request.get("/api/weshop/storagecategory/page", {
                data: {
                    store_id: os.stoid,
                    pageSize: 1000,
                    orderField: "sort",
                    orderType: 'asc',
                },
                success: function (ee) {
                    if (ee.data.code == 0) {
                        var check_all_cate = 0;
                        if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) {
                            for (let i in ee.data.data.pageData) {
                                let item = ee.data.data.pageData[i];
                                if (item.is_show == 1) {
                                    check_all_cate = 1;
                                    break
                                }
                            }
                        }
                        if (check_all_cate) {
                            var sto_cate = ee.data.data.pageData;
                            var sto_arr = e.data.data.pageData;
                            var newarr = new Array();
                            var qita = new Array();
                            var is_del_pk = 0;
                            //----要进行门店分组--------
                            for (var i = 0; i < sto_arr.length; i++) {
                                //找一下这个门店有没有在分类数组内
                                var find2 = 0,
                                    find2name = "",
                                    sort = 0;
                                is_del_pk = 0;
                                for (var m = 0; m < sto_cate.length; m++) {
                                    if (sto_arr[i].category_id == sto_cate[m].cat_id) {
                                        if (sto_cate[m].is_show != 1) {
                                            is_del_pk = 1;
                                            sto_arr.splice(i, 1);
                                            i--;
                                        } else {
                                            find2 = sto_cate[m].cat_id;
                                            find2name = sto_cate[m].cat_name;
                                            sort = sto_cate[m].sort;
                                            is_del_pk = 0;
                                        }
                                        break;
                                    }
                                }
                                if (is_del_pk) continue;
                                if (newarr.length > 0) {
                                    var find = 0;
                                    //如果有找到,那门店就在这个分组内,否则,分类就要排在其他
                                    if (find2 != 0) {
                                        for (var ii = 0; ii < newarr.length; ii++) {
                                            if (sto_arr[i].category_id == newarr[ii].cat_id) {
                                                newarr[ii].s_arr.push(sto_arr[i]);
                                                find = 1;
                                                break;
                                            }
                                        }
                                        if (find == 0) {
                                            var arr0 = new Array();
                                            arr0.push(sto_arr[i]);
                                            var item = {
                                                cat_id: find2,
                                                name: find2name,
                                                sort: sort,
                                                s_arr: arr0
                                            };
                                            newarr.push(item);
                                        }
                                    } else {
                                        qita.push(sto_arr[i]);
                                    }
                                } else {
                                    //如果有找到,那门店就在这个分组内,否则,分类就要排在其他
                                    if (find2 != 0) {
                                        var arr0 = new Array();
                                        arr0.push(sto_arr[i]);
                                        var item = {
                                            cat_id: find2,
                                            name: find2name,
                                            sort: sort,
                                            s_arr: arr0
                                        };
                                        newarr.push(item);
                                    } else {
                                        qita.push(sto_arr[i]);
                                    }
                                }
                            }
                            var def_arr = new Array();
                            //-- 开始就看10个门店 --
                            for (var k = 0; k < 10; k++) {
                                if (k == sto_arr.length) break;
                                def_arr.push(sto_arr[k]);
                            }
                            th.setData({
                                def_pickpu_list: def_arr,
                                pickpu_list: ee.data.data.pageData
                            });
                            //门店分类要排序下
                            function compare(property) {
                                return function (a, b) {
                                    var value1 = a[property];
                                    var value2 = b[property];
                                    return value1 - value2;
                                }
                            }
                            if (newarr.length > 0)
                                newarr.sort(compare("sort"));
                            //----安排其他的分类-----
                            if (qita.length > 0) {
                                var item = {
                                    cat_id: -1,
                                    name: "其他",
                                    s_arr: qita
                                };
                                newarr.push(item);
                            }
                            var sd = {
                                all_sto: newarr,
                                is_show_sto_cat: 1
                            }
                            if (!sto_arr || sto_arr.length <= 10) {
                                sd.is_show_sto_cat = -1;
                                sd.only_pk = sto_arr;
                            }
                            th.setData(sd);
                        } else {
                            th.setData({
                                is_show_sto_cat: -1,
                                only_pk: e.data.data.pageData
                            });
                            //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------
                            if (!th.data.def_pick_store) {
                                th.setData({
                                    def_pick_store: e.data.data.pageData[0]
                                })
                            }
                        }
                    } else {
                        th.setData({
                            is_show_sto_cat: -1,
                            only_pk: e.data.data.pageData
                        });
                        //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------
                        if (!th.data.def_pick_store) {
                            th.setData({
                                def_pick_store: e.data.data.pageData[0]
                            })
                        }
                    }
                }
            });
        } else {
            th.setData({
                is_show_sto_cat: 0,
                only_pk: e.data.data.pageData
            });
            //-----如果没有默认门店,要取第一个门店作为默认店------
            if (!th.data.def_pick_store && th.data.bconfig && th.data.bconfig.is_sort_storage) {
                if (e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) {
                    th.setData({
                        def_pick_store: e.data.data.pageData[0],
                        sto_sele_name: e.data.data.pageData[0].pickup_name,
                        sto_sele_id: e.data.data.pageData[0].pickup_id,
                        sto_sele_distr: e.data.data.pageData[0].distr_type
                    })
                }
            }
        }
    },
    //---选择分类门店---
    choice_sort_store: function (e) {
        var index = e.currentTarget.dataset.index;
        var region_name = e.currentTarget.dataset.region;
        var item = this.data.all_sto[index];
        this.setData({
            region_name: region_name,
            sort_store: 0,
            choice_sort_store: 1,
            sec_sto: item,
            sec_pick_index: 0
        });
    },
    choose_for_store_fir: function (e) {
        var index_c = e.currentTarget.dataset.ind;
        var th = this;
        th.setData({
            fir_pick_index: index_c
        })
    },
    //确定def_pick为选择的门店
    sure_pick: function (e) {
        var th = this;
        var item = null;
        var openindstore = th.data.open_ind_store;
        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?th.data.only_pk[index]:null; //当没有门店分类的时候
            }
        } else {
            var index = th.data.sec_pick_index;
            item = th.data.sec_sto.s_arr[index];
        }
        if(!item) return  false;
        //判断门店的配送方式是不是匹配
        var g_distr_type = 0;
        if (th.data.sele_g)
            g_distr_type = th.data.sele_g.distr_type;
        if (item.distr_type != 0 && g_distr_type != 0 && item.distr_type != g_distr_type) {
            wx.showToast({
                title: "门店配送方式不匹配",
                icon: 'none',
                duration: 2000
            });
            return false;
        }
        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,
            sort_store: 0
        });
        //只是单纯的选择门店
        if (this.data.only) {
            this.data.only = 0;
            this.data.sales_map={};
            return false;
        }
        //-- 判断一下库存  --
        th.check_pk_store_conut(function(){
            th.check_is_in_cart(function () {
                th.add_cart_func();
            })
        })
    },
    //---点击二级之后的选择---
    choose_for_store: function (e) {
        var index_c = e.currentTarget.dataset.ind;
        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?th.data.only_pk[index]:null; //当没有门店分类的时候
            }
        } else {
            var index = th.data.sec_pick_index;
            item = th.data.sec_sto.s_arr[index];
        }
        if(!item) return false;
        //判断门店的配送方式是不是匹配
        var g_distr_type = th.data.sele_g.distr_type;
        if (item.distr_type != 0 && g_distr_type != 0 && item.distr_type != g_distr_type) {
            wx.showToast({
                title: "门店配送方式不匹配",
                icon: 'none',
                duration: 2000
            });
            return false;
        }
        //先设置之前,要判断是不是有库存
        var user_id = getApp().globalData.user_id;
        var def_pickup_id = item.pickup_id;
        getApp().request.put('/api/weshop/users/update', {
            data: {
                user_id: user_id,
                def_pickup_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,
            sort_store: 0, //关闭门店2级
        });
        th.add_cart_func();
    },
    // 返回按钮
    returns: function () {
        this.setData({
            sort_store: 0,
            choice_sort_store: 0
        });
    },
    //选择更多门店
    more_store: function () {
        this.setData({
            sort_store: 1
        });
    },
    //关闭选择门店
    close_popup: function (e) {
        var th = this;
        this.setData({
            store: 0,
            choice_sort_store: 0,
            sort_store: 0,
            fir_pick_index: 0,
            sec_pick_index: 0
        })
    },
    //-------------获取购买数量的总函数----------------
    get_buy_num: function (gd, func) {
        var map = this.data.g_buy_num,
            th = this,
            user_id = getApp().globalData.user_id;
        if (user_id == null) {
            getApp().goto("/packageE/pages/togoin/togoin");
            return false;
        }
        if (map && map.has(gd.goods_id)) {
            "function" == typeof func && func();
        } else {
            var res1 = null;
            //----获取商品购买数----
            getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
                data: {
                    store_id: os.stoid,
                    user_id: user_id,
                    goods_id: gd.goods_id,
                    prom_type: 7,
                    prom_id: th.data.act.id
                },
            }).then(res2 => {
                var g_buy_num = 0;
                var promgoodsbuynum = 0;
                if (res2.data.code == 0) {
                    var buy_num_data = res2.data.data;
                    if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
                    g_buy_num = buy_num_data.goodsbuynum;
                }
                if (!map) map = new Map();
                var ob = {
                    gd_buynum: g_buy_num,
                    prom_buybum: promgoodsbuynum,
                }
                map.set(gd.goods_id, ob);
                th.setData({
                    g_buy_num: map
                });
                "function" == typeof func && func();
            })
        }
    },
    //-- 当是减数量的调用 --
    sub_updata_cart() {
        var th = this;
        var index = this.data.sele_index;
        var txt = "list[" + index + "].haveAdded";
        var txt1 = "list[" + index + "].num";
        var txt2 = "list[" + index + "].showNum";
        var cur_price = this.data.sele_g.shop_price;
        if (th.data.card_field && this.data.sele_g[th.data.card_field]) {
            cur_price = this.data.sele_g[th.data.card_field];
        }
        var updata = {
            id: th.data.sele_g.cart_id,
            goods_num: th.data.goodsInputNum,
            goods_price: cur_price,
            store_id: os.stoid,
        };
        if (th.data.s_cart_num) {
            updata.goods_num = th.data.s_cart_num;
        }
        //---是不是从收藏夹出来的---
        if (th.data.c_guide_id) {
            updata['guide_id'] = th.data.c_guide_id;
            updata['guide_type'] = 3; //加入购物车之后就变成了3
        } else {
            if (getApp().globalData.guide_id) {
                updata['guide_id'] = getApp().globalData.guide_id;
                updata['guide_type'] = 0;
            }
        }
        //调用接口,更新购物车
        getApp().request.put("/api/weshop/cart/update", {
            data: updata,
            success: function (t) {
                th.setData({
                    [txt1]: th.data.goodsInputNum,
                    [txt2]: true,
                    [txt]: true,
                });
                th.data.adding = 0;
                th.data.sele_store = 1;
                if (th.data.s_cart_num) {
                    var txt_temp = "list[" + index + "].cart_num";
                    th.setData({
                        [txt_temp]: th.data.s_cart_num
                    })
                }
                th.re_sum_price(); //重新统计数量和总金额
            }
        });
    },
    //一 开始的选择门店 --
    choose_store: function (e) {
        var userInfo = getApp().globalData.userInfo;
        if (!userInfo) {
            getApp().goto("/packageE/pages/togoin/togoin");
            return false;
        }
        this.data.only = 1;
        this.setData({
            store: 1
        })
        this.get_sto()
    },
    // -- 加入之前,先判断有没有在购物车中,没有商品就添加 --
    check_is_in_cart: function (func) {
        var th = this;
        var index = th.data.sele_index;
        var txt = "list[" + index + "].haveAdded";
        var txt1 = "list[" + index + "].num";
        var txt2 = "list[" + index + "].showNum";
        var txt3 = "list[" + index + "].cart_id";
        var txt4 = "list[" + index + "].current_price";
        var txt5 = "list[" + index + "].cart_num";
        //----先看会员在购物车中是否加入了该商品-----
        getApp().request.get("/api/weshop/cart/page", {
            data: {
                store_id: os.stoid,
                user_id: oo.user_id,
                goods_id: th.data.sele_g.goods_id,
                pick_id: th.data.sto_sele_id,
            },
            success: function (re) {
                if (re.data.data.total > 0) {
                    var item = re.data.data.pageData[0];
                    th.get_buy_num(th.data.sele_g, function () {
                        //当前的价格要更新进去
                        var cur_price = th.data.sele_g.shop_price;
                        if (th.data.card_field && th.data.sele_g[th.data.card_field]) {
                            cur_price = th.data.sele_g[th.data.card_field];
                        }
                        var prom_buybum = 0;
                        var gd_buynum = 0;
                        //加入也要控制一下限购
                        var check_obj = th.data.g_buy_num.get(th.data.sele_g.goods_id);
                        if (check_obj.gd_buynum && check_obj.gd_buynum > 0) gd_buynum = check_obj.gd_buynum;
                        if (check_obj.prom_buybum && check_obj.prom_buybum > 0) prom_buybum = check_obj.prom_buybum;
                        if (check_obj) {
                            if (check_obj.prom_buybum && check_obj.prom_buybum >= th.data.sele_g.buyqty &&
                                th.data.sele_g.buyqty > 0
                            ) {
                                wx.showToast({
                                    title: "您的已购数量超出活动的限购",
                                    icon: 'none',
                                    duration: 2000
                                });
                                return false;
                            }
                            if (check_obj.gd_buynum && check_obj.gd_buynum >= th.data.sele_g.viplimited &&
                                th.data.sele_g.viplimited > 0
                            ) {
                                wx.showToast({
                                    title: "您的已购数量超出商品的限购",
                                    icon: 'none',
                                    duration: 2000
                                });
                                return false;
                            }
                        }
                        item.cbuy = 'no';
                        var cbuy = th.data.sele_g.viplimited > 0 ? th.data.sele_g.viplimited - gd_buynum : 'no';
                        if (cbuy != 'no') item.cbuy = cbuy;
                        var cbuy2 = th.data.sele_g.buyqty > 0 ? th.data.sele_g.buyqty - prom_buybum : 'no';
                        if (cbuy2 != 'no') {
                            if (item.cbuy == 'no' || item.cbuy > cbuy2) item.cbuy = cbuy2;
                        }
                        var num = item.goods_num;
                        var is_num_change=0;
                        if(num -1 && item.cbuy < item.goods_num) {
                            num = item.cbuy;
                        }
                        th.setData({
                            [txt1]: num,
                            [txt2]: true,
                            [txt]: true,
                            [txt3]: item.id,
                            [txt4]: cur_price,
                            [txt5]: item.goods_num,
                        });
                        var updata = {
                            id: item.id,
                            prom_type: 7,
                            goods_price: cur_price,
                            prom_id: th.data.act.id,
                            store_id: os.stoid,
                            state:0
                        };
                        if (getApp().globalData.guide_id) {
                            updata['guide_id'] = getApp().globalData.guide_id;
                            updata['guide_type'] = 0;
                        }
                        if(is_num_change){
                            updata['goods_num']=num;
                        }
                        getApp().request.put("/api/weshop/cart/update", {
                            data: updata,
                            success: function (t) { }
                        });
                        th.re_sum_price();
                    })
                } else {
                    func();
                }
            }
        })
    },
    //-- 计算统计之后的金额 --
    re_sum_price: function () {
        var all_num = 0; //商品数量之和
        var all_price = 0;
        var need_to_buy = 0;
        var data = this.data.list;
        var all_zhqty = 0; //所有商品要求起购数之后
        var zhqty_bz = []; //超量
        var no_in_arr = [];
        for (var i in data) {
            var item = data[i];
            if (item.num) {
                all_num += item.num;
                all_price += item.num * item.current_price;
                //当有起购数的控制的时候
                if (item.zhqty) {
                    zhqty_bz.push(item);
                    all_zhqty += item.zhqty;
                    if (item.num < item.zhqty) {
                        need_to_buy += item.zhqty - item.num;
                    }
                    if (item.num > item.zhqty) {
                        for (var i = 0; i < item.num - item.zhqty; i++) {
                            no_in_arr.push({
                                price: item.current_price,
                                goods_id: item.goods_id
                            });
                        }
                    }
                } else {
                    for (var j = 0; j < item.num; j++) {
                        no_in_arr.push({
                            price: item.current_price,
                            goods_id: item.goods_id
                        });
                    }
                }
            } else {
                if (item.zhqty) need_to_buy += item.zhqty;
            }
        }
        //当满足组合的要求:总数要满足,起购数要满足
        if (all_num >= this.data.act.zhbuyqty && !need_to_buy) {
            function sortData(a, b) {
                return a.price - b.price
            }
            if (no_in_arr.length) no_in_arr.sort(sortData);
            var aprice = this.data.act.zhprice;
            if (this.data.act.zhbuyqty > all_zhqty) {
                for (var n = 0; n < this.data.act.zhbuyqty - all_zhqty; n++) {
                    no_in_arr.pop();
                }
            }
            //看一下剩下的数量有没有满足组合购的要求,以及要不要倍增
            if (this.data.act.is_bz && no_in_arr.length >= this.data.act.zhbuyqty) {
                var bz_num_ok = 0; //超量倍增是否满足
                var delete_num = 0;
                var zhqty_len = 0; //几个超量倍增
                var be = parseInt(no_in_arr.length / this.data.act.zhbuyqty); //看一下是几倍
                if (this.data.act.is_bzyh && zhqty_bz.length > 0) {
                    if (zhqty_bz.length > 1) {
                        let zhqty_bz_arr = [];
                        let zhqty_bz_flag = this.zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr);
                        if (zhqty_bz_flag) {
                            for (let i = 0; i < zhqty_bz.length; i++) {
                                var vv = zhqty_bz[i];
                                for (let j = 0; j < be * vv['zhqty']; j++) {
                                    let index = no_in_arr.findIndex(i => {
                                        return vv.goods_id === i.goods_id
                                    })
                                    if (index > -1) {
                                        delete_num++
                                        no_in_arr.splice(index, 1)
                                    }
                                }
                            }
                        } else {
                            zhqty_len = 1;
                            let min_bz_num = Math.min.apply(Math, zhqty_bz_arr.map(function (o) {
                                return o['num'];
                            }));
                            let new_arr = zhqty_bz_arr.filter(ii => {
                                return ii['num'] == min_bz_num;
                            })
                            var vv = new_arr[0];
                            var bz_num = be * new_arr[0].zhqty; //超量倍增
                            var num = min_bz_num - new_arr[0].zhqty; //购买数量减去超量
                            bz_num_ok = bz_num - num;
                            if (bz_num_ok <= 0) {
                                //超量倍增满足,超量倍增就等于倍数
                                bz_num_ok = bz_num;
                            } else {
                                //超量倍增不满足,倍数要减去多出得
                                // be=be-bz_num_ok;
                                if (num % vv.zhqty == 0) {
                                    be = num / vv.zhqty;
                                } else {
                                    be = Math.floor(num / vv.zhqty)
                                }
                                bz_num_ok = be * vv.zhqty;
                            }
                            for (let i = 0; i < zhqty_bz.length; i++) {
                                let item1 = zhqty_bz[i];
                                for (let j = 0; j < be * item1['zhqty']; j++) {
                                    let index = no_in_arr.findIndex(i => {
                                        return item1.goods_id === i.goods_id
                                    })
                                    if (index > -1) {
                                        // delete_num++
                                        no_in_arr.splice(index, 1)
                                    }
                                }
                            }
                            aprice += be * aprice;
                        }
                    } else {
                        var vv = zhqty_bz[0];
                        var bz_num = be * vv.zhqty; //超量倍增
                        var num = vv['num'] - vv.zhqty; //购买数量减去超量
                        if (num > 0) {
                            bz_num_ok = bz_num - num;
                            if (bz_num_ok <= 0) {
                                //超量倍增满足,超量倍增就等于倍数
                                bz_num_ok = bz_num;
                            } else {
                                //超量倍增不满足,倍数要减去多出得
                                // be=be-bz_num_ok;
                                if (num % vv.zhqty == 0) {
                                    be = num / vv.zhqty;
                                } else {
                                    be = Math.floor(num / vv.zhqty)
                                }
                                bz_num_ok = be * vv.zhqty;
                            }
                            for (let j = 0; j < bz_num_ok; j++) {
                                let index = no_in_arr.findIndex(i => {
                                    return vv.goods_id === i.goods_id
                                })
                                if (index > -1) {
                                    delete_num++
                                    no_in_arr.splice(index, 1)
                                }
                            }
                        } else {
                            zhqty_len = 1;
                        }
                    }
                }
                if (!zhqty_len) {
                    //多个超量就不用pop了
                    aprice += be * aprice;
                    let pop_num = be * this.data.act.zhbuyqty - delete_num;
                    for (var m = 0; m < pop_num; m++) {
                        no_in_arr.pop();
                    }
                }
            }
            //算一下剩余的钱
            if (no_in_arr.length) {
                for (var ii in no_in_arr) {
                    var item = no_in_arr[ii];
                    aprice += item.price;
                }
            }
            all_price = aprice;
        }
        this.data.changing = 0;
        this.setData({
            all_price: all_price,
            need_to_buy: need_to_buy,
            all_num: all_num
        })
        if (all_num <= 0) {
            this.data.sele_store = 0; //什么都没有选,就没有选择了门店
        }
    },
    go_cart: function () {
        getApp().goto("/pages/cart/cart/cart");
    },
    //获取购物车中,相应的门店已购买的商品
    get_cart_val: function (e) {
        var th = this;
        var user_id = getApp().globalData.user_id;
        var req = {
            user_id: user_id,
            store_id: os.stoid,
            pageSize: 600,
            state: 0,
            prom_type: 7,
            prom_id: this.data.act.id
        };
        //获取购物车列表
        getApp().request.get("/api/weshop/cart/list", {
            data: req,
            success: async function (e) {
                if(ut.ajax_ok(e)) {
                    var map = {};
                    var mlist = e.data.data.pageData;
                    th.data.cart_list = mlist;
                    for (let i in mlist) {
                        let item = mlist[i];
                        if (item.prom_type != 7) continue;
                        if (item.prom_id != th.data.act.id) continue;
                        if(th.data.def_pick_store && th.data.def_pick_store.pickup_id){
                             if(item.pick_id!=th.data.def_pick_store.pickup_id){
                                 continue;
                             }
                        }
                        map[item.goods_id] = item;
                    }
                    //-- 循环活动的从表 --
                    for (let j in th.data.list) {
                        let item_j = th.data.list[j];
                        item_j.current_price = item_j.shop_price;
                        var card_price = 0;
                        //如果会员有等级价
                        if (th.data.card_field) {
                            card_price = item_j[th.data.card_field];
                            if (card_price > 0) {
                                item_j.current_price = card_price;
                            }
                        }
                        if (map[item_j.goods_id]) {
                            var cart_num = map[item_j.goods_id].goods_num;
                            item_j.num = cart_num;
                            item_j.pickup_no = map[item_j.goods_id].pickup_no;
                            item_j.pick_id = map[item_j.goods_id].pick_id;
                            //判断库存是不是存在
                            var can_qty=await th.check_pk_store_conut(null,1,item_j,cart_num);
                            if(!can_qty){
                                item_j.num=0;
                                continue;
                            }
                            item_j.cart_num = cart_num;
                            item_j.cart_id = map[item_j.goods_id].id;
                            if (item_j.buyqty > 0) {
                                var g_buy_num = 0;
                                var promgoodsbuynum = 0;
                                //----获取商品购买数----
                                await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
                                    data: {
                                        store_id: os.stoid,
                                        user_id: user_id,
                                        goods_id: item_j.goods_id,
                                        prom_type: 7,
                                        prom_id: th.data.act.id
                                    },
                                }).then(res2 => {
                                    if (res2.data.code == 0) {
                                        var buy_num_data = res2.data.data;
                                        if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
                                        g_buy_num = buy_num_data.goodsbuynum;
                                    }
                                })
                                if (item_j.viplimited > 0) {
                                    var cby = item_j.viplimited - g_buy_num;
                                    if (cby <= 0) continue; //不能买就continue下一个
                                    item_j.num = cby > item_j.num ? item_j.num : cby;
                                }
                                if (item_j.buyqty > 0) {
                                    var cby = item_j.buyqty - promgoodsbuynum;
                                    if (cby <= 0) continue; //不能买就continue下一个
                                    item_j.num = cby > item_j.num ? item_j.num : cby;
                                }
                            }
                            item_j.haveAdded = 1;
                            item_j.showNum = true;
                        }
                    }
                    th.setData({
                        list: th.data.list
                    });
                    th.re_sum_price();
                }
            }
        });
    },
    //滚动加载跟多的时候的计算
    async calc_more(list, func) {
        var th = this;
        var map = {};
        var mlist = this.data.cart_list;
        for (let i in mlist) {
            let item = mlist[i];
            if (item.prom_type != 7) continue;
            if (item.prom_id != th.data.act.id) continue;
            map[item.goods_id] = item;
        }
        for (let j in list) {
            let item_j = list[j];
            item_j.current_price = item_j.shop_price;
            var card_price = 0;
            //如果会员有等级价
            if (th.data.card_field) {
                card_price = item_j[th.data.card_field];
                if (card_price > 0) {
                    item_j.current_price = card_price;
                }
            }
            if (map[item_j.goods_id]) {
                var cart_num = map[item_j.goods_id].goods_num;
                item_j.num = cart_num;
                item_j.cart_num = cart_num;
                item_j.cart_id = map[item_j.goods_id].id;
                if (item_j.buyqty > 0) {
                    var g_buy_num = 0;
                    var promgoodsbuynum = 0;
                    //----获取商品购买数----
                    await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
                        data: {
                            store_id: os.stoid,
                            user_id: oo.user_id,
                            goods_id: item_j.goods_id,
                            prom_type: 7,
                            prom_id: th.data.act.id
                        },
                    }).then(res2 => {
                        if (res2.data.code == 0) {
                            var buy_num_data = res2.data.data;
                            if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
                            g_buy_num = buy_num_data.goodsbuynum;
                        }
                    })
                    if (item_j.viplimited > 0) {
                        var cby = item_j.viplimited - g_buy_num;
                        if (cby <= 0) continue; //不能买就continue下一个
                        item_j.num = cby > item_j.num ? item_j.num : cby;
                    }
                    if (item_j.buyqty > 0) {
                        var cby = item_j.buyqty - promgoodsbuynum;
                        if (cby <= 0) continue; //不能买就continue下一个
                        item_j.num = cby > item_j.num ? item_j.num : cby;
                    }
                }
                item_j.haveAdded = 1;
                item_j.showNum = true;
            }
        }
        if (func) func(list)
    },
    zhqty_bz_fun(zhqty_bz, be, zhqty_bz_arr) {
        let zhqty_bz_flag = true;
        for (let i = 0; i < zhqty_bz.length; i++) {
            let item = zhqty_bz[i];
            let bz_num = be * item['zhqty']; //超量倍增
            let num = item['num'] - item['zhqty']; //购买数量减去超量
            if (bz_num > num) {
                zhqty_bz_flag = false;
                zhqty_bz_arr.push(item);
                // zhqty_bz.splice(i,1)
            }
        }
        return zhqty_bz_flag;
    }
})