//预付定金
var t = getApp(), app = t, a = t.request, ut = require("../../../../utils/util.js");
var os = t.globalData.setting;
var regeneratorRuntime = require('../../../../utils/runtime.js');
var util_pay = require("../../../../utils/pay.js");
const t_pay = require("../../../../utils/pay2.js");
 
Page({
  data: {
    url: t.globalData.setting.url,
    resourceUrl: t.globalData.setting.resourceUrl,
    imgUrl: t.globalData.setting.imghost,
    goods: null,
    order: null,
    orderPrices: null,
    coupons: null,
    coupon: null,
    invoiceToggle: !0,
    payWithUserMoney: !0,
    payWithPoints: !0,
    maxWord: 0,
    enterAddressPage: !1,
    firstEnter: !0,
    //页面获取的参数
    param: null,
    postdata: null,
    //提交订单的格式
    formData: {
      order_amount: 0,//支付金额
      total_amount: 0,//总价
      all_price: 0,//商品卖的总价
      pay_points: 0,//使用积分
      user_money: 0,//使用余额
      couponCode: "",//使用优惠券(多单就用逗号隔开)
      shipping_price: 0,//物流费用
    },

    /*----------------立即购买---------------------*/
    is_b_now: 0,    //0是购物车结算  1立即购买
    bn_goods: null, //立即购买时候的调用商品
    bn_use_money: 0,//是否使用余额
    bn_exp_type: 1, //0是物流 1自提
    bn_pick: 0,     //选择的门店
    bn_pickname: "", //选择的门店名称
    bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流
    /*------------------------*/
    user_addr: null,//物流
    userinfo: null, //获取会员
    /*----------物流选择--------*/
    wu_arr: null,
    index: 0,
    udata: null,//用户预存值，数据
    //判断页面是返回回来的还是 首次进入的
    isclose: 1,
    is_express: 0,//选择物流的控制器
    yuer: 0,
    agree_no_ref: 0,
    is_pre_cut:0, //是否可以使用预存 0是不可以1的可以
    bconfig: null,
    showFold:true,

    is_fwk:0,  //判断服务卡项的类型
    template_id:[],
  },
  onReady() {
    setTimeout(() => {
      wx.createSelectorQuery().selectAll(".showArea, .hideArea").boundingClientRect(res => {
        if (res.length != 0) {
          this.setData({
            showFold: res[0].height < res[1].height,
          });
        };

      }).exec();
    }, 1000);

  },
  
  clickCollapse() {
    this.setData({
      flag: !this.data.flag,
    })
  },
  onLoad: async function (t) {
    //定义第一次进入
    this.data.fir_in=1;

    wx.setNavigationBarTitle({
      title: "填写订单",
    });
    var th = this; this.setData({ is_b_now: 1 });
    th.data.postdata = getApp().get_b_now();
    th.data.param = t;
    getApp().getConfig2(function (e) {
      th.setData({
        bconfig: e
      });
    }, 1);

    var gg = getApp().get_b_now();

    if(gg.fwk){
      this.setData({is_fwk: 1});
    }
    try {
      let template_id =await getApp().get_template_id('1001,1012,1027')
      this.setData({
        template_id
      })
    } catch (error) {}
  },
  onUnload: function () { this.setData({ isclose: 1 }) },

  //------获取会员信息-----先获取用户信息，在进行下一步---
  get_info: function (func) {
    var user_id = t.globalData.user_id;
    app.auth.get_u(func);
  },

  //-------------------获取物流---------------
  get_wuliu(func) {
    var th = this;
    app.getwuliu(function (e) {
      if (th.data.is_default_logistics) {
        //如果第一个不是开启默认，说明要让用户自己选
        if (!e[0].is_default) {
          th.setData({ is_default_logistics: 0 });
        }
      }
      th.setData({ wu_arr: e })
      typeof func == "function" && func();
    })
  },

  //------获取会员收货地址-----
  getuser_addr: function (func) {
    if (app.globalData.baddr != null) {
      var user_addr = app.globalData.baddr;
      app.globalData.baddr = null;
      func(user_addr);
    } else {
      a.get("/api/weshop/useraddress/page", {
        data: { user_id: app.globalData.user_id, store_id: os.stoid, pageSize: 600 },
        success: function (su) {

          var user_addr = su.data.data.pageData;
          var item = null;
          var def_item = null;
          for (var i = 0; i < user_addr.length; i++) {
            if (user_addr[i]['is_default'] == 1) { def_item = user_addr[i]; }
            if (user_addr[i]['is_pickup'] == 1) { item = user_addr[i]; }
          }
          if (item == null) item = def_item;
          if (item == null) item = user_addr[0];
          if (item == undefined) item = null;
          func(item);
        }
      });
    }
  },
  //----------------展示页面,是再获取用户信息之后--------------
  show_page: async function () {
    var th = this;
    //获取用户预存款
    await th.getAdvancesum()
    var user = getApp().globalData.userInfo;
    getApp().request.get("/api/weshop/users/get/" + os.stoid + "/" + user.user_id, {
      data: { r: Math.random() },
      success: function (e) {

        getApp().globalData.userInfo = e.data.data;
        th.setData({ userinfo: e.data.data });
        //获取立即购买的商品信息
        th.get_buy_goods();

        //获取提现金额
        getApp().request.get("/api/weshop/withdrawals/summoney", {
          data: { user_id: app.globalData.user_id, store_id: os.stoid, status: 0 },
          success: function (su) {
            if (su.data.code == 0) {
              var yuer = parseFloat(th.data.userinfo.user_money -
                (th.data.userinfo.frozen_money > 0 ? th.data.userinfo.frozen_money : 0) - su.data.data.summoney).toFixed(2);
              if (yuer < 0) yuer = 0;
              th.setData({ txmon: su.data.data.summoney, yuer: yuer });
            }
          }
        });
      }
    });
  },

  //-----获取立即购买的商品信息----
  get_buy_goods: async function () {
    var th = this, a = getApp().request;
    //定义变量
    var gg = th.data.postdata, act = null, prelist = null;
    var url = "/api/weshop/marketing/marketingPresellForm/get/" + os.stoid + "/" + gg.prom_id;
    await getApp().request.promiseGet(url, {}).then(res => {
      if (res.data.code == 0) {
        act = res.data.data;
      }
    })
    if (!act) {
      wx.showToast({ title: "未找到活动", icon: 'none', duration: 3000 });
      return false;
    }
    if (act.is_end == 1) {
      wx.showToast({ title: '活动已经结束', icon: 'none', duration: 3000 });
      return false;
    }
    if (ut.gettimestamp() > act.end_time) {
      wx.showToast({ title: "活动定金支付时间已过期", icon: 'none', duration: 3000 });
      return false;
    }

    var url = "/api/weshop/marketing/marketingPresellList/get/" + os.stoid + "/" + gg.presell_list_id;
    await getApp().request.promiseGet(url, {}).then(res => {
      if (res.data.code == 0) {
        prelist = res.data.data;
      }
    })
    if (!prelist) {
      wx.showToast({ title: "未找到商品", icon: 'none', duration: 3000 });
      return false;
    }

     if(gg.fwk){
         th.get_card_detail(prelist,act,gg);
     }else{
        th.get_goods_detail(prelist,act,gg);
     }

  },

  //获取服务卡项的详情
  get_card_detail(prelist,act,gg){
    var th=this;
    //--------如果goods_id一样，就是要立即购买-----
    var cd_url="/api/weshop/serviceCard/get/" + os.stoid + "/" + gg.goods_id
    //-- 调用商品 --
    a.get(cd_url, {
      success: function (t) {
        var gd = t.data.data;
        if (!gd) return false;

        t.data.data.original_img = os.imghost + t.data.data.imgUrl;
        t.data.data['buynum'] = gg.goods_num;
        t.data.data.prom_type=8;
        t.data.data.prom_id=gg.prom_id;
        t.data.data.goods_name=t.data.data.serviceName;

        var distr_t = 0, et = 1;

        t.data.data.shop_price = prelist.presell_money;
        th.setData({
          bn_goods: t.data.data, bn_pickname: gg.pick_name, prelist: prelist, act: act,
          bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et,fwk:1
        });
        //计算价格
        th.calculatePrice2();
      }
    });
  },

  //获取商品的详情
  get_goods_detail(prelist,act,gg){
    var th=this;
    //-- 调用商品 --
    a.get("/api/weshop/goods/get/" + os.stoid + "/" + gg.goods_id, {
      success: function (t) {
        var gd = t.data.data;
        if (!gd) return false;

        t.data.data.original_img = os.imghost + t.data.data.original_img;
        t.data.data['buynum'] = gg.goods_num;
        t.data.data.prom_type=8;
        t.data.data.prom_id=gg.prom_id;

        var distr_t = 0, et = 0;

        if (t.data.data.is_minishop == 1 && getApp().is_sp_hao()) {

          if (t.data.data.distr_type == 1 || gg.pick_dis == 1) {
            wx.showToast({
              title: "视频号仅支持物流",
              icon: 'none',
              duration: 2000
            })

            setTimeout(function () {
              wx.navigateBack({ delta: 1 })
            }, 1000)

            return false
          }

          t.data.data.distr_type = 2;
          th.setData({ show_same_city: 0 })

        }


        if (t.data.data.distr_type == 0) {
          distr_t = gg.pick_dis;
        } else {
          distr_t = t.data.data.distr_type;
        }

        if (act.presell_type == 1) {
          switch (distr_t) {
            case 0:
              et = 1;
              //-- 系统后台有设置要默认的 --
              if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) et = 0;
              break;
            case 1:
              et = 1;
              break;
            case 2:
              et = 0;
              break;
          }
        } else {
          et = 1;  //要付定金的时候
        }

        t.data.data.shop_price = prelist.presell_money;
        th.setData({
          bn_goods: t.data.data, bn_pickname: gg.pick_name, prelist: prelist, act: act,
          bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et
        });
        //计算价格
        th.calculatePrice2();
      }
    });
  },

  //----------子页返回父页触发----------
  onShow: function () {


    let o_list="/pages/user/order_list/order_list";
    if(this.data.is_fwk){
       o_list='/pages/user/order_list/order_list?index=2&tabindex=1';
    }

    var fy=ut.fy_back(o_list,1);
    if(fy) return false;

    util_pay.set_fir();
    t_pay.set_fir();

    var th = this;
    //判断是不是第一次进入
    if(this.data.fir_in){
      this.data.fir_in=0;
    }else{

      //-- 支付完成后的跳转的时间 --
      var ok_url = "/packageC/pages/presell/cart/cart?order_sn=" +this.data.ok_order_sn;
      var err_url="/pages/user/order_list/order_list";
      if(this.data.is_fwk){
        err_url='/pages/user/order_list/order_list?index=2&tabindex=1';
        ok_url+="&is_fwk=1";
      }

      //-- 通联的第三方支付的返回优化 --
      ut.is_pay_ok(th.data.ok_order_sn,ok_url,err_url,function (){
        if(!th.data.ok_order_sn) return false;

        let ord_url='';
        let ord_req={};

        //如果是服务卡项的时候
        if(th.data.is_fwk){
          ord_url="/api/weshop/recharge/user/page";
          ord_req={store_id:os.stoid,order_sn:th.data.ok_order_sn,user_id:getApp().globalData.user_id};
        }else{
          ord_url="/api/weshop/order/page";
          ord_req={store_id:os.stoid,parent_sn:th.data.ok_order_sn};
        }


        console.log('onshow-py-1111');
        console.log(ord_url);
        console.log(ord_req);


        getApp().request.promiseGet(ord_url,
            {data:ord_req}).then(res=>{
          if(ut.ajax_ok(res)){
            var item=res.data.data.pageData[0];
            if(item.pay_time){
              //支付支付，返回首页
              ut.m_toast('支付成功');
              setTimeout(()=>{
                getApp().re_to(ok_url);
              },1000)

            }else{
              //支付支付，返回首页
              ut.m_toast('支付失败');
              setTimeout(()=>{
                getApp().re_to(err_url);
              },1000)
            }
          }
        })


      });
    }

    if (th.data.isclose == 0) {
      wx.navigateTo({
        url: "/pages/index/index/index"
      })
    } else {
      this.getuser_addr(function (ie) {
        //更换地址回来要重新调用计算价钱的接口
        th.setData({ user_addr: ie });
        if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) {
          th.setData({ add_back: 1,same_ok: 1 });
          if (th.data.bn_goods) th.calculatePrice2();
        }
      })
      //--更新默认地址--,看一下是不是跳到地址页面
      if (!getApp().globalData.is_cart_old) {
        this.update_code();
      } else {
        getApp().globalData.is_cart_old = 0;
      }
    }

    //先获取是否有关闭使用优惠券
    getApp().getConfig2(function (ee) {
      var json_d = JSON.parse(ee.switch_list);
      th.data.json_d = json_d;
      th.data.ispt_goods = json_d.ispt_goods;  //是不是平摊到单品的控制参数赋值
      var is_default_logistics = json_d.is_default_logistics;

      th.setData({is_pre_cut:json_d.is_pre_cut, is_close_quan: json_d.is_close_quan, sales_rules: ee.sales_rules, rank_switch: json_d.rank_switch, is_default_logistics: is_default_logistics });

      var rank_switch = json_d.rank_switch;
      var max_price = -1;
      var show_card = null;
      var name = "";
      //如果有开等级卡的时候,
      //因为都是调接口，要返回在计算
      if (rank_switch == 2) {
        //-- 获取所有的等级卡, --
        getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid,
          {}).then(res => {
            if (res.data.code == 0) {
              var plusCard = res.data.data;
              //-- 循环判断，拿到最贵的那张卡 --
              for (var ih in plusCard) {
                if (plusCard[ih].IsStopBuy == true) { continue; }
                if (max_price < 0) {
                  max_price = plusCard[ih].CardFee;
                  name = 'card' + plusCard[ih]['CorrPrice'];
                  show_card = plusCard[ih];
                } else {
                  if (max_price < plusCard[ih].CardFee) {
                    max_price = plusCard[ih].CardFee;
                    name = 'card' + plusCard[ih]['CorrPrice'];
                    show_card = plusCard[ih];
                  }
                }
              }

              if (show_card) {
                name = name.toLowerCase();
                th.setData({ card_name: name, show_card: show_card })
              }
            }
            //-----先获取物流，再获取用户信息，再展示页面-----
            th.get_wuliu(th.get_info(th.show_page));
          })
      } else {
        //-----先获取物流，再获取用户信息，再展示页面-----
        th.get_wuliu(th.get_info(th.show_page));
      }
    }, 1)

  },
  //获取预存款余额
  async getAdvancesum() {
    /*-----获取线下会员的预存款和优惠券的数量-----*/
    let url = "/api/weshop/users/getinfo/" + os.stoid + "/" + getApp().globalData.userInfo.user_id
    await getApp().request.promiseGet(url, {
      data: {
        isShowLoading: 0,
      },
    }).then(su => {
      if (su.data.code == 0 && su.data.data) {
        var data = su.data.data;
        if (!data) data = {};
        data.cashcount = parseInt(data.cashcount);
        this.setData({
          udata: data,
        });
      }
    })

  },
  //购物车预存开启关闭
  prestore(e) {
    let ind = e.currentTarget.dataset.ind;
    let item = e.currentTarget.dataset.item
    let txt = 'cartlist[' + ind + '].yck_off';
    let txt1 = 'old_cartlist[' + ind + '].yck_off';
    if (item.yck_off == 2) {
      this.setData({ [txt]: 1, [txt1]: 1 })
    } else if (item.yck_off == 1) {
      this.setData({ [txt]: 2, [txt1]: 2 })
    }
    this.calculatePrice()//计算金额
  },
  //直接购买预存开启关闭
  prestore2() {
    let txt = 'bn_goods.yck_off';
    if (this.data.bn_goods.yck_off == 2) {
      this.setData({ [txt]: 1 })
    } else if (this.data.bn_goods.yck_off == 1) {
      // let atxt10 = "formData.prestore"; //预存金额
      // this.setData({
      //   [atxt10]:0
      // })
      this.setData({ [txt]: 2 })
    }
    this.calculatePrice2()//计算金额
  },
  //计算商品预存款前置方法------------------------------------
  async beforAdvancesum(cartList) {
    // let cartList= this.data.cartlist
    // let cartList= arr
    // let length = cartList.length
    if(!this.data.is_pre_cut){
      return {}
    }
    wx.showLoading({
      title: '加载中',
      mask: true
    })
    // for (let i = 0; i < length; i++) {
    let item = cartList;
    let goods = item.goods
    let keyid = item.sto.keyid
    let listform = []
    goods.map(ite => {
      let obj = {
        wareno: ite.goods_sn,
        price: ite.goods_price,
        qty: ite.goods_num,
        sumprice: ite.sumprice
      }
      listform.push(obj)
    })
    let arr = await this.getGoodsAdvancesum(keyid, listform, cartList)
    // }
    wx.hideLoading()
    return arr
  },
  //计算商品预存款请求方法------------------------------------
  async getGoodsAdvancesum(storageid, listform, cartList) {
    if(!getApp().globalData.config){
      await getApp().request.promiseGet("/api/weshop/store/get/" + os.stoid,{
      }).then(res=>{
        if(res.data.code==0){
          getApp().globalData.config = res.data.data
        }
      })
    }
    if(!getApp().globalData.config) return false;

    let res = await getApp().request.promisePost(`/api/weshop/delphiapi/saveErpApi`, {
      data: {
        accdb: getApp().globalData.config.erpid,
        ApiName: 'api.pos.shop.advancesum.seek',
        usercode: "admin",
        vipid: this.data.userinfo.erpvipid,
        oddsum: "0",
        advancesum: cartList.order_amount,
        storageid: storageid,
        listform
      },
      is_json: 1
    })
    console.log('计算商品的预存款');
    console.log(res);
    let yck = 0
    let yckid = ""
    let yckIdArr = []
    let pre_json = null
    if (res.data.code == 0 && res.data.data && res.data.data.length > 0) {
      let resData = res.data.data
      resData.map(ite => {
        yck += ite.advancesum*1
        yckIdArr.push(ite.advanceitemid)
      })
      pre_json = resData
    }
    yckid = yckIdArr.join()
    let obj = {}
    if (yck * 1 > 0) {
      obj.yck_off = 1
    } else {
      obj.yck_off = 0
    }
    obj.yck = yck.toFixed(2)
    obj.yckid = yckid
    obj.pre_json = pre_json
    return obj
  },




  //---------------检查是否有收货地址-------------------
  checkAddressList: function () {
    var t = this;
    return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({
      title: "请先填写或选择收货地址~",
      success: function (a) {
        a.confirm ? t.enterAddressPage() : wx.navigateBack();
      },
      fail: function () {
        wx.navigateBack();
      }
    }), !1);
  },
  showInvoice: function () {
    this.setData({
      invoiceToggle: !this.data.invoiceToggle
    });
  },
  keyUpChangePay1: function (t) {
    this.setData({
      payWithUserMoney: !(t.detail.value.length > 0)
    });
  },
  keyUpChangePay2: function (t) {
    this.setData({
      payWithPoints: !(t.detail.value.length > 0)
    });
  },
  keyUpChangeNum: function (t) {
    this.setData({
      maxWord: t.detail.value.length
    });
  },
  //---------计算立即购买----------
  calculatePrice2: function () {
    console.log('calculatePrice2');
    var th = this, good = this.data.bn_goods;
    //-----------计算商品总价--------------
    var allpice = good.shop_price * good.buynum;
    allpice = parseFloat(allpice).toFixed(2);
    var txt = "formData.all_price";
    th.setData({ [txt]: allpice, });
    console.log(th.data.formData);

    app.getwuliuprice(async function (rs) {
      var o_shipping_price = 0, goods_weight = -1, goods_piece = -1;
      var out_of_weight = null; //超出多少重量

      //-----------当地址不为空，且是物流时，计算物流费用,同时阶梯团不计算拼团价格----------
      if (th.data.user_addr != null && th.data.bn_exp_type == 0
        && good.is_free_shipping == 0 && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) {

        var user_addr = th.data.user_addr;
        var req_d = {
          province: user_addr.province, city: user_addr.city, district: user_addr.district,
          wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid
        }
        var back_data = null;
        await getApp().request.promisePost("/api/weshop/order/areaFreight", {
          is_json: 1, data: req_d
        }).then(rs => {
          if (rs.data.code == 0) back_data = rs.data.data;
        });

        var gd_arr_list = [];
        gd_arr_list.push(good);
        var cut_good_weight = 0;
        for (let i in gd_arr_list) {
          let item = data[i];

          if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) {
            if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) {
              goods_weight += item['weight'] * item['buynum'];
              cut_good_weight += item['weight'] * item['buynum'];
            }
            if (back_data.weight_free > 0) {
              out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
            }
            continue;

          }

          switch (item['exp_sum_type']) {
            case 1:
              //统一运费
              o_shipping_price += item['uniform_exp_sum'];
              break;
            case 2:
              if (goods_weight < 0) goods_weight = 0;
              //累积商品重量 每种商品的重量 * 数量
              goods_weight += item['weight'] * item['buynum'];

              if (back_data && back_data.is_by_all && !back_data.no_free_goods) {
                cut_good_weight += item['weight'] * item['buynum'];
                if (back_data.weight_free > 0) {
                  out_of_weight = (back_data.weight_free * 1000) - cut_good_weight;
                }
              }
              break;
            case 3:
              if (goods_piece < 0) goods_piece = 0;
              //累积商品数量
              goods_piece += item['buynum'];
              break;
          }
        }

        //如果是正值的时候
        if (out_of_weight >= 0) out_of_weight = -cut_good_weight;
        else out_of_weight = -back_data.weight_free * 1000;


        var code = th.data.wu_arr[th.data.index].code;
        var shipping_price =
          th.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight,
            goods_piece, th.data.user_addr, freight_free, allpice, rs);

        shipping_price = parseFloat(shipping_price).toFixed(2);
        var wl_txt = "formData.shipping_price";
        th.setData({ [wl_txt]: shipping_price, })

      } else {
        var wl_txt = "formData.shipping_price";
        th.setData({ [wl_txt]: 0, })
      }
      //-----------------总价-----------------
      var total_m = parseFloat(allpice) + parseFloat(th.data.formData.shipping_price);
      total_m = parseFloat(total_m).toFixed(2);

      var atxt = "formData.total_amount";
      th.setData({ [atxt]: total_m, })
      var order_m = total_m;
      
      //预存金额使用参与计算
      if (th.data.udata && th.data.udata.Balance > 0 && order_m * 1 > 0) {
        if (!th.data.bn_goods.keyid) {
          //获取门店信息
          await getApp().request.promiseGet("/api/weshop/pickup/list", {
            data: {
              store_id: os.stoid,
              ids: th.data.bn_pick
            }
          }).then(res => {
            if (ut.ajax_ok(res)) {
              console.log(res);
              if (res.data.code == 0) {
                let resData = res.data.data.pageData
                if (resData && resData[0]) {
                  let keyid = resData[0].keyid
                  let txt = 'bn_goods.keyid'
                  th.setData({
                    [txt]: keyid
                  })
                }
              }
            }
          })
        }
        if (th.data.bn_goods.keyid) {
          let cart_yc = await th.beforAdvancesum({
            order_amount: order_m,
            goods: [{
              goods_sn: th.data.bn_goods.goods_sn,
              goods_price: th.data.bn_goods.shop_price || th.data.bn_goods.goods_price,
              goods_num: th.data.bn_goods.buynum || th.data.bn_goods.goods_num,
              sumprice:parseFloat(allpice).toFixed(2)
            }],
            sto: {
              keyid: th.data.bn_goods.keyid
            }
          })

          if (!good.yck_off) {
            good.yck_off = cart_yc.yck_off
          }
          good.yck = cart_yc.yck
          good.yckid = cart_yc.yckid
          good.pre_json = cart_yc.pre_json
          let yct1 = 'bn_goods.yck_off';
          let yct2 = 'bn_goods.yck';
          let yct3 = 'bn_goods.yckid'; 
          let yct4 = 'bn_goods.pre_json';
          th.setData({
            [yct1]: good.yck_off,
            [yct2]: good.yck,
            [yct3]: good.yckid,
            [yct4]: good.pre_json,
          })

          if (good.yck_off && good.yck_off == 2) {
            let order_amount = (order_m - good.yck).toFixed(2);
            let yck = 0
            if (order_amount * 1 > 0) {
              order_m = order_amount;
              // all_prestore+=parseFloat(good.yck);
              yck = parseFloat(good.yck)
            } else {
              // all_prestore+=order_m*1
              yck = parseFloat(order_m)
              order_m = 0
            }
            let atxt10 = "formData.prestore"; //预存金额
            let atxt11 = "formData.pre_json"; //预存json
            let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表
            th.setData({
              [atxt10]: yck,
              [atxt11]: [good.pre_json],
              [atxt12]: [yck],
            })
            // formData.prestore
            // all_yck_arr.push(yck) //真实预存款抵扣金额
            // all_pre_json.push(good.pre_json)
            // all_prestore = parseFloat(all_prestore); //真实预存款抵扣金额总和
          }else{
            let yct1 = 'bn_goods.yck_off';
            let yct2 = 'bn_goods.yck';
            let yct3 = 'bn_goods.yckid';
            let yct4 = 'bn_goods.pre_json';
            let atxt10 = "formData.prestore"; //预存金额
            let atxt11 = "formData.pre_json"; //预存json
            let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表
            th.setData({
              [yct2]: 0,
              [yct3]: '',
              [yct4]: '',
              [atxt10]: 0,
              [atxt11]: '',
              [atxt12]: [],
            })
          }
        }
      } else {
        let yct1 = 'bn_goods.yck_off';
        let yct2 = 'bn_goods.yck';
        let yct3 = 'bn_goods.yckid';
        let yct4 = 'bn_goods.pre_json';
        let atxt10 = "formData.prestore"; //预存金额
        let atxt11 = "formData.pre_json"; //预存json
        let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表
        th.setData({
          [yct2]: 0,
          [yct3]: '',
          [yct4]: '',
          [atxt10]: 0,
          [atxt11]: '',
          [atxt12]: [],
        })
      }
      
      var txt = "formData.user_money";
      var txt2 = "formData.order_amount";
      //--------------如果使用余额---------------------
      if (th.data.bn_use_money == 1 && th.data.yuer > 0) {
        if (parseFloat(th.data.yuer) > order_m) {
          th.setData({ [txt]: order_m, [txt2]: 0 })
        } else {
          order_m = parseFloat(order_m) - parseFloat(th.data.yuer);
          order_m = order_m.toFixed(2);
          th.setData({ [txt]: th.data.yuer, [txt2]: order_m })
        }
      } else {
        th.setData({ [txt]: 0, [txt2]: order_m })
      }

    });

  },


  //-- 服务卡项的支付的下一步 --
  submitForm_card_next: async function() {

    if (this.data.is_summit_ing == 1) return false; //--提交中退出--
    this.data.is_summit_ing = 1;
    var th = this,pdata = new Array();

    var item = {
      'user_id': getApp().globalData.user_id,
      'account': th.data.formData.order_amount, //使用余额
      'store_id': os.stoid, //商家
      'list': new Array(),
    };

    //判断是不是购物车购买还是立即购买
    var gg = app.get_b_now();
    if (!gg.pick_id) {
      getApp().showWarning("未找到门店");
      return false;
    }
    var goods = {
      'card_id': th.data.bn_goods.id,
      'itemid': th.data.bn_goods.erpItemID,
      'qty': gg.goods_num,
      'price': th.data.bn_goods.shop_price,
      // 'price': th.data.formData.order_amount,
      'pickup_id': gg.pick_id,
      'pickup_keyid': gg.keyid,
      'prom_type': this.data.postdata.prom_type,  //促销活动类型
      'prom_id': this.data.postdata.prom_id,     //促销活动id
    };

    if(getApp().globalData.skinface_id){
      goods.skinface_id=getApp().globalData.skinface_id;
    }

    if(this.data.postdata && this.data.postdata.is_pd_normal==1){
      goods.is_pd_normal=1;
    }


    //--导购分享过来的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/" + os.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;
            }
          })
    }

    if(gg.groupchat_id){
      goods.groupchat_id=gg.groupchat_id
    }
    item.list.push(goods);

    pdata = item;
    //var str = JSON.stringify(pdata);
    //console.log("支付数据");
    //console.log(str);
    //return false;
    wx.showLoading({
      title: "加载中"
    });

    getApp().request.promisePost("/api/weshop/recharge/saveRecharge", {
      data: pdata,is_json:1,is_normal:1
    }).then(res => {

        wx.hideLoading();
        if (res.statusCode == 200) {
          var data = res.data;
          if (data.code == 0) {
            th.data.order_id = data.data.order_id;
            th.data.ok_order_sn = data.data.order_sn;

            var order_amount = pdata.account;
            //要进行判断，如果是用微信支付，就要跳转到支付界面
            if (order_amount > 0) {
              th.setData({
                isclose: 0
              });

              t_pay.set_pay_url("/api/weshop/order/pay/createRechargeOrder")
              t_pay.pay(
                  {
                    parentSn: data.data.order_sn,
                    store_id: os.stoid
                  },function (){
                    wx.showToast({
                      title: '购买成功',
                      icon: 'success',
                      duration: 2000
                    });

                    var rurl = "/packageC/pages/presell/cart/cart?is_fwk=1&order_sn=" + data.data.order_sn;
                    setTimeout(function () {
                      wx.reLaunch({
                        url: rurl,
                      })
                    }, 1000)

                  },function (e){

                    console.log('kkkkkkk');

                    wx.showToast({
                      title: e,
                      icon: 'none',
                      duration: 2000
                    });

                    setTimeout(function () {
                      wx.reLaunch({
                        url: "/pages/user/order_list/order_list?index=2&tabindex=1",
                      })
                    }, 1000)

                  }
              )
            }
          } else {
            th.data.is_summit_ing = 0; //是否提交中
            getApp().confirmBox(data.msg);
          }
        } else {
          th.data.is_summit_ing = 0; //是否提交中
          console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode);
        }

    }).catch(function(err) {
      th.data.is_summit_ing = 0; //是否提交中
      wx.hideLoading();
    })
  },

  // -- 商品支付的下一步 --
  submitForm_next: async function (t) {
    if (this.data.is_summit_ing == 1) return false; //--提交中退出--
    this.data.is_summit_ing = 1;

    var th = this, pdata = new Array();
    var ff = true;
    //------------立即购买-------------

    //如果不是阶梯团，或者是普通购买，商家选择了物流，以及地址为空的时候
    //th.data.bn_exp_type == 0 && th.data.user_addr == null
    if (getApp().is_no_addr(th,th.data.bn_exp_type) && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) {
      ff = false;
      getApp().my_warnning("请选择收货地址", 0, this);
      this.data.is_summit_ing = 0;
    }
    if (!ff) return false;
    var addr = th.data.user_addr;
    if (th.data.bn_exp_type == 1) addr = null;

    if (th.data.bn_exp_type == 0 && (th.data.kt_type != 3)) {
      if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) {
        getApp().my_warnning("读取物流失败", 0, this);
        this.data.is_summit_ing = 0;
        return false;
      }
    }

    //阶梯团强制带1，自提~~~
    if (th.data.kt_type == 3) {
      th.data.bn_exp_type = 1;
    }

    var item = {
      'user_id': app.globalData.user_id,
      'consignee': addr == null ? "" : addr.consignee,
      'province': addr == null ? 0 : addr.province,
      'city': addr == null ? 0 : addr.city,
      'district': addr == null ? 0 : addr.district,
      'twon': addr == null ? 0 : addr.twon,
      'address': addr == null ? "" : addr.address,
      'more_address': addr == null ? "" : addr.more_address,
      'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile,
      'email': '',
      'invoice_title': '',
      'goods_price': th.data.formData.all_price,           //商品总价
      'shipping_price': th.data.formData.shipping_price, //物流金额
      'user_money': th.data.formData.user_money,         //使用余额
      'total_amount': th.data.formData.total_amount,     //订单总价
      'order_amount': th.data.formData.order_amount,     //应付
      'user_note': t.detail.value.user_note,             //用户备注
      'store_id': os.stoid,                //商家
      'pickup_id': th.data.bn_pick,       //门店
      'prom_type': th.data.bn_goods.prom_type,  //促销活动类型
      'prom_id': th.data.bn_goods.prom_id,     //促销活动id
      'order_goods': new Array(),
    };

    //老会员成为分销下线需要的参数
    if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) {
      //判断一下分享人是不是分享商
      await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => {
        if (res.data.code == 0) {
          var user = res.data.data;
          if (user.is_distribut == 1) {
            item.first_leader = parseInt(getApp().globalData.first_leader);
          }
        }
      })
    }

    if (th.data.qh != '') {
      item.team_qh = th.data.qh;
      item.pt_listno = th.data.qh;
    }

    var gg = app.get_b_now();
    var goods = {
      'goods_id': gg.goods_id,
      'goods_name': gg.goods_name,
      'goods_sn': gg.goods_sn,
      'goods_num': gg.goods_num,
      'market_price': th.data.bn_goods.market_price,
      'goods_price': th.data.bn_goods.shop_price,
      'member_goods_price': th.data.bn_goods.shop_price,
      'store_id': os.stoid,
      'prom_type': th.data.bn_goods.prom_type,  //促销活动类型
      'prom_id': th.data.bn_goods.prom_id,     //促销活动id
    };

    if (getApp().globalData.skinface_id) {
      goods.skinface_id = getApp().globalData.skinface_id;
    }

    if (th.data.bn_goods.whsle_id) {
      item.is_whsle = 1;
      goods.is_whsle_goods = 1;
    }

    //--导购分享过来的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/" + os.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;
        }
      })
    }
    if(gg.groupchat_id && gg.groupchat_id!='undefined'){
      goods.groupchat_id=gg.groupchat_id
      item.groupchat_ids=gg.groupchat_id
    }
    //--商品的房间号--
    if (gg.room_id && gg.room_id > 0) {
      item.room_ids = gg.room_id;
      goods.room_id = gg.room_id;
    }

    if (th.data.bn_goods.is_normal) { goods.is_pd_normal = 1; }

    item.order_goods.push(goods);
    pdata.push(item);

    if (pdata.length == 0) return;

    //如果有使用预存，要处理
    if (th.data.formData && th.data.formData.prestore * 1 > 0 && th.data.bn_goods.yck_off==2) {
      let formData = th.data.formData
      let pre_json = formData.pre_json
      let all_yck_arr = formData.all_yck_arr
      pdata.map((item, i) => {
        item.pre_cut = all_yck_arr[i] ? all_yck_arr[i].toFixed(2) : 0
        item.pre_preferential = 0
        item.pre_json = pre_json[i] ? JSON.stringify(pre_json[i]) : ''
      })
    }


    if (!pdata.keyid && th.data.bn_goods) {
      pdata.map(ite => {
        ite.keyid = th.data.bn_goods.keyid
      })
      // pdata.keyid = th.data.bn_goods.keyid
    }


    var str = JSON.stringify(pdata);
    wx.showLoading({ title: "加载中" });

    getApp().request.promisePost("/api/weshop/order/createWxdOrder", {
      data: pdata,is_json:1,is_normal:1
    }).then(res => {

        wx.hideLoading();
        if (res.statusCode == 200) {
          var data = res.data;
          if (data.code == 0) {
            console.log(th.data.is_b_now);
            //如果是购物车结算，还要删除购物车
            if (th.data.is_b_now == 0) {
              console.log(th.data.cartlist_y);
              var list = th.data.cartlist_y;
              for (var i = 0; i < list.length; i++) {
                //删除购物车
                getApp().request.delete("/api/weshop/cart/del/" + os.stoid + "/" + list[i].id, {});
              }
            }
            var order_amount = 0;
            pdata.forEach(function (em, ind) {
              order_amount += em.order_amount;
            })


            //要进行判断，如果是用微信支付，就要跳转到支付界面
            if (order_amount && parseFloat(order_amount) > 0) {
              th.setData({ isclose: 0 });

              th.data.ok_order_sn=data.data;
              util_pay.pay(data.data, function () {
                var url = "/packageC/pages/presell/cart/cart?order_sn=" + data.data;
                setTimeout(function () {
                  wx.reLaunch({ url: url, })
                }, 1000)
              }, function () {
                //支付失败
                setTimeout(function () {
                  //wx.navigateBack({ delta: 1 })
                  wx.reLaunch({
                    url: "/pages/user/order_list/order_list",
                  })
                }, 1000)

              }, os.stoid, 1);

            } else {
              var dd = {
                parent_sn: data.data,
                store_id: os.stoid,
                type: 1,
              };
              //return false;
              getApp().request.post("/api/weshop/order/pay/createOrder", {
                data: dd,
                success: function (t) {
                  console.log(t);
                  app.my_warnning("支付成功", 1, th);
                  setTimeout(function () {
                    th.setData({ isclose: 0 });

                    var url = "/packageC/pages/presell/cart/cart?order_sn=" + data.data;
                    wx.reLaunch({
                      url: url
                    })

                  }, 1000)
                }
              });
            }
          }
          else {
            th.data.is_summit_ing = 0;  //是否提交中
            getApp().confirmBox(data.msg);
          }
        } else {
          th.data.is_summit_ing = 0;  //是否提交中
          console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode);
        }
    }).catch(function(err) {
      th.data.is_summit_ing = 0;  //是否提交中
      wx.hideLoading();
    })
  },
  //订阅消息提醒
  sendsm: function (t) {
    let that = this;
    let template_id = this.data.template_id;
    // //授权订阅
    wx.requestSubscribeMessage({
      tmplIds: template_id,
      success(res) {
       that.submitForm(t)
      },
      fail(res) {
        that.submitForm(t)
      }
    })

  },
  //--------------------提交订单-----------------------
  submitForm: function (t) {
    var th = this;
    //如果是部分定金，商家不同意退定金,
    if (this.data.act.presell_type != 1 && !this.data.act.is_refundmoney && !th.agree_no_ref) {
        wx.showModal({
          content: ' 预售商品不允许退定金！是否继续下单？',
          showCancel: true,//是否显示取消按钮
          cancelText: "我在想想",//默认是“取消”
          confirmText: "继续下单",//默认是“确定”
          success: function (res) {
            if (res.cancel) {
              //点击取消,默认隐藏弹框
            } else {
                th.setData({ agree_no_ref: 1 })
                if(th.data.fwk==1){
                  th.submitForm_card_next(t)
                }else{
                  th.submitForm_next(t)
                }
            }
          },
        })
    } else {
        if(th.data.fwk==1){
          th.submitForm_card_next(t)
        }else{
          th.submitForm_next(t)
        }
    }
  },

  useCoupon: function () {
    if (this.data.order.couponNum <= 0) {
      //return t.showWarning("无可用优惠券");
      getApp().my_warnning("无可用优惠券", 0, this);
      return;
    }
    var a = {
      lid: this.data.coupon ? this.data.coupon.id : "0"
    };
    wx.navigateTo({
      url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a)
    });
  },
  enterAddressPage: function () {
    getApp().globalData.is_cart_old = 1;
    this.data.enterAddressPage = !0, wx.navigateTo({
      url: "/packageF/pages/user/address_list/address_list"
    });
  },

  //--------立即购买时，选择自提和物流-----------
  setexptype_w: function (t) {
    var th = this;
    var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt;
    th.setData({ [txt]: ty });
    var iszt = 1;
    if (ty == 0) {
      th.setData({ is_all_zt: 0 });
    } else {
      for (var i = 0; i < th.data.cartlist.length; i++) {
        var item = th.data.cartlist[i];
        if (item.exp_type == 0) { iszt = 0; break; }
      }
      th.setData({ is_all_zt: iszt });
    }
    //----计算此时购物车的价格----
    th.calculatePrice();
  },

  //--------立即购买时，选择自提和物流----------
  setexptype: function (t) {
    var th = this;
    var ty = t.currentTarget.dataset.t;
    th.setData({ bn_exp_type: ty });
    //当物流为空的时候。
    if (ty == 0 && th.data.wu_arr == null) {
      return th.get_wuliu(th.calculatePrice2());
    }
    th.calculatePrice2()
    console.log('setexptype');
  },

  //--------立即购买时，使用余额--------
  set_bn_useyuer: function () {
    var th = this;
    th.setData({ bn_use_money: !th.data.bn_use_money });
    th.calculatePrice2();
  },
  set_js_useyuer: function () {
    var th = this;
    th.setData({ js_use_money: !th.data.js_use_money });
    th.calculatePrice();
  },

  //-------------------计算物流---------------
  calculatewuliu: function (code, o_shipping_price, goods_weight, out_of_weight,
    goods_piece, user_addr, freight_free, o_price, rs) {
    var price = 0, th = this;
    price += parseFloat(o_shipping_price);
    //如果是包邮
    if (freight_free > 0 && o_price >= freight_free && out_of_weight >= 0) { return 0; }
    if (user_addr == null) { return 0; }
    //计算物流的config  item;
    var item = null;
    //先根据 镇 县 区找计算的config
    item = th.get_wuliu_config(user_addr.district, code, rs);
    if (item == null) item = th.get_wuliu_config(user_addr.city, code, rs);
    if (item == null) item = th.get_wuliu_config(user_addr.province, code, rs);
    if (item == null) item = th.get_wuliu_default(code, rs);
    if (item == null) return o_shipping_price;
    var fw_price = 0, fp_price = 0;
    item = item.config;
    if (item == null) return o_shipping_price;
    //------按重量----------
    if (goods_weight >= 0 && item['money']) {
      fw_price = parseFloat(item['money']);
      if (goods_weight > item['first_weight']) {
        var fw = goods_weight - item['first_weight'];
        var n = Math.ceil(fw / item['second_weight'])
        fw_price = fw_price + n * parseFloat(item['add_money']);
      }
    }
    //------超出重量----------
    if (out_of_weight < 0 && o_price >= freight_free) {
      fw_price = parseFloat(item['money']);
      var out_of_weight = Math.abs(out_of_weight);
      if (out_of_weight > item['first_weight']) {
        var fw = out_of_weight - item['first_weight'];
        var n = Math.ceil(fw / item['second_weight'])
        fw_price = fw_price + n * parseFloat(item['add_money']);
      }
    }
    //------按件数----------
    if (goods_piece > 0) {
      fp_price = parseFloat(item['piecemoney']);
      if (goods_piece > item['first_piece']) {
        var fp = goods_piece - item['first_piece'];
        var m = Math.ceil(fp / item['second_piece'])
        fp_price = fp_price + m * parseFloat(item['add_piecemoney']);
      }
    }
    var rspice = parseFloat(price + fw_price + fp_price);
    return rspice;
  },

  //------------循环获取config-----------
  get_wuliu_config: function (region_id, code, rs) {
    var item = null, rslist = rs.pageData;
    for (var i = 0; i < rslist.length; i++) {
      if (rslist[i].code == code && rslist[i].region_id == region_id) { item = rslist[i]; }
    }
    return item;
  },
  //-------循环获取config,code default-------
  get_wuliu_default: function (code, rs) {
    var item = null, rslist = rs.pageData;
    for (var i = 0; i < rslist.length; i++) {
      if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { item = rslist[i]; }
    }
    return item;
  },

  //----------立即购买，选择物流-------------
  bindPickerChange: function (e) {
    var ind = e.detail.value
    this.setData({ index: ind });
    this.calculatePrice2();
  },

  //----------购物车结算，选择物流-------------
  bindPickerChange_w: function (e) {
    var ind = e.detail.value, txt = e.currentTarget.dataset.txt;
    this.setData({ [txt]: ind });
    this.calculatePrice();
  },

  cart_set_err: function (e) {
    var txt = e.currentTarget.dataset.err;
    var ob = {};
    ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif";
    this.setData(ob);
  },

  //// 开启物流的弹窗
  show_wu_arr: function (e) {
    this.setData({ open_express: 1 });
  },

  //更新下默认，在onshow里面
  update_code() {
    var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code;

    var uii = setInterval(function () {
      if (th.data.wu_arr) {
        clearInterval(uii);
        if(th.data.is_default_logistics) return false;

        for (var k = 0; k < th.data.wu_arr.length; k++) {
          var item = th.data.wu_arr[k];
          if (def_exp_code == item.code) {
            m_wind = k;
          }
        }
        //--如果是立即购买--
        th.setData({ index: m_wind, is_express: m_wind });
      }
    }, 500)
  },

  // 关闭物流的弹窗
  close_express: function () {
    this.setData({ open_express: 0 });
  },
  // 选择物流
  click_express_name: function (e) {
    var express_name = e.currentTarget.dataset.name, shippingcode = e.currentTarget.dataset.shippingcode;
    var index = e.currentTarget.dataset.idxe;
    var ob = { is_express: index, is_shipping_code: shippingcode, index: index };
    this.setData(ob);
  },

  //点击确定物流
  determine_expres: function (e) {
    this.setData({ open_express: 0 });
    this.calculatePrice2();
  },
  //设置默认物流
  select_default_logistics: function () {
    var th = this;
    var is_shipping_code = this.data.is_shipping_code
    getApp().request.put("/api/weshop/users/update", {
      data: { user_id: getApp().globalData.user_id, store_id: os.stoid, def_exp_code: is_shipping_code },
      success: function (rse) {
        if (rse.data.code == 0) {
          getApp().globalData.userInfo.def_exp_code = is_shipping_code;
          th.setData({ open_express: 0 });
          //----计算此时购物车的价格，这个页面没有calculatePrice(),2021.7.19----
          //if(th.data.is_b_now==1) th.calculatePrice2();
          //else th.calculatePrice();
          th.calculatePrice2();
        }
      }
    })
  },


  //跳转到购买卡
  buycard: function () {
    getApp().goto("/pages/user/plus/plus");
    getApp().globalData.plus_buy_back = 1;
  },

  switchChange: function (e) {
    console.log(e, 111);
    this.setData({ agree_no_ref: e.detail.value });
  },

  go_detail:function(e){
      var gid=e.currentTarget.dataset.gid;
      var act=this.data.act;
      var url='';
      if(this.data.is_fwk){
        url = `/packageC/pages/presell/cardInfo/goodsInfo?goods_id=${gid}&prom_id=${act.id}`;
      }else{
        url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid;
      }
      getApp().goto(url);
  }

});
