/*******************************************************************************
* Copyright(c) 2022 dongke All rights reserved. / Confidential
* 类的信息：
*		1.程序名称：
*		2.功能描述：登录画面
* 编辑履历：
*		作者				日期					版本				修改内容
*		admin		  	2022-11-22			1.00		   	新建
*******************************************************************************/
const app = getApp()

const api = require('@/utils/api.js');
const config = require('@/config/config.js');
const Constants = require('@/utils/Constants.js');
const util = require('@/utils/util.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    imageUrl: config.image_url + '/static/img/',
    //创建企业 加入企业
    flgCompany: null,
    // 隐私
    agreementPrivacy: false,
    // 电话授权标识
    openType: '-',
    // 语言包
    $t: app.globalData.lang,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log("app.global", app.globalData);
  },

  /**
  * @desc : 隐私
  * @date : 2022/5/12 13:49
  * @author : 姜永辉
  */
  onCheckboxChange(e) {
    this.setData({
      agreementPrivacy: e.detail
    })
    if (e.detail) {
      this.setData({
        openType: 'getPhoneNumber'
      })
    } else {
      this.setData({
        openType: '-'
      })

    }
  },

  /**
* @desc : 了解产品
* @date : 2022/5/12 13:49
* @author : 姜永辉
*/
  productClick(e) {
    wx.navigateTo({
      url: '/pages/product/product'
    })
  },

  /**
  * @desc : 加入企业和创建企业
  * @date : 2022/5/12 13:49
  * @author : 姜永辉
  */
  addCompany(e) {
    if (!this.data.agreementPrivacy) {
      util.showToast(this.data.$t['checkPrivacy']);
    }
  },

  /**
  * @desc : 免费体验
  * @date : 2022/5/12 13:49
  * @author : 姜永辉
  */
  freeClick(e) {
    // 测试的openid
    app.globalData.openid = 'dktest'
    let _this = this
    //  调用接口
    _this.getTokenPromise().then(res => {
      if (res.data.code === Constants.SUCESS_CODE) {
        app.globalData.user = res.data.data
        app.globalData.token = res.data.data.accessToken
        if (res.data.data.company == undefined
          || res.data.data.company.cpId == undefined) {
          // 调转选择公司
          wx.reLaunch({
            url: '../../pages/company/company',
          })
        } else {
          // 调转主页
          wx.reLaunch({
            url: '../../pages/home-page/home-page',
          })
        }
      }
    })
  },

  /**
  * @desc : 获取微信派发的临时登录凭证
  * @date : 2022/5/12 13:49
  * @author : 姜永辉
  */
  getTokenPromise() {
    return new Promise((resolve, reject) => {
      api.request(Constants.SYS_OPENID_API + 'oauth/feign/wx/token', 'POST',
        { 'userWxid': app.globalData.openid }).then(res => {
          resolve(res)
        })
    })
  },

  /**
 * @desc : 注册微信用户信息
 * @date : 2022/5/12 13:49
 * @author : 姜永辉
 */
  register(param) {
    let _this = this
    api.request(Constants.SYS_OPENID_API + 'oauth/wx/register', 'POST', param).then(res => {
      console.log("register", res);
      if (res.data.code == Constants.SUCESS_CODE) {
        let data = res.data.data
        app.globalData.user = data
        app.globalData.token = data.accessToken
        // 调转选择公司 加入公司
        if (_this.data.flgCompany == "add") {
          if (data.company == undefined && data.joinedCps != undefined
             && data.joinedCps.length > 0) {
            // 调转加入企业
            wx.reLaunch({
              url: '../../pages/company/company',
            })
          }else{
            wx.navigateTo({
              url: '../../pages/add-company/add-company',
              events: {
                // 回调后
                bindData: function (data) {
                }
              },
              success: function (res) {
                res.eventChannel.emit('params',
                  { phoneNumber: app.globalData.phoneNumber, openid: app.globalData.openid })
              }
            })
          }
          
        } else {
          wx.navigateTo({
            url: '/package-basic-data/pages/register/company-register/company-register',
            events: {
              // 回调后
              bindData: function (data) {
              }
            },
            success: function (res) {
              res.eventChannel.emit('params',
                {
                  phoneNumber: app.globalData.phoneNumber,
                  openid: app.globalData.openid,
                  formMode: Constants.formMode.other,
                })
            }
          })
        }
      }
    })
  },


  /**
* @desc : 处理加密电话
* @date : 2022/5/12 13:49
* @author : 姜永辉
*/
  handleGetPhoneNumber(e) {
    console.log("handleGetPhoneNumber", e);
    let flg = e.currentTarget.dataset.company
    this.setData({
      flgCompany: flg
    })
    if (e.detail.errMsg == 'getPhoneNumber:ok') {
      this.getWechatMobileDecrypt(e.detail.encryptedData, e.detail.iv, app.globalData.sessionkey)
    }
  },

  /**
   * 手机号解密
   * @param {*} encryptedData 
   * @param {*} iv 
   * @param {*} sessionKey 
   */
  getWechatMobileDecrypt(encryptedData, iv, sessionKey) {
    let _this = this
    let param = {
      encryptedData: encryptedData,
      iv: iv,
      sessionKey: sessionKey,
    }
    api.request(Constants.SYS_OPENID_API + 'oauth/wx/decrypt', 'POST', param).then(res => {
      if (res.data.code === Constants.SUCESS_CODE) {
        let tel = res.data.data.phoneNumber
        app.globalData.phoneNumber = tel
        // // 电话 和 昵称
        let param = {
          userPhone: tel,
          userName: tel,
          userWxid: app.globalData.openid
        }
        // 注册微信用户
        _this.register(param)
      }
    })

  },

})