var util = require('../../../utils/util.js');
var user = require('../../../utils/user.js');
var mall = require('../../../api/mall.js');
var check = require('../../../utils/check.js');
var app = getApp();

Page({
  data: {
    shopAddress:'',//门店地址
    buyNumber:'',
    memberDiscount: '',
    isMember: false,
    orderId: '',
    payFailShow: false,
    choosePopup: false,
    noSerTimes: '',
    popupType: 1, //1单次预约 2 选择服务频次 3选择首次预约时间
    timeList: check.getTimeList(1),
    dateList: util.getDateList(new Date(new Date().getTime() + 60 * 60 * 1000 * 24), 1, 60),
    // firstAppointList:util.getDateList(new Date(new Date().getTime()+60*60*1000*24),7),
    firstAppointList: [],
    timeIndex: 0, //选中的时间段
    dateIndex: 2, //单次预约选中的日期
    firstDateIndex: 0, //首次预约时间
    activeTab: 1, //频次
    weekIndex: 0, //选中的周几
    weekArrList: [{
        id: 1,
        week: '周一',
        num: 0
      },
      {
        id: 2,
        week: '周二',
        num: 0
      },
      {
        id: 3,
        week: '周三',
        num: 0
      },
      {
        id: 4,
        week: '周四',
        num: 0
      },
      {
        id: 5,
        week: '周五',
        num: 0
      },
      {
        id: 6,
        week: '周六',
        num: 0
      },
      {
        id: 0,
        week: '周日',
        num: 0
      },
    ],
    selectedWeekList: [],
    selectedDateList: [],
    selectTimeIndex: 'null', //选中的时间段
    oneTimeAppoint: '2021-04-22 周一 13:00-14:00',
    isNeedAppoint: false, //是否需要预约
    isFinishAppoint: false, //已选择预约
    isOneAppoint: true, //单次卡
    appointFailTip: false, //预约失败提示


    multiIndex: [0, 0, 0, 0, 0, 0],
    multiArray: [],
    array: [],
    year: "",
    month: "",
    day: "",
    startHour: "",
    endHour: "",
    orderData: "", //此时间为预计上门时间
    checkedGoodsList: [],
    checkedAddress: {},
    availableCouponLength: 0, // 可用的优惠券数量
    goodsTotalPrice: 0.00, //商品总价
    freightPrice: 0.00, //快递费
    couponPrice: 0.00, //优惠券的价格
    grouponPrice: 0.00, //团购优惠价格
    orderTotalPrice: 0.00, //订单总价
    actualPrice: 0.00, //实际需要支付的总价
    cartId: 0,
    addressId: 0,
    couponId: 0,
    userCouponId: 0,
    message: '',
    grouponLinkId: 0, //参与的团购
    grouponRulesId: 0, //团购规则ID
    nurseId: 0, //安心包认证id 
    petinfo: null, //宠物保险内容
    shareId: 0,
    userInfo: {},
    remarkDisable: false,
  },
  //获取checkou信息
  getCheckoutInfo: function () {
    let that = this;
    wx.showLoading({
      title: '加载中...',
    });
    util.request(mall.CartCheckout, {
      cartId: that.data.cartId,
      // addressId: that.data.addressId,
      // couponId: that.data.couponId,
      // userCouponId: that.data.userCouponId,
      // grouponRulesId: that.data.grouponRulesId,
      // shareId: that.data.shareId,
    }).then(function (res) {
      
      wx.hideLoading();
      console.log(res);
      if (res.errno === 0) {
        that.setData({
          // isMember: res.data.isMember,
          // memberDiscount: res.data.memberDiscount,
          checkedGoodsList: res.data.skus,
          shopAddress:res.data.address,
          buyNumber:res.data.buyNumber,
          actualPrice: res.data.price,
          // checkedAddress: res.data.checkedAddress,
          // availableCouponLength: res.data.availableCouponLength,
          // couponPrice: res.data.couponPrice,
          // grouponPrice: res.data.grouponPrice,
          // freightPrice: res.data.freightPrice,
          // goodsTotalPrice: res.data.goodsTotalPrice,
          // orderTotalPrice: res.data.orderTotalPrice,
          // addressId: res.data.addressId,
          // couponId: res.data.couponId,
          // userCouponId: res.data.userCouponId,
          // grouponRulesId: res.data.grouponRulesId,
         
        });
       
        // that.LimitCanAppointmentDate();

      }else{
        util.showErrorToast(res.errmsg);
      }
      
    });
  },
  LimitCanAppointmentDate() { //特殊商品 如果需要限制可预约的时间范围 在次方法中实现 
    if (this.data.checkedGoodsList[0].goodsId == 1190332) {
      let dates = [];
      this.data.dateList.forEach(item => {
        if (item.date < '2022-04-01')
          dates.push(item);
      })
      this.setData({
        dateList: dates
      })
    }
    //设置默认起始可预约 index:dateIndex  近7天如果有周六 周日 不允许预约
    //存在一种情况 如果今天是周四，如果起始index=2 则周日允许预约 虽然页面显示为”约满"
    // if(this.data.dateList[3].id==0) {
    //   console.info(" dateIndex:4")
    //   this.setData({
    //     dateIndex:4
    //   }) 
    // }else{
    //   if(this.data.dateList[2].id==0) {

    //   console.info(" dateIndex:3")
    //     this.setData({
    //       dateIndex:3
    //     }) 
    //   }
    // } 
  },
  checkNurse() {
    //是否包含安心包产品 如果含有 需要填写安心包产品内容
    let that = this;
    let isNurse = false;
    var list = that.data.checkedGoodsList;
    for (var i = 0; i < that.data.checkedGoodsList.length; i++) {
      // console.log(that.data.checkedGoodsList[i].goods);
      // 0 服务类商品 1保险 2中介 3买约分离次卡
      // if(that.data.checkedGoodsList[i].goods.categoryId==1036016){
      if (that.data.checkedGoodsList[i].goods.type == 1) {
        isNurse = true;
        break;
      }
    }
    return isNurse;
  },
  checkInstance() { //是否为宠物保险
    let that = this;
    var isIns = false;
    var list = that.data.checkedGoodsList;
    console.info(that.data.checkedGoodsList);
    for (var i = 0; i < that.data.checkedGoodsList.length; i++) {
      if (that.data.checkedGoodsList[i].goods.type == 1) {
        isIns = true;
        break;
      }
    }
    return isIns;
  },
  selectAddress() {
    wx.navigateTo({
      url: '/pages/ucenter/address/address',
    })
  },
  selectCoupon() {
    wx.navigateTo({
      url: '/pages/ucenter/couponSelect/couponSelect',
    })
  },
  bindMessageInput: function (e) {
    this.setData({
      message: e.detail.value
    });
  },
  onReady: function () {
    // 页面渲染完成 

  },
  onShow: function () {
    // console.log(this.data.dateList);
    // 页面显示
    // user.checkLogin().then(res => {
    //   app.globalData.hasLogin = true;
    //   console.info("session 未过期")
    // }).catch(() => {
    //   console.info("session 过期")
    //   app.globalData.hasLogin = false;
    //   wx.navigateTo({
    //     url: '/pages/auth/login/login',
    //   })
    // });

  

    try {
      var cartId = wx.getStorageSync('cartId');
      if (cartId === "") {
        cartId = 0;
      }
      var addressId = wx.getStorageSync('addressId');
      if (addressId === "") {
        addressId = 0;
      }
      var couponId = wx.getStorageSync('couponId');
      if (couponId === "") {
        couponId = 0;
      }
      var userCouponId = wx.getStorageSync('userCouponId');
      if (userCouponId === "") {
        userCouponId = 0;
      }

      var grouponRulesId = wx.getStorageSync('grouponRulesId');
      if (grouponRulesId === "") {
        grouponRulesId = 0;
      }
      var grouponLinkId = wx.getStorageSync('grouponLinkId');
      if (grouponLinkId === "") {
        grouponLinkId = 0;
      }

      this.setData({
        cartId: cartId,
        addressId: addressId,
        couponId: couponId,
        userCouponId: userCouponId,
        grouponRulesId: grouponRulesId,
        grouponLinkId: grouponLinkId
      });


      this.getCheckoutInfo();


    } catch (e) {
      // Do something when catch error
      console.log(e);
    }

  },
  onHide: function () {
    // 页面隐藏

  },
  onUnload: function () {
    // 页面关闭
    //清空宠物保险的缓存数据
    console.info('checkout onload')
    //wx.setStorageSync('petinfo'+this.data.cartId, null); 

  },
  submitOrder: function () {
    let that = this;
   
    //门店和商品是否符合
    util.request(mall.OrderCheck, {
      addressId: that.data.addressId,
      shopId: that.data.checkedAddress.shopId,
      cart: this.data.cartId
    }).then(function (res) {
      if (res.errno === 0) {
        that.submitInfo();
        // if (res.data==false) {
        //   wx.showModal({
        //     title: '提醒',
        //     // content: '收货地址需在'+app.globalData.city+'，请修改' 
        //     content: '收货地址需在服务范围内，请修改地址'
        //   });
        //   that.submitInfo();  
        // }else{
        //   that.submitInfo();
        // }
      } else {
        wx.showModal({
          title: '提醒',
          // content: '收货地址需在'+app.globalData.city+'，请修改' 
          content: res.errmsg
        });
      }
    }).catch(res => {
      util.showErrorToast(res.errmsg)
    });

  },
  submitInfo() {
    //是否含有保姆安心包产品
    var isnurse = this.checkNurse();
    if (isnurse && this.data.nurseId == 0) { //跳转安心包注册页  
      wx.navigateTo({
        url: '/pages/auth/register/register',
      })
      return;
    }

    var orderInfo = {
      cartId: this.data.cartId,
      addressId: this.data.addressId,
      couponId: this.data.couponId,
      userCouponId: this.data.userCouponId,
      message: this.data.message,
      orderDate: this.data.orderData,
      grouponRulesId: this.data.grouponRulesId,
      grouponLinkId: this.data.grouponLinkId,
      nurseId: this.data.nurseId,
      petinfo: this.data.petinfo,
      shareId: this.data.shareId,
      //预约参数信息
    };

    //是宠物保险
    var isInsure = this.checkInstance();
    if (isInsure) {
      //缓存order数据，在宠物保险页提交
      wx.setStorageSync('orderInfo', orderInfo);
      wx.navigateTo({
        url: '/pages/goods/pet/index?id=' + this.data.cartId,
      })
      return;
    }

    //  如果是多次卡先预估，单次卡不用预估
    if (!this.data.isOneAppoint) {
      // this.orderAppoint();


      let weeks = [];
      this.data.selectedDateList.forEach(item => {
        let obj = {
          dayOfWeek: this.data.weekArrList[item.week].id,
          startTime: item.time.split('-')[0],
          endTime: item.time.split('-')[1]
        };
        weeks.push(obj);
      });

      let tempStartDate = null;
      if (this.data.firstAppointList.length != 0 && this.data.firstAppointList.length >= this.data.firstDateIndex) {
        tempStartDate = this.data.firstAppointList[this.data.firstDateIndex].date;
      }
      let params = {
        weeks: weeks,
        type: this.data.activeTab,
        startDate: tempStartDate, //this.data.firstAppointList[this.data.firstDateIndex].date,
        lng: this.data.checkedAddress.lng,
        lat: this.data.checkedAddress.lat,
        shopId: this.data.checkedAddress.shopId,
        goodId: this.data.checkedGoodsList[0].goodsId
      };
      console.log(params);

      this.orderPay(params);
    } else {
      let weeks = [];
      if (this.data.isNeedAppoint) {
        weeks = [{
          dayOfWeek: (this.data.dateList[this.data.dateIndex]).id,
          startTime: (this.data.timeList[this.data.timeIndex].time.split('-'))[0],
          endTime: (this.data.timeList[this.data.timeIndex].time.split('-'))[1]
        }];

      }

      let params = {
        weeks: weeks,
        type: 0,
        startDate: this.data.dateList[this.data.dateIndex].date,
        lng: this.data.checkedAddress.lng,
        lat: this.data.checkedAddress.lat,
        shopId: this.data.checkedAddress.shopId,
        goodId: this.data.checkedGoodsList[0].goodsId
      };
      console.log(params);

      this.orderPay(params);
    }

  },

  orderPay() {
    var orderInfo = {
      cartId: [this.data.cartId],
      
    };

    util.request(mall.OrderSubmit, orderInfo, 'POST').then(res => {
      if (res.errno === 0) {
        console.log(res);
     
        const orderId = res.data;
        this.setData({
          orderId: orderId
        });
        util.request(mall.OrderPrepay, {
          orderId: orderId
        }, 'POST').then(res => {
          if (res.errno === 0) {
            const payParam = res.data;
            console.log("支付过程开始");
            wx.requestPayment({
              'timeStamp': payParam.timeStamp,
              'nonceStr': payParam.nonceStr,
              'package': payParam.packageValue,
              'signType': payParam.signType,
              'paySign': payParam.paySign,
              'success': res => {
                console.log("支付过程成功");
              
                  wx.redirectTo({
                    url: '/pages/mall/payResult/payResult?status=1&orderId=' + orderId + '&actualPrice=' + this.data.actualPrice
                  });
               
              },
              'fail': res => {
                console.log("支付过程失败");

                // wx.redirectTo({
                //   url: '/pages/checkout/payResult/payResult?status=0&orderId=' + orderId
                // });
                // 弹出支付失败
                this.setData({
                  payFailShow: true
                });
              },
              'complete': function (res) {
                console.log("支付过程结束")
              }
            });
          } else {
            // 弹出支付失败
            this.setData({
              payFailShow: true
            });
            // wx.redirectTo({
            //   url: '/pages/checkout/payResult/payResult?status=0&orderId=' + orderId
            // });
          }
        });

      } else {
        util.showErrorToast(res.errmsg);
      }
    });
  },
  surplusMonth: function (year) {
    var date = new Date();
    var year2 = date.getFullYear()
    var month = date.getMonth() + 1
    var day = date.getDate()
    var hour = date.getHours()
    var minute = date.getMinutes()
    var second = date.getSeconds()

    var monthDatas = [];

    if (year == year2) {
      var surplusMonth = 12 - month;
      monthDatas.push(month + "月")
      for (var i = month; i < 12; i++) {
        monthDatas.push(i + 1 + "月")
      }
    } else {
      for (var i = 0; i < 12; i++) {
        monthDatas.push(i + 1 + "月")
      }
    }
    return monthDatas;
  },

  //天数计算 
  surplusDay: function (year, month, day) {
    var days = 31;
    var dayDatas = [];
    var date = new Date();
    var year2 = date.getFullYear()
    var month2 = date.getMonth() + 1
    switch (parseInt(month)) {
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:
        days = 31;
        break;
        //对于2月份需要判断是否为闰年 
      case 2:
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
          days = 29;
          break;
        } else {
          days = 28;
          break;
        }
        case 4:
        case 6:
        case 9:
        case 11:
          days = 30;
          break;
    }
    if (year == year2 && month == month2) {
      // dayDatas.push(day + "日")
      for (var i = day; i < days; i++) {
        dayDatas.push(i + 1 + "日")
      }
    } else {
      console.log(month + "月" + days + "天")
      for (var i = 0; i < days; i++) {
        dayDatas.push(i + 1 + "日")
      }
    }
    return dayDatas;
  },
  //时间计算 
  surplusHour: function (year, month, day, hour) {
    var date = new Date();
    var year2 = date.getFullYear()
    var month2 = date.getMonth() + 1
    var day2 = date.getDate();
    var hourEnd = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21];
    var hours = [
      ['09时', '10时', '11时', '12时', '13时', '14时', '15时', '16时', '17时', '18时', '19时', '20时'],
      ['10时', '11时', '12时', '13时', '14时', '15时', '16时', '17时', '18时', '19时', '20时', '21时']
    ];

    return hours;
  },

  /** 
   * 生命周期函数--监听页面加载 
   */
  onLoad: function (options) {
    this.setData({
      userInfo: app.globalData.userInfo
    });
    let that = this;
    if (options.nurseId) {
      this.setData({
        nurseId: options.nurseId
      })
    }

    if (typeof options.shareId != 'undefined' && options.shareId > 0) {
      that.setData({
        shareId: options.shareId
      })
    }


    var date = new Date();
    var year = date.getFullYear()
    var month = date.getMonth() + 1
    var day = date.getDate()
    var hour = date.getHours()
    var surplusMonth = that.surplusMonth(year);
    console.log(surplusMonth)
    var surplusDay = this.surplusDay(year, month, day);
    console.log(surplusDay)
    var surplusHour = this.surplusHour(year, month, day, hour)
    console.log(surplusHour)

    //初始化picker
    that.setData({
      multiArray: [
        [year + '年', (year + 1) + '年', (year + 2) + '年'],
        surplusMonth,
        surplusDay,
        surplusHour[0],
        ['~'],
        surplusHour[1]
      ],
      year: year,
      month: month,
      day: day,
      startHour: surplusHour[0][0],
      endHour: surplusHour[1][0],
    })

  },
  varietiesChange: function (e) {
    var Varieties = this.data.array[parseInt(e.detail.value)]
    console.log(Varieties)
    this.setData({
      Varieties: Varieties
    })
  },

  warehouseChange: function (e) {
    var Warehouse = this.data.array[parseInt(e.detail.value)]
    console.log(Warehouse)
    this.setData({
      Warehouse: Warehouse
    })
  },

  //某一列的值改变时触发 
  bindMultiPickerColumnChange: function (e) {
    var date = new Date();
    var year1 = date.getFullYear()
    var month1 = date.getMonth() + 1
    var day1 = date.getDate()
    var hour1 = date.getHours()
    console.log("当前月份" + this.data.month + '修改的列为', e.detail.column, '，值为', e.detail.value);

    var data = {
      multiArray: this.data.multiArray,
      multiIndex: this.data.multiIndex,
      year: this.data.year,
      month: this.data.month,
      day: this.data.day,
      startHour: this.data.startHour,
      endHour: this.data.startHour,
    };

    data.multiIndex[e.detail.column] = e.detail.value;
    switch (e.detail.column) {
      case 0:
        var yearStr = data.multiArray[e.detail.column][e.detail.value];
        var year = yearStr.substring(0, yearStr.length - 1)
        data.year = parseInt(year);
        var surplusMonth = this.surplusMonth(year);
        data.multiArray[1] = surplusMonth;
        if (data.year == year1) {
          data.month = month1;
        } else {
          data.month = 1;
        }
        if (data.year == year1 && month1 == data.month) {
          data.day = day1;
        } else {
          data.day = 1;
        }
        var surplusDay = this.surplusDay(data.year, data.month, data.day);
        data.multiArray[2] = surplusDay;
        var surplusHour;
        if (data.year == year1 && month1 == data.month && data.day == day1) {
          surplusHour = this.surplusHour(data.year, data.month, data.day, hour1)
        } else {
          surplusHour = this.surplusHour(data.year, data.month, data.day, 1)
        }
        console.log(surplusHour)
        data.multiArray[3] = surplusHour[0];
        data.multiArray[5] = surplusHour[1];
        data.startHour = surplusHour[0];
        data.endHour = surplusHour[1];
        data.multiIndex[1] = 0;
        data.multiIndex[2] = 0;
        data.multiIndex[3] = 0;
        data.multiIndex[5] = 0;
        break;
      case 1:
        console.log('选择月份' + data.multiArray[e.detail.column][e.detail.value]);
        var monthStr = data.multiArray[e.detail.column][e.detail.value];
        var month = monthStr.substring(0, monthStr.length - 1);
        data.month = month;
        data.day = 1;
        if (data.year == year1 && month1 == data.month) {
          data.day = day1;
        } else {
          data.day = 1;
        }
        var surplusDay = this.surplusDay(data.year, data.month, data.day);
        data.multiArray[2] = surplusDay;
        var surplusHour;
        if (data.year == year1 && month1 == data.month && data.day == day1) {
          surplusHour = this.surplusHour(data.year, data.month, data.day, hour1)
        } else {
          surplusHour = this.surplusHour(data.year, data.month, data.day, 1)
        }
        data.multiArray[3] = surplusHour[0];
        data.multiArray[5] = surplusHour[1];
        data.startHour = surplusHour[0];
        data.endHour = surplusHour[1];
        data.multiIndex[2] = 0;
        data.multiIndex[3] = 0;
        data.multiIndex[5] = 0;
        break;
      case 2:
        console.log('选择日' + data.multiArray[e.detail.column][e.detail.value]);
        var dayStr = data.multiArray[e.detail.column][e.detail.value];
        var day = dayStr.substring(0, dayStr.length - 1);
        data.day = day;
        var surplusHour;
        if (data.year == year1 && month1 == data.month && data.day == day1) {
          surplusHour = this.surplusHour(data.year, data.month, data.day, hour1)
        } else {
          surplusHour = this.surplusHour(data.year, data.month, data.day, 1)
        }
        data.multiArray[3] = surplusHour[0];
        data.multiArray[5] = surplusHour[1];
        data.startHour = surplusHour[0];
        data.endHour = surplusHour[1];
        data.multiIndex[3] = 0;
        data.multiIndex[5] = 0;
        break;
      case 3:
        console.log('起始时间' + data.multiArray[e.detail.column][e.detail.value]);
        var hourStr = data.multiArray[e.detail.column][e.detail.value];
        var hour = hourStr.substring(0, hourStr.length - 1);
        data.startHour = hour;
        console.log('起始时间' + hour + " day1:" + day1);
        /*var endhours2 = [];  
        var end = ['09时', '11时', '12时', '13时', '14时', '15时', '16时', '17时', '18时', '19时', '20时', '20时']; 
          for (var i = e.detail.value; i < end.length; i++) { 
             endhours2.push(end[i]); 
          }  
        data.multiArray[5] = endhours2; */
        if (e.detail.value > data.multiIndex[5])
          data.multiIndex[5] = e.detail.value;
        break;
      case 5:
        var hourStr = data.multiArray[e.detail.column][e.detail.value];
        var hour = hourStr.substring(0, hourStr.length - 1);
        data.endHour = hour;

        if (e.detail.value < data.multiIndex[3])
          data.multiIndex[3] = e.detail.value;
        //console.log('index:'+data.multiIndex[3]+'value:'+e.detail.value+'结束时间' + data.multiArray[e.detail.column][e.detail.value]);
        break;
    }
    this.setData(data)
  },
  //value 改变时触发 change 事件 
  bindMultiPickerChange: function (e) {
    console.info(e);
    console.info(this.data.multiArray);
    console.info(this.data);
    console.info(this.data.multiIndex);
    var dateStr =
      this.data.multiArray[0][this.data.multiIndex[0]] +
      this.data.multiArray[1][this.data.multiIndex[1]] +
      this.data.multiArray[2][this.data.multiIndex[2]] +
      this.data.multiArray[3][this.data.multiIndex[3]] +
      this.data.multiArray[4][this.data.multiIndex[4]] +
      this.data.multiArray[5][this.data.multiIndex[5]];
    console.log('picker发送选择改变，携带值为', dateStr)

    this.setData({
      orderData: dateStr
    })

  },
  onClose() {
    this.setData({
      choosePopup: false,
      remarkDisable: false,
    });
  },
  dateCheck(e) {
    let index = e.currentTarget.dataset.index;
    let date = e.currentTarget.dataset.date;
    let week = e.currentTarget.dataset.week;
    if (this.data.checkedGoodsList[0].goodsId == 1190332) {
      this.setData({
        dateIndex: index
      });
    } else if (index >= 7 || (index >= 2 && index < 7 && (week != '周六' && week != '周日'))) { //前三天不可预约
      this.setData({
        dateIndex: index
      });
    }
  },
  timeCheck(e) {
    let index = e.currentTarget.dataset.index;
    this.setData({
      timeIndex: index
    });
  },
  weekCheck(e) {
    let index = e.currentTarget.dataset.index;
    this.setData({
      weekIndex: index,
      // selectTimeIndex:'null'
    });
  },

  timeSelect(e) {
    let index = e.currentTarget.dataset.index;
    let time = e.currentTarget.dataset.time;
    if (this.data.activeTab != 2) {
      let weekList = this.data.weekArrList;
      weekList.forEach(item => {
        item.num = 0;
      });
      this.setData({
        weekArrList: weekList,
      });
      let itemData = "weekArrList[" + this.data.weekIndex + "].num";
      let selectedDateList = [];
      let dateItem = {
        week: this.data.weekIndex,
        time: time,
        weekStr: this.data.weekArrList[this.data.weekIndex].week
      };
      selectedDateList.push(dateItem);
      console.log(this.data);
      this.setData({
        selectTimeIndex: index,
        [itemData]: 1,
        selectedWeekList: [this.data.weekIndex],
        selectedDateList: selectedDateList
      });
      console.log(this.data);
    } else {

      // 如果选中的时间段小于2个
      if (this.data.selectedDateList.length < 2) {
        let itemData = "weekArrList[" + this.data.weekIndex + "].num";
        let num = this.data.weekArrList[this.data.weekIndex].num;
        let selectedDateList = this.data.selectedDateList;
        selectedDateList.push({
          week: this.data.weekIndex,
          time: time,
          weekStr: this.data.weekArrList[this.data.weekIndex].week
        });
        let selectedWeekList = this.data.selectedWeekList;
        if (selectedWeekList.indexOf(this.data.weekIndex) == -1) {
          selectedWeekList.push(this.data.weekIndex);
        }
        this.setData({
          [itemData]: num + 1,
          selectTimeIndex: index,
          // selectedWeekList:selectedWeekList,
          selectedWeekList: [this.data.weekIndex],
          selectedDateList: selectedDateList
        });
      } else {
        // 删除第一个
        let firstTimeSelected = this.data.selectedDateList[0];
        let firstWeekSelectedIndex = firstTimeSelected.week;
        // let firstWeekSelected=this.data.weekArrList[firstWeekSelectedIndex];

        let itemDataDel = "weekArrList[" + firstWeekSelectedIndex + "].num";
        let numDel = this.data.weekArrList[firstWeekSelectedIndex].num;
        let selectedDateListDel = this.data.selectedDateList;
        selectedDateListDel.shift();

        this.setData({
          [itemDataDel]: numDel - 1,
          // selectTimeIndex:index,
          selectedDateList: selectedDateListDel
        });

        // 加入新选中的

        let itemData = "weekArrList[" + this.data.weekIndex + "].num";
        let num = this.data.weekArrList[this.data.weekIndex].num;
        let selectedDateList = this.data.selectedDateList;
        selectedDateList.push({
          week: this.data.weekIndex,
          time: time,
          weekStr: this.data.weekArrList[this.data.weekIndex].week
        });

        this.setData({
          [itemData]: num + 1,
          // selectTimeIndex:index,
          selectedDateList: selectedDateList
        });

        let weekListNew = [];
        this.data.selectedDateList.forEach(item => {
          if (weekListNew.indexOf(item.week) == -1) {
            weekListNew.push(item.week);
          }
        });
        this.setData({
          selectedWeekList: weekListNew,
        });

      }
      console.log(this.data);
    }

  },
  firstDateCheck(e) {
    let index = e.currentTarget.dataset.index;
    this.setData({
      firstDateIndex: index
    });
  },
  onTabChange(e) {
    let weekList = this.data.weekArrList;
    weekList.forEach(item => {
      item.num = 0;
    });
    this.setData({
      weekArrList: weekList,
      activeTab: e.detail.name,
      selectTimeIndex: 'null',
      selectedWeekList: [],
      selectedDateList: []
    });
  },
  showAppoint() {
    this.setData({
      choosePopup: true,
      remarkDisable: true,
      popupType: (this.data.popupType == 3 ? 2 : this.data.popupType),
      isFinishAppoint: false
    });
    if (this.data.popupType == '1') {
      let index = 2;
      let length = this.data.dateList.length;
      let list = this.data.dateList;
      for (let i = 0; i < length; i++) {
        if (i < 7 && i >= 2 && list[i].week != '周六' && list[i].week != '周日') {
          index = i;
          break;

        }
      }
      console.log(index);
      this.setData({
        dateIndex: index
      })
    }
  },
  confirmTime() {
    console.log(this.data.activeTab);
    console.log(this.data);
    if (this.data.popupType == 1) {
      let date = this.data.dateList[this.data.dateIndex].date;
      let week = this.data.dateList[this.data.dateIndex].week;
      let time = this.data.timeList[this.data.timeIndex].time;
      console.log(week, time);
      this.setData({
        oneTimeAppoint: date + ' ' + week + ' ' + time,
        choosePopup: false,
        isFinishAppoint: true
      });
    } else if (this.data.popupType == 2) {
      if (this.data.activeTab == 2) {
        if (this.data.selectedDateList.length < 1) {
          wx.showToast({
            title: '请选择服务时间',
            icon: 'none',
            duration: 2000
          });
        } else if (this.data.selectedDateList.length == 1) {
          wx.showToast({
            title: '请选择第二次服务时间',
            icon: 'none',
            duration: 2000
          });
        } else {
          // 选择频次
          let futureDateList = util.getDateList(new Date(new Date().getTime() + 60 * 60 * 1000 * 24), 1);
          let minIndex = Math.min.apply(null, this.data.selectedWeekList);
          console.log(minIndex);
          console.log((this.data.weekArrList[minIndex]).id);
          let beginDate = futureDateList.filter(item => {
            return (new Date(item.date)).getDay() == (this.data.weekArrList[minIndex]).id
          });
          console.log(beginDate);
          let inter = 7;
          let firstAppointList = util.getDateList(new Date(new Date(beginDate[0].date).getTime()), inter);
          this.setData({
            popupType: 3,
            firstAppointList: firstAppointList
          })
        }
      } else {
        if (this.data.selectedDateList.length == 0) {
          wx.showToast({
            title: '请选择服务时间',
            icon: 'none',
            duration: 2000
          });
        } else {
          //  选择频次
          let futureDateList = util.getDateList(new Date(new Date().getTime() + 60 * 60 * 1000 * 24), 1);
          let minIndex = Math.min.apply(null, this.data.selectedWeekList);
          console.log(minIndex);
          let beginDate = futureDateList.filter(item => {
            return (new Date(item.date)).getDay() == (this.data.weekArrList[minIndex]).id
          });
          console.log(beginDate);
          let inter = (this.data.activeTab == 3 ? 14 : 7);
          let firstAppointList = util.getDateList(new Date(new Date(beginDate[0].date).getTime()), inter);
          this.setData({
            popupType: 3,
            firstAppointList: firstAppointList
          })
        }
      }
    } else if (this.data.popupType == 3) {

      let firstTime = this.data.firstAppointList[this.data.firstDateIndex].date;
      console.log(firstTime);
      console.log(this.data.selectedDateList);

      this.orderAppoint();
      //  this.setData({
      //   choosePopup:false,
      //   isFinishAppoint:true
      //  });

    }
  },
  orderAppoint() {
    //   如果是多次卡先预估，单次卡不用预估
    let weeks = [];
    this.data.selectedDateList.forEach(item => {
      let obj = {
        dayOfWeek: this.data.weekArrList[item.week].id,
        startTime: item.time.split('-')[0],
        endTime: item.time.split('-')[1]
      };
      weeks.push(obj);
    });

    let params = {
      weeks: weeks,
      type: this.data.activeTab,
      startDate: this.data.firstAppointList[this.data.firstDateIndex].date,
      lng: this.data.checkedAddress.lng,
      lat: this.data.checkedAddress.lat,
      shopId: this.data.checkedAddress.shopId,
      goodId: this.data.checkedGoodsList[0].goodsId
    };
    wx.showLoading({
      title: '加载中',
    });
    util.request(mall.OrderAppoint, params, "POST")
      .then(res => {
        wx.hideLoading();
        if (res.errno == 0) {

          // this.orderPay(params);
          this.setData({
            choosePopup: false,
            isFinishAppoint: true,
            popupType: 2,
            noSerTimes: res.data,
            appointFailTip: (res.data >= 1 ? true : false)
          });

        } else {
          // util.showErrorToast(res.errmsg);
          wx.showToast({
            title: res.errmsg,
            icon: 'none',
            duration: 2000
          });
        }

      }).catch(function (err) {
        console.log(err);
        wx.hideLoading();
        wx.showToast({
          title: err.errMsg,
          icon: 'none'
        })
      });
  },
  cancelPay() {
    this.setData({
      payFailShow: false
    });
  },
  rePay() {
    util.request(mall.OrderPrepay, {
      orderId: this.data.orderId
    }, 'POST').then(res => {
      if (res.errno === 0) {
        const payParam = res.data;
        console.log("支付过程开始")
        wx.requestPayment({
          'timeStamp': payParam.timeStamp,
          'nonceStr': payParam.nonceStr,
          'package': payParam.packageValue,
          'signType': payParam.signType,
          'paySign': payParam.paySign,
          'success': res => {
            console.log("支付过程成功");
            this.setData({
              payFailShow: false
            })
            wx.redirectTo({
              url: '/pages/mall/payResult/payResult?status=1&orderId=' + this.data.orderId + '&actualPrice=' + this.data.actualPrice
            });

          },
          'fail': res => {
            console.log("支付过程失败")
            this.setData({
              payFailShow: false
            });
            util.showErrorToast('支付失败');
          },
          'complete': res => {
            console.log("支付过程结束");

          }
        });
      }else{
        util.showErrorToast(res.errmsg);
      }
    });
  },
  goBuyMember() {
    wx.navigateTo({
      url: "/pages/member/buyMember/buyMember"
    });
  },




});