/*******************************************************************************
* 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 = Constants.testCpCodes.std_test
    let _this = this
    //  调用接口
    _this.getTokenPromise().then(res => {
      if (res.data.code === Constants.SUCESS_CODE) {
        let data = res.data.data;
        app.globalData.user = data
        app.globalData.token = data.accessToken
        // 记录登录的缓存
        app.globalData.company = data.company
        // 读取后台设置的url
        if (data.company && data.company.svcIp && data.company.svcPort) {
          app.globalData.URI = data.company.svcIp + ':' + data.company.svcPort
        }
        if (res.data.data.company == undefined
          || res.data.data.company.cpId == undefined) {
          // 调转选择公司
          wx.reLaunch({
            url: '../../pages/company/company',
          })
        } else {
          // // 接口登录后获取数据
          _this.getInfoAfterLogin();
        }
      }
    })
  },

  /**
  * @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 : 周兴
*/
  getInfoAfterLogin() {
    api.request('mdm-server/mst/staff/get_info_after_login', 'POST',
      {
        'appCode': Constants.APP_CODE,
        'cpId': app.globalData.company.cpId,
        'userId': app.globalData.user.userId
      }).then(res => {
        if (res.data.code === Constants.SUCESS_CODE) {
          console.log('red', res);
          // 员工
          let staff = res.data.data.staff
          if (staff && staff.staffId) {
            app.globalData.user.cpId = staff.cpId
            app.globalData.user.staffId = staff.staffId
            app.globalData.user.staffCode = staff.staffCode
            app.globalData.user.staffName = staff.staffName
            app.globalData.user.roleIds = staff.roleIds
            app.globalData.user.orgId = staff.orgId
            app.globalData.user.orgName = staff.orgName
            app.globalData.user.defaultWhName = staff.defaultWhName
            app.globalData.user.defaultWhId = staff.defaultWhId
            app.globalData.user.flgBusiness = staff.flgBusiness
            app.globalData.user.flgInit = !!staff.flgInit 
            // 调转主页--注意有场景值的情况 
            if (this.data.scene) {
              wx.reLaunch({
                url: '../../pages/home-page/home-page?scene=' + this.data.scene,
              })
            } else {
              wx.reLaunch({
                url: '../../pages/home-page/home-page',
              })
            }
          }
          // 菜单
          let menuList = res.data.data.menuList
          if (menuList) {
            app.globalData.menus = menuList
          }
          // 常用菜单
          let comMenuList = res.data.data.comMenuList
          if (comMenuList) {
            app.globalData.comMenuList = comMenuList
          }
          // 系统参数
          let setting = res.data.data.settingValue
          if (setting) {
            app.globalData.setting = JSON.parse(setting.setting.value)
            // console.log('setting', app.globalData.setting[Constants.settingCode.IVT001]);
          }
          // 系统字典
          let dataKindList = res.data.data.dataKindList
          if (dataKindList) {
            app.globalData.dataKindList = dataKindList
          }
        }
      })
    console.log('app.globalData', app.globalData);
  },

  /**
   * @desc : 调回主页刷新
   * @date : 2022/5/12 13:49
   * @author : 姜永辉
   */
  gotoWelcome() { 
    setTimeout(() => { 
      // 调转主页
      wx.reLaunch({
        url: '/pages/welcome/welcome',
      })
    }, 400);
  },

  /**
 * @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") {
          // 调转加入企业
          wx.reLaunch({
            url: '../../pages/company/company',
          })
          // 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: {
              // 回调后
              refresh: function (data) {
                console.log("company-register--okkkk", data);
                _this.gotoWelcome()
              }
            },
            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)
      }
    })

  },

})