var api = require('../../../config/api.js');
var util = require('../../../utils/util.js');
var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    smscode: '',
    second: '发送验证码',
    disabled: false,
    disabledUpdate: false,
    paramView: '',
    navUrl: '',
    isRegist: true
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    if(options.view){
      that.setData({
        paramView: options.view
      });
    }
    console.log(that.data.paramView)
    if (wx.getStorageSync("navUrl")) {
      that.setData({
        navUrl: wx.getStorageSync("navUrl")
      })
    } else {
      that.setData({
        navUrl: '/pages/index/index'
      })
    }
  },
  /**
   * 页面渲染完成
   */
  onReady: function () {

  },
  /**
   * 页面显示
   */
  onShow: function () {

  },
  /**
   * 页面隐藏
   */
  onHide: function () {
  },
  /**
   * 页面关闭
   */
  onUnload: function () {
    console.log('登陆页面返回2,进入登陆页参数：' + this.data.paramView)
    wx.setStorageSync('isRefusedLogin', 'true');//拒绝授权
    if (this.data.paramView == 'hotGoods' || this.data.paramView == 'indexGoods' || this.data.paramView == 'cart') {
      wx.setStorageSync("isLocationIndex", "true");//购物车是否已跳转登录页，跳转成功设置为true已跳转
      wx.switchTab({
        url: '/pages/index/index'
      });
    }
    if (this.data.paramView == 'cateGoods') {
      wx.switchTab({
        url: '/pages/catalog/catalog'
      });
    }
    if (this.data.paramView == 'hotGoodsView') {
      wx.navigateBack({
        delta: 1
      })
    }
  },

  clearPhone() {
    this.setData({
      phone: ''
    });
  },
  clearCode() {
    this.setData({
      smscode: ''
    });
  },
  bindPhoneInput: function (e) {
    console.log(e.detail.value)
    this.setData({
      phone: e.detail.value
    });
  },
  bindSmscodeInput: function (e) {
    this.setData({
      smscode: e.detail.value
    });
  },
  /**
  * 用户登录，获取授权用户信息，查询授权用户openid是否与登录用户手机号绑定一致,
  * 不一致的提示是否更新手机绑定信息，一致则登录成功
  */
  loginUser: function () {
    let regular = /^1[3|4|5|7|8]\d{9}$/;
    if (!regular.test(this.data.phone)) {
      util.showErrorToast('手机格式不正确')
      return false;
    }
    if (this.data.smscode.length == 0) {
      util.showErrorToast('验证码不能为空')
      return false;
    }
    var that = this;
    wx.login({
      success: function (res) {
        if (res.code) {
          wx.getUserInfo({
            withCredentials: true,
            success: function (succRes) {
              util.request(api.getOpenId, {
                code: res.code
              }).then((openIdRes) => {
                if (openIdRes.errno === 0){
                  //授权成功登录用户信息
                  util.request(api.userLogin, {
                    smscode: that.data.smscode,
                    phone: that.data.phone,
                    storeId: wx.getStorageSync('storeId'),
                    merchSn: wx.getStorageSync('merchSn'),
                    userInfo: succRes,
                    openId: openIdRes.data
                  }, 'POST').then(function (userLoginRes) {
                    if (userLoginRes.errno === 0) {
                      //存储用户信息
                      that.setLoginUserInfo(userLoginRes);
                      console.log("登录成功");
                      util.showSuccessToast('登录成功');
                    }else if (userLoginRes.errno === 2) {//openid的绑定的手机号与当前用户登录的手机号不一致
                      wx.showModal({
                        title: '提示',
                        content: userLoginRes.errmsg,
                        success: function (conRes) {
                          if (conRes.confirm) {
                            util.request(api.userLoginMobileUpdate, {
                              phone: that.data.phone,
                              openId: openIdRes.data,
                              storeId: wx.getStorageSync('storeId'),
                              merchSn: wx.getStorageSync('merchSn'),
                              userInfo: succRes,
                            }, 'POST').then(function (loginMobUpdRes) {
                              if (loginMobUpdRes.errno === 0) {
                                //存储用户信息
                                that.setLoginUserInfo(loginMobUpdRes);
                                console.log("登录成功");
                                util.showSuccessToast('登录成功');
                              } else {
                                util.showErrorToast(loginMobUpdRes.errmsg);
                              }
                            })
                          } else {
                            console.log('弹框后点取消')
                          }
                        }
                      })
                    } else {
                      if (userLoginRes.errmsg.length>8){
                        wx.showModal({
                          title: '提示',
                          content: userLoginRes.errmsg,
                          showCancel: false
                        })
                      } else {
                        util.showErrorToast(userLoginRes.errmsg);
                      }
                    }
                  });
                }
              });
              
            },
            fail: function (err) {
              wx.setStorageSync('isRefusedLogin', 'true');//拒绝授权
              // wx.switchTab({
              //   url: '/pages/index/index'
              // });
              console.log("登录页重新认证");
            }
          });
        } else {
          console.log("failed");
        }
      },
      fail: function (err) {
        console.log("failed");
      }
    });
  },
  /**
   * 存储用户信息
   */
  setLoginUserInfo: function (loginMobUpdRes){
    var that = this;
    wx.setStorageSync('userInfo', loginMobUpdRes.data.userInfo);
    wx.setStorageSync('token', loginMobUpdRes.data.token);
    wx.setStorageSync('userId', loginMobUpdRes.data.userId);

    if (that.data.paramView == 'goodsView') {
      wx.navigateBack({
        delta: 1
      });
    } else {
      if (that.data.navUrl && that.data.navUrl == '/pages/index/index') {
        console.log(that.data.navUrl)
        wx.switchTab({
          url: that.data.navUrl,
        });
      } else if (that.data.navUrl) {
        wx.redirectTo({
          url: that.data.navUrl,
        });
      }
    }

    wx.setStorageSync('isRefusedLogin', 'false');//允许授权
  },
  /**
   * 发送短信
   */
  smscode: function () {
    var that = this;

    let regular = /^1[3|4|5|7|8]\d{9}$/;
    if (!regular.test(that.data.phone)) {
      util.showErrorToast('手机格式不正确')
      return false;
    }
    util.request(api.smscodeSend, {
      phone: that.data.phone
    }, 'POST').then(function (res) {
      let n = 59;
      var timer = setInterval(function () {
        if (n == 0) {
          clearInterval(timer);
          that.setData({
            second: '发送验证码',
            disabled: false
          });
        } else {
          that.setData({
            second: n-- + 's后重新获取',
            disabled: true
          });
        }
      }, 1000);
      if (res.errno == 0) {
        wx.showToast({
          title: '短信发送成功'
        })
      } else {
        util.showErrorToast('发送失败');
        clearInterval(timer);
        that.setData({
          second: '发送验证码',
          disabled: false
        });
        return false;
      }
    });
  },
  backHome: function () {
    wx.reLaunch({
      url: '../index/index',
    })
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
  // /**
  //  * 用户点击右上角分享
  //  */
  // onShareAppMessage: function () {

  // },
  bindCancelLogin: function () {
    wx.setStorageSync('isRefusedLogin', 'true');//拒绝授权
    wx.switchTab({
      url: '/pages/index/index'
    });
  },
  /**
   * 登录页直接触发微信授权，授权成功保存用户信息
   */
  bindGetUserInfo: function () {
    let that = this;
    
    wx.login({
      success: function (res) {
        if (res.code) {
          wx.getUserInfo({
            withCredentials: true,
            success: function (succRes) {
              //保存授权用户信息
              wx.request({
                url: api.AuthLoginByWeixin,
                data: {
                  code: res.code, userInfo: succRes, storeId: wx.getStorageSync('storeId'), merchSn: wx.getStorageSync('merchSn')
                },
                method: 'POST',
                header: {
                  'Content-Type': 'application/json'
                },
                success: function (wxRes) {
                  if (wxRes.data.errno === 0) {
                    //存储用户信息到缓存
                    wx.setStorageSync('userInfo', wxRes.data.data.userInfo);
                    wx.setStorageSync('token', wxRes.data.data.token);
                    wx.setStorageSync('userId', wxRes.data.data.userId);

                    if (that.data.paramView == 'goodsView') {
                      wx.navigateBack({
                        delta: 1
                      });
                    } else {
                      if (that.data.navUrl && that.data.navUrl == '/pages/index/index') {
                        console.log(that.data.navUrl)
                        wx.switchTab({
                          url: that.data.navUrl,
                        });
                      } else if (that.data.navUrl) {
                        wx.redirectTo({
                          url: that.data.navUrl,
                        });
                      }
                    }

                    wx.setStorageSync('isRefusedLogin', 'false');//允许授权
                    // console.log("登录成功");
                  }
                },
                fail: function (err) {
                  console.log("failed");
                }
              });
            },
            fail: function (err) {
              wx.setStorageSync('isRefusedLogin', 'true');//拒绝授权
              // wx.switchTab({
              //   url: '/pages/index/index'
              // });
              console.log("登录页重新认证");
            }
          });
        } else {
          console.log("failed");
        }
      },
      fail: function (err) {
        console.log("failed");
      }
    });

  },
  /*registUser: function () {
    var that = this;
    let regular = /^1[3|4|5|7|8]\d{9}$/;
    if (!regular.test(that.data.phone)) {
      util.showErrorToast('手机格式不正确')
      return false;
    }
    if (that.data.smscode.length == 0) {
      util.showErrorToast('验证码不能为空')
      return false;
    }
    wx.login({
      success: function (res) {
        if (res.code) {
          wx.getUserInfo({
            withCredentials: true,
            success: function (succRes) {
              util.request(api.getOpenId, {
                code: res.code
              }).then((openIdRes) => {
                if (openIdRes.errno === 0) {
                  that.registUserUtil();
                }
              });
            },
            fail: function (err) {
              wx.setStorageSync('isRefusedLogin', 'true');//拒绝授权
              console.log("注册前进行授权重新认证");
            }
          });
        } else {
          console.log("faild");
        }
      },
      fail: function (err) {
        console.log("failed");
      }
    })
  },
  registUserUtil: function () {
    var that = this;
    util.request(api.registUser, {
      smscode: that.data.smscode,
      phone: that.data.phone
    }, 'POST').then(function (res) {
      if (res.errno === 0) {
        //存储用户信息
        wx.setStorageSync('userInfo', res.data.data.userInfo);
        wx.setStorageSync('token', res.data.data.token);
        wx.setStorageSync('userId', res.data.data.userId);

        if (that.data.navUrl && that.data.navUrl == '/pages/index/index') {
          wx.switchTab({
            url: that.data.navUrl,
          });
        } else if (that.data.navUrl) {
          wx.redirectTo({
            url: that.data.navUrl,
          });
        }

        wx.setStorageSync('isRefusedLogin', 'false');//允许授权
        // console.log("登录成功");
      } else {
        util.showErrorToast(res.errmsg);
      }
    });
  },
  showRegist: function(){
    var that = this;
    that.setData({
      isRegist: false
    });
    wx.setNavigationBarTitle({
      title: '注册'
    })
  }*/
})