// 导入TDesign弹窗
import Toast from 'tdesign-miniprogram/toast/index';
const app = getApp();//新建页面时 默认引入
const req = app.simpleReq();//初始化一个的request() 实例
// 导入RSA加密包
import WxmpRsa from 'wxmp-rsa'

Page({
    data: {

    },
    // 此处为周期事件
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        if(options&&options.sn&&options.sn!=null&&options.sn!=''){
            console.log('有数据'+options.sn)
            wx.showToast({
                title:options.sn,
                icon: 'none',
                duration: 5000
            })
            this.login('nfc',options.sn)
        }else{
            console.log('无数据')
        }
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },
    /*---------------------------------------------*/
    //以下为自定义事件
    /**跳转到获取晶石页面 */
    go2Get(){
        // wx.navigateTo({
        //     url: '/pages/index/out/out'
        //     })
        console.log('跳转获取晶石页面');
    },
    /**
     * 登录失败提示
     */
    loginErrorToast(mode) {
        Toast({
          context: this,
          selector: '#t-toast',
          message: mode=='scan'?'扫码登录失败\n 二维码有误':'精灵链接失败\n 请再试一次',
          theme: 'error',
          direction: 'column',
        });
    },
    /**扫码事件 */
    scanCodeEvent(){
        var that = this;
        var DEV_CODE = ""
        //扫码代码
        wx.scanCode({
            onlyFromCamera: true,// 只允许从相机扫码
             success(res){
              that.login('scan',res.result)
            },
          })
    },

    /**
     * 登录事件,
     * mode为模式参数，scan为扫码，nfc为nfc模式
     * code为用户码参数，用户码为空则代表为扫码登录
     */
    login(mode,code){
        //如果有token，直接进入
        if(wx.getStorageSync('token')){
            wx.showToast({
                title:'有token'+wx.getStorageSync('token'),
                icon: 'none',
                duration: 5000
            })
            wx.switchTab({
                url: '/pages/home/xy/index'
                })
        }
        // wx.showToast({
        //     title:'没有token',
        //     icon: 'none',
        //     duration: 5000
        // })
        console.log('进入登录了！！！')
        var DEV_CODE = code
        var PUBLIC_KEY = ""
        req.getRequest('/api/dict/value/login-public-key',{}).then((res)=>{
            console.log(res,'11111111');
            if(res.data.code==200){//获取公钥成功
                PUBLIC_KEY = res.data.data        
                // 实例化rsa
                const rsa = new WxmpRsa()
                // 设置公钥
                rsa.setPublicKey(PUBLIC_KEY)
                // 加密
                const mac = rsa.encryptLong(DEV_CODE)
                // 此处执行登录获取token操作
                req.postRequest('/api/user/login',{'mac':mac}).then((res)=>{
                  if(res.data.code==200){
                      wx.setStorageSync('token', res.data.data)
                      // 设置当前设备码
                      wx.setStorageSync('code', DEV_CODE)
                      // 设置为初次识别NFC
                      wx.setStorageSync('nfc', false)
                      wx.showToast({
                          title:mode=='scan'?'扫码登录成功':'NFC识别成功',
                          icon: 'none',
                          duration: 1000
                      })
                      this.getLetter()
                  }else if(res.data.code==500){
                      this.loginErrorToast(mode)
                  }else{
                    this.loginErrorToast(mode)
                  } 
                }
            )
            }else{
              wx.showToast({
                  title:'扫码失败，请确认您的二维码是否正确！',
                  icon: 'none',
                  duration: 1000
                })
            }
           }).catch((err)=>{
            console.log(err);
           })
    },
    // 判断是否用未读信札
    getLetter(){
        console.log(wx.getStorageSync('token'));
        wx.request({
            url: 'https://xzjl-api.windymuse.cn/api/user/curt',
            header: {'Authorization': wx.getStorageSync('token')},
            method: 'GET',
            success: res => {
                console.log(res.data.data.letterStatus);
                const letterStatus = res.data.data.letterStatus
                // 这里可以判断是否有未读信札
                if (letterStatus === 'sending') {
                    console.log('跳转信札页面');
                    wx.redirectTo({
                        url: '/pages/xz/index'
                    })
                }else {
                    wx.switchTab({
                        url: '/pages/home/xy/index'
                        })
                }
            }
        })
    }
})