// pages/components/auth/auth.js
const api = require('../../../config');
const getReq = require('../../../config').getReq;

let app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    phone_iv: '',
    phone_encryptedData: '',
    userInfoE:{},
    showAuthName: true,
    showAuthPhone: false,
  },

  lifetimes: {
    attached: function () {
      if(!app.globalData.userInfo) {
        this.setData({ showAuthName: true, showAuthPhone: false })
      }
      else if(!app.globalData.hasmobile) {
        this.setData({ showAuthName: false, showAuthPhone: true })
      }      
    },
    detached: function () {
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    userPhoneHandler: function(e) { 
      if (e.detail.errMsg == "getPhoneNumber:ok"){
        this.phone_encryptedData = e.detail.encryptedData
        this.phone_iv = e.detail.iv
        this.wxauthen(this.userInfoE)
      }
    },
    userInfoHandler(e) 
    {
      if (e.detail.errMsg == "getUserInfo:ok") 
      {
        app.globalData.userInfo = e.detail.userInfo;
        app.globalData.userInfo.nickname = e.detail.userInfo.nickName;
        this.userInfoE = e
        this.wxauthen(e)
      }
    },
    wxauthen: function (eInfo) {      
      let userInfo;
      if (app.globalData.userId.unionid) {
        userInfo = Object.assign({}, app.globalData.userId, app.globalData.userInfo);
      }
      else {
        userInfo = eInfo.detail.userInfo;
        let { encryptedData, iv, signature } = eInfo.detail
        userInfo = Object.assign({}, { encryptedData }, { signature }, { iv }, userInfo)
      }
      
      let phoneInfo = { iv: this.phone_iv, encryptedData: this.phone_encryptedData }
      let params = {
        user_info: userInfo,
        phone_info: phoneInfo,
        act: "login",
        op: "wxauthen",
        relay_id: app.globalData.relay_id
      }

      let self = this;
      getReq(app,params, function (res) {
        if (res.code == 200) {
          let datas = res.datas;
          app.globalData.member_id = datas.member_id
          app.globalData.hasmobile = datas.hasmobile
          
          if (datas.hasmobile == false) {
            self.setData({showAuthName:false,showAuthPhone:true})
          }
          else {
            self.triggerEvent('getAuth', {
              userInfo
            })
          }
        }
        else {
          app.relogin();
          wx.showToast({
            icon: 'none',
            title: '登陆遇到一点麻烦，请重试~~~',
            duration: 2000
          })
        }
      })
    }
  }
})
