var e = getApp(),
  a = e.globalData.setting,
  os = a,
  t = e.request,
  d = e.globalData;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inurl: a.url, //接口网址
    iurl: a.imghost, //服务器网址
    store: 0, //是否显示服务门店列表
    beautician: 0, //是否显示美容师列表
    beautician_name: "", //选中的美容师名称
    beauticianID: "", //美容师id
    bea_index: "", //美容师列表下标
    placeholder: "填写备注", //备注为空的placeholder
    store_list: [], //门店列表
    beautician_list: [], //美容师列表
    store_name: "", //选择的服务门店
    fir_pick_index: 0, //选择的门店下标
    curpage: 1, //当前分页数
    pageSize: 8, //页大小
    total: 0,
    ismore: 0, //是否加载完毕
    itemId: "", //服务id
    project_id: "", //项目id
    isScroll: true, //scroll-y是否可以滑动
    key_word: "", //是否按门店文字查询
    is_service_read: 0, //是否调用过门店接口
    is_search: 0, //是否通过key_word调用接口
    is_success: 0, //是否提交成功
    remarks: "", //备注
    storageId: "", //线下门店id
    url: "/packageG/pages/user/my_service/appment_main", //本页面地址路径用于选择时间页面跳转回来
    buyType: "", //项目类型
    time: "", //选择预约时间
    tment_count: "", //可预约人数
    lat: "", //纬度坐标
    lon: "", //经度坐标
    is_gps: 1, //是否开启gps
    validay: "", //服务项目有效期
    is_sub: 0, //判断是否重复提交
    is_textea: 1, //备注是否是可输入
  },
  //控制备注输入
  check_text: function() {
    var th = this;
    var is_textea = th.data.is_textea;
    th.setData({
      is_textea: 1,
      beautician: 0
    })
  },
  onclickstore: function() {
    var th = this;
    var store = th.data.store;
    if (store) {
      th.setData({
        store: 0,
        is_textea: 1
      })
    } else {
      th.setData({
        beautician: 0,
        store: 1,
        is_textea: 0
      })
      if (th.data.store_list.length < 1) {
        wx.showLoading({
          title: '加载中',
        })
        th.query_store();
      }
    }
  },
  //输入的备注
  input_remarks: function(e) {
    var remarks = e.detail.value;
    this.setData({
      remarks: remarks
    })
  },
  //提交成功及发送模版代码
  success: function() {
    var th = this;
    var store = th.data.store_name; //门店名称
    var bea_name = th.data.beautician_name; //美容师名称
    var time = th.data.time; //预约时间
    var is_sub = th.data.is_sub; //是否重复提交
    var url = th.data.inurl + "/api/weshop/marketing/reservation/reservation/insert"; //接口路径
    var serviceId = th.data.itemId; //服务id
    var beauticianID = th.data.beauticianID; //美容师id
    var buyType = th.data.buyType; //服务项目类型
    var storeId = a.stoid; //商家id
    var storageId = th.data.storageId; //门店id
    var userId = d.user_id; //用户id
    var remarks = th.data.remarks; //用户备注
    var project_id = th.data.project_id; //项目id
    var validay = th.data.validay;
    var json = {
      "arrangeTime": time + ":00",
      "beauticianId": beauticianID,
      "buyType": buyType,
      "effectiveDay": "",
      "number": "",
      "projectId": project_id,
      "remark": remarks,
      "serviceId": serviceId,
      "states": 0,
      "storageId": storageId,
      "storeId": storeId,
      "userId": userId,
      "validay": validay
    }
    var data = JSON.stringify(json);

    getApp().request.promisePost(url, {
      data: json,is_json:1,is_normal:1
    }).then(res => {
        th.setData({
          is_sub: 0
        })
        wx.hideLoading();
        if (res.data.code == 0) {
          getApp().my_warnning("预约成功", 1, th);
          var store_name = th.data.store_name; //预约门店
          var number = res.data.data.Number;
          var temp_url = "/api/weshop/wx/open/app/user/sendSubscribeMsg"; //模版接口
          var userinfo = getApp().globalData.userInfo;
          var name = d.userInfo.nickname;
          var json = {
            // "formId": formid,
            "keyWord": [{
                "keyword": res.data.data.ServiceName
              },
              {
                "keyword": time.substring(0, 16)
              }, {
                "keyword": res.data.data.BeauticianName
              }, {
                "keyword": res.data.data.StorageName
              }, {
                "keyword": res.data.data.Address
              }
            ],
            "page": "/packageG/pages/user/my_service/tment_details?number=" + number,
            "storeId": a.stoid,
            "typeId": "1011",
            "userId": d.user_id
          };
          var data = JSON.stringify(json);

          getApp().request.promisePost(temp_url, {
            data: json, is_json: 1, is_normal: 1
          }).then( r =>{})


          setTimeout(function() {
            wx.redirectTo({
              url: "/packageG/pages/user/my_service/tment_details?number=" + number
            });
          }, 1000);
        } else {
          getApp().my_warnning(res.data.msg, 0, th);
          th.settime();
        }

    })

  },
  //定时显示texteat
  settime: function() {
    var th = this;
    setTimeout(function() {
      th.setData({
        is_textea: 1
      })
    }, 2000);
  },
  //提交预约
  sub_success: function(e) {
    var th = this;
    var temp_url = th.data.inurl + "/api/wx/weappSendlist/page";
    var template_id = "";
    if (th.data.is_sub == 1) {
      return false;
    }
    var store = th.data.store_name; //门店名称
    var bea_name = th.data.beautician_name; //美容师名称
    var time = th.data.time; //预约时间
    var is_sub = th.data.is_sub; //是否重复提交
    th.setData({
      is_textea: 0,
      is_sub: 1
    })
    //提交预约前的判断
    if (store == "") {
      getApp().my_warnning("请选择服务门店", 0, th);
      th.setData({
        is_sub: 0
      })
      th.settime();
      return false;
    } else if (bea_name == "") {
      getApp().my_warnning("请选择美容师", 0, th);
      th.setData({
        is_sub: 0
      })
      th.settime();
      return false;
    } else if (time == undefined || time == '') {
      getApp().my_warnning("请选择预约时间", 0, th);
      th.setData({
        is_sub: 0
      })
      th.settime();
      return false;
    } else {
      var version ="";
      //判断微信版本是否达到预约成功订阅的要求
      wx.getSystemInfo({
        success(res) {
          version = res.version;   
        }
      })
      wx.showLoading({
        title: '加载中',
      })
      if (th.ver(version, '7.0.4') >= 0) {
        //获取模版id
        getApp().request.promiseGet(temp_url, {
          data: {
            store_id: a.stoid,
            typeid: "1011"
          }
        }).then(res => {
          if (res.data.code == 0 && res.data.data.pageData.length > 0) {
            template_id = res.data.data.pageData[0].template_id;
            // //授权订阅
            wx.requestSubscribeMessage({
              tmplIds: [template_id],
              success(res) {
                th.success();
              },
              fail(res) {
                th.success();
              }
            })
          } else {
            th.success();
          }
        })
      } else {
        // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
        wx.showModal({
          title: '提示',
          content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
        })
        th.setData({
          is_sub: 0
        })
      }

    }
  },
  //版本判断
  ver:function(v1,v2){
      v1 = v1.split('.')
      v2 = v2.split('.')
      var num1 = "" ;
      var num2 = "";
      var len = Math.max(v1.length, v2.length)

      while (v1.length < len) {
        v1.push('0')
      }
      while (v2.length < len) {
        v2.push('0')
      }

      for (let i = 0; i < len; i++) {
         num1 = parseInt(v1[i])
         num2 = parseInt(v2[i])

        if (num1 > num2) {
          return 1
        } else if (num1 < num2) {
          return -1
        }
      }
    return 0
  },
  goto: function(e) {
    var th = this;
    th.setData({
      beautician: 0,
      is_textea: 0
    })
    if (th.data.store_name == "") {
      getApp().my_warnning("请选择服务门店", 0, th);
      th.settime();
    } else if (th.data.beautician_name == "") {
      getApp().my_warnning("请选择美容师", 0, th);
      th.settime();
    } else {
      th.setData({
        is_textea: 1
      })
      var url = e.currentTarget.dataset.url;
      getApp().goto(url);
    }
  },
  //点击选择门店
  choose_for_store: function(e) {
    var th = this;
    var index_c = e.currentTarget.dataset.ind;
    var fir_pick_index = th.data.fir_pick_index;
    //判断是否点击选中的门店，防止重复点击重复设置选中下标
    if (index_c == fir_pick_index) {
      return false;
    } else {
      th.setData({
        fir_pick_index: index_c,
        beautician_name: "",
        time: "",
        tment_count: ""
      })
    }
  },
  //确认选择门店
  choice_store: function() {
    var th = this;
    var index = th.data.fir_pick_index;
    var store_name = th.data.store_list[index].StorageName;
    var Id = th.data.store_list[index].Id;
    th.setData({
      store: 0,
      store_name: store_name,
      storageId: Id,
      is_textea: 1
    })
  },
  onReachBottom: function() {
    var th = this;
    if (this.data.total <= th.data.pageSize) return;
    if (this.data.ismore) return;

    wx.showLoading({
      title: '加载中...',
    })
    th.query_store();
  },
  //分页查询门店信息
  query_store: function() {
    var th = this;
    th.setData({
      is_textea: 0
    })
    var itemId = th.data.itemId; //服务id
    var url = "/api/weshop/marketing/reservation/storage/pagenew";
    var key_word = th.data.key_word;
    key_word = key_word.replace(/\s+/g, "");
    getApp().request.promiseGet(url, {
      data: {
		userId:getApp().globalData.user_id,  
        storeId: a.stoid,
        serviceId: itemId,
        latitude: th.data.lat,
        longitude: th.data.lon,
        page: th.data.curpage,
        pageSize: th.data.pageSize,
        keyWord: key_word
      }
    }).then(res => {
      wx.hideLoading();
      if (res.data.code == 0) {
        th.data.curpage++;
        var arr1 = th.data.store_list;
        var arr2 = res.data.data.pageData;
        var arr3 = [...arr1, ...arr2];
        var ismore = 0;
        if (arr3.length == res.data.data.total) ismore = 1
        th.setData({
          store_list: arr3,
          total: res.data.data.total,
          ismore: ismore,
          is_service_read: 1,
        }), wx.stopPullDownRefresh(); //停止下拉刷新
        if (key_word != "" && res.data.data.pageData.length < 1) {
          th.setData({
            is_search: 1
          })
        }
      } else {
        getApp().my_warnning(res.data.msg, 0, th);
        th.settime();
      }
    })
  },
  //查询
  query_beautician: function() {
    var th = this;
    th.setData({
      is_textea: 0
    })
    if (th.data.store_name == "") {
      getApp().my_warnning("请选择服务门店", 0, th);
      th.settime();
    } else {
      wx.showLoading({
        title: '加载中',
      })
      var itemid = th.data.itemId; //正式使用的项目id
      var storageId = th.data.storageId; //正式使用的线下门店id
      var url = "/api/weshop/marketing/reservation/staff/pagenew"; //接口地址
      
	  getApp().request.promiseGet(url, {
        data: {
          storeId: a.stoid,
          userId: d.user_id,
          serviceId: itemid,
          storageId: storageId,
          VipId:getApp().globalData.userInfo.erpvipid,
        }
      }).then(res => {
        wx.hideLoading();
        if (res.data.code == 0) {
          th.setData({
            beautician_list: res.data.data
          })
          if (res.data.data.length < 1) {
            getApp().my_warnning("暂无美容师", 0, th);
            th.settime();
          } else {
            if (th.data.beautician == 0) {
              th.setData({
                beautician: 1,
              })
            } else {
              th.setData({
                beautician: 0,
              })
            }
          }
        } else {
          getApp().my_warnning(res.data.msg, 0, th);
          th.settime();
        }
      })
    }
  },
  choice_beautician: function(e) {
    var th = this;
    var bea_index = e.currentTarget.dataset.baaindex;
    var bea_name = th.data.beautician_list[bea_index].StaffName;
    var BeauticianID = th.data.beautician_list[bea_index].staffid;
	var StorageId=th.data.beautician_list[bea_index].StorageId
	
    th.setData({
      beautician_name: bea_name,
      beautician: 0,
      bea_index: bea_index,
      beauticianID: BeauticianID,
      time: "",
      tment_count: "",
      is_textea: 1,
	  StorageId:StorageId
    })

  },
  //获取搜索门店输入的值
  input_store: function(e) {
    this.setData({
      key_word: e.detail.value
    })
  },
  //搜索门店
  search_store: function() {
    var th = this;
    var key_word = th.data.key_word;
    var store_list = th.data.store_list;
    th.setData({
      curpage: 1,
      is_search: 0,
      store_list: []
    })
    wx.showLoading({
      title: '加载中',
    })
    th.query_store();
  },
  //美容师预约跳转页面
  nav_bea: function() {
    var th = this;
    th.setData({
      beautician: 0
    })
    var storageId = th.data.storageId; //线下门店id
    var itemId = th.data.itemId; //服务id
    var project_id = th.data.project_id;
    if (storageId == "") {
      getApp().my_warnning("请选择服务门店", 0, th);
      th.settime();
    } else {
      th.setData({
        is_textea: 1
      })
      wx.navigateTo({
        url: "/packageG/pages/user/my_service/cosmetology_list?" + 'storageId=' + storageId + '&' + 'itemId=' + itemId + '&' + "projectId=" + project_id
      });

    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var th = this;
    th.setData({
      itemId: options.service_id,
      buyType: options.BuyType,
      project_id: options.ProjectID,
      validay: options.Validay
    })
    wx.getLocation({
      type: 'gcj02',
      success: function(res) {
        th.data.lat = res.latitude;
        th.data.lon = res.longitude;
        th.data.is_get_local_ok = 1;
        th.setData({
          is_gps: 1
        });
      },
      fail: function(res) {
        if (res.errCode == 2) {
          th.setData({
            is_gps: 0
          });
          if (th.data.is_gps == 0) {
            getApp().confirmBox("请开启GPS定位", null, 25000, !1);
            th.settime();
          }
        } else {
          th.setData({
            is_gps: "3"
          });
        }

        th.data.is_get_local_ok = 1;
      }
    })
    //获取上一次的预约
    this.get_fir_service();

  },
  //查询剩下可预约人数
  query_more: function() {
    var th = this;
    var url = "/api/weshop/marketing/reservation/can/reservation/countnew";
    var beauticianID = th.data.beauticianID; //美容师id
    var projectID = th.data.itemId; //服务id
    var seekTime = th.data.time; //预约日期
    var storageId = th.data.storageId; //门店id
    var storeId = a.stoid; //商家id
    getApp().request.promiseGet(url, {
      data: {
        beauticianId: beauticianID,
        seekTime: seekTime,
        serviceId: projectID,
        storageId: storageId,
        storeId: storeId
      }
    }).then(res => {
      if (res.data.code == 0) {
        var tment_count = res.data.data.CanReservation;
        th.setData({
          tment_count: tment_count
        })
      } else {
        getApp().my_warnning(res.data.msg, 0, th);
        th.settime();
      }
    })

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    var th = this;
    var seekTime = th.data.time; //预约日期
    if (seekTime != "") {
      th.query_more();
    }
    th.setData({
      time: th.data.time.substring(0, 16),
      is_textea: 1
    })
    th.query_project();
  },
  //获取单个服务项目信息
  query_project: function() {
    var th = this;
    var url = "/api/weshop/marketing/reservation/sm/page"; //获取服务项目接口
    var project_id = th.data.project_id; //服务项目id
    getApp().request.promiseGet(url, {
      data: {
        storeId: a.stoid,
        userId: d.user_id,
        projectId: project_id
      }
    }).then(res => {
      if (res.data.code == 0) {
        th.setData({
          validay: res.data.data.pageData[0].Validay
        })
      } else {
        getApp().my_warnning(res.data.msg, 0, th);
        th.settime();
      }
    })
  },
  //关闭导航
  close: function() {
    var th = this;
    var nav_b = th.selectComponent("#nav_b"); //组件的id
    nav_b.close_box();
  },

  //判断分享的导购是不是有门店，是不是该门店下又该会员
  check_firleader(data){
    var th=this;
    var itemId = this.data.itemId; //服务id
    var url = "/api/weshop/marketing/reservation/storage/pagenew";
    var key_word = data.store_name;
    key_word = key_word.replace(/\s+/g, "");
    var usr=getApp().globalData.userInfo;
    getApp().request.promiseGet(url, {
      data: {
        userId: usr.user_id,
        storeId: os.stoid,
        serviceId: itemId,
        page: 1,
        pageSize: 1000,
        keyWord: key_word
      }
    }).then(res => {
      //-- 如果是门店的话 --
      if (res.data.code == 0 && res.data.data && res.data.data.pageData  && res.data.data.pageData.length) {
        var store_data=null;
        for(var i in res.data.data.pageData){
          var it=res.data.data.pageData[i];
          if(it.Id==data.StorageId){
            store_data={
              store_name: data.store_name,
              storageId: data.StorageId,
            };
            break;
          }
        }
        if(!store_data) return false;
        th.setData(store_data)

      }else{
        return false;
      }

      //导购接口地址
      var url = "/api/weshop/marketing/reservation/staff/pagenew";
      return  getApp().request.promiseGet(url, {
        isShowLoading:1,
        data: {
          storeId: os.stoid,
          userId: usr.user_id,
          serviceId: itemId,
          storageId: data.StorageId
        }
      })
    }).then(res=>{
      if (res && res.data && res.data.code == 0) {
        var beautician_list=res.data.data;
        for(var i in beautician_list){
          var item=beautician_list[i];
          if(item.staffid==data.beauticianID){
            th.setData({
              beautician_name:data.beautician_name,
              beauticianID:data.beauticianID,
            })
            break;
          }
        }

      }
    })
  },

  //获取上一次预约的信息
  get_fir_service:function (){
     var th=this;
     var usr=getApp().globalData.userInfo;
     if(!usr) return false;

     getApp().promiseGet("/api/weshop/marketing/reservation/reservation/page",{
         data:{storeId:os.stoid,userId:usr.user_id,projectId:th.data.project_id}
     }).then(res=>{
       if(res.data.code==0 && res.data.data && res.data.data.pageData ){
             var ppdata= res.data.data.pageData[0];
             var data={
               store_name:ppdata.StorageName,
               beautician_name:ppdata.BeauticianName,
               beauticianID:ppdata.BeauticianID,
               StorageId:ppdata.StorageID,
             }
             //检查门店和导购能不能默认使用
             th.check_firleader(data);
       };
     })
  }



})