// pages/home/me/indexx.js
import Toast from 'tdesign-miniprogram/toast/index';
import Dialog from 'tdesign-miniprogram/dialog/index';
const app = getApp();//新建页面时 默认引入
const req = app.xzjlReq();//初始化一个的request() 实例
Page({

    /**
     * 页面的初始数据
     */
    data: {
        isCxHq:false,
        bdsjhVisible:false,
        avatar:"",
        countdown:60,
        userInfo:{
            avatar:"",
            nick:"",
            isChatVip:false,//是否会员
            phone:'',
            hasPhone:false
        },
        phone:'',
        phoneVerificationCode:'',
        bdSuccess: false,  //绑定成功
        showPhone: true, //更改手机号码
        isHavePhone: true,
        existPhone: false,
        findAccount: false, //账号账号数据
        openLogout: false, //退出登入
        deadline: 0
    },
    // 手机号码校验
    getPhone(e){
        const phone = e.detail.value;
        if (!/^1[3456789]\d{9}$/.test(phone)) {
            wx.showToast({
              title: '手机号码格式不正确',
              icon: 'none'
            });
            return;
          }
    },
    getVerificationCode(e){
        const VerificationCode = e.detail.value;
        if (VerificationCode.length !== 6) {
            wx.showToast({
              title: '验证码格式不正确',
              icon: 'none'
            });
            return;
        }
    },
    // 找回数据
    findData(){
        this.setData({
            existPhone: false,
            findAccount: true,
            showPhone: false
        })
    },
    // 找回账号数据
    retrieveAccount(){
        req.patchRequest('/api/user/retrieve-data',{
            phone:this.data.phone,
            code:this.data.phoneVerificationCode
        }).then(res => {
            if (res.data.code === 200) {
                wx.showToast({
                    title: '找回数据成功，请重新登入',
                    icon: 'none'
                })
                setTimeout(() => {
                    wx.redirectTo({
                        url: '/pages/index/index',
                    })
                }, 1000);
            }else {
                wx.showToast({
                    title: res.data.msg,
                    icon: 'error'
                })
            }
        }).catch(res => {
            console.log(res, '找回账号数据失败');
        })

    },
    closeFindData(){
        this.setData({
            existPhone: true,
            showPhone: false,
            findAccount: false
        })
    },
    closeExistPhone(){
        this.setData({
            existPhone: false,
            showPhone: true
        })
    },
    bindinNewPhone(){
        this.setData({
            existPhone: false,
            showPhone: true,
            isHavePhone: false,
            phone: '',
            phoneVerificationCode: '',
            isCxHq: false,
            countdown: 60
        })
    },
    getCode(){
        // 请求前校验
        if (!/^1[3456789]\d{9}$/.test(this.data.phone)) {
            return wx.showToast({
              title: '手机号码格式不正确',
              icon: 'none'
            });
        }
        // if(this.data.phone === this.data.userInfo.phone){
        //     return wx.showToast({
        //         title: '您已绑定该号码',
        //         icon: 'error'
        //     })
        // }
        if(this.data.countdown === 60 || this.data.countdown === '重新获取'){
            req.postRequest('/api/user/send-authentication-code',{
                phone:this.data.phone
            }).then((res)=>{
                if (res.data.code === 200) {
                    wx.showToast({
                        title: '验证码已发送，请在手机上查收',
                        icon: 'none'
                    })
                    if (this.data.countdown === '重新获取') {
                        this.setData({countdown: 60})
                    }
                    // 验证码倒计时
                    this.setData({isCxHq:true})
                    const timerId = setInterval(()=>{
                        this.setData({countdown:this.data.countdown-1})
                        if (this.data.countdown === 0) {
                            clearTimeout(timerId);
                            this.setData({countdown:'重新获取'})
                        }
                    },1000)
                    this.setData({timerId: timerId})
                }
            }).catch(res => {
                wx.showToast({
                    title: '发送失败',
                    icon: 'error'
                })
                console.log(res, '验证码发送失败');
            })
        }
    },
    doBdsjh(){
        console.log('绑定手机号')
        this.setData({bdsjhVisible:true})
    },
    doCancelSjh(){
        this.setData({
            bdsjhVisible:false,
            showPhone: true, //更改手机号码
            isHavePhone: false,
            existPhone: false,
            findAccount: false, //账号账号数据
            phone: '',
            phoneVerificationCode: '',
            isCxHq: false
        })
        clearTimeout(this.data.timerId);
    },
    bdSuccessBtn(){
        this.setData({
            bdsjhVisible: false,
            showPhone: true,
            bdSuccess: false
        })
    },
    doEXecSjh(){
        if (this.data.phone === this.data.userInfo.phone) {
            return wx.showToast({
                title: '已绑定该手机号',
                icon: 'error'
            })
        }
        if (this.data.phoneVerificationCode.length !== 6) {
            return wx.showToast({
              title: '验证码格式不正确',
              icon: 'none'
            });
        }
        req.patchRequest('/api/user/curt',{
            phone:this.data.phone,
            phoneVerificationCode:this.data.phoneVerificationCode
        }).then((res)=>{
            if (res.data.code === 1003) {
                return wx.showToast({
                    title: '手机验证码不存在',
                    icon: 'error'
                })
            }
            if (res.data.code === 1004) {
                return wx.showToast({
                    title: '手机验证码错误',
                    icon: 'error'
                })
            }
            if (res.data.code === 1005) {
                return wx.showToast({
                    title: '手机验证码已过期',
                    icon: 'error'
                })
            }
            if (res.data.code === 500) {
                return this.setData({
                    existPhone: true,
                    showPhone: false,
                })
            }else {
                this.getUserInfo()
                this.setData({
                    bdSuccess: true,
                    showPhone: false,
                    phoneVerificationCode:'',
                    isCxHq:false
                })
            }
        })
    },
    go2Grzl(){
        wx.redirectTo({
            url: '/pages/home/me/grzl/grzl'
            })
    },
    // 跳转到会员购买页面
    go2Member(){
        wx.navigateTo({
            url: '/pages/home/me/member/member?isChatVip=' + this.data.userInfo.isChatVip
        })
    },
    go2Gw(){
        // wx.redirectTo({
        //     url: '/pages/home/me/gw/gw'
        //     })
        console.log('跳转了解星座精灵页面');
    },
    go2Ysxy(){
        wx.redirectTo({
            url: '/pages/home/me/ysxy/ysxy'
        })
        console.log('跳转隐私协议页面');
    },
    go2Yhsyxy(){
        wx.redirectTo({
            url: '/pages/home/me/yhsyxy/yhsyxy'
        })
        console.log('跳转用户协议页面');
    },
    go2Cjwt(){
        // wx.redirectTo({
        //     url: '/pages/home/me/cjwt/cjwt'
        //     })
        console.log('跳转常见问题页面');
    },
    go2Device(){
        wx.redirectTo({
            url: '/pages/home/me/mydevice/device'
            })
    },
    go2Sq(){
        wx.showToast({
            title: '敬请期待',
            icon: 'none'
        })
    },
    go2Yjfk(){
        wx.redirectTo({
            url: '/pages/home/me/yjfk/yjfk'
            })
    },

    go2Manual(){
        wx.redirectTo({
            url: '/pages/home/me/manual/manual'
        })
        console.log('跳转说明书页面');
    },
    go2Jcjb(){
        wx.redirectTo({
            url: '/pages/home/me/jcjb/jcjb'
        })
    },
    getUserInfo(){
        req.getRequest('/api/user/curt',{}).then((res)=>{
            if(res.data.code==200){
                this.setData({
                    userInfo:res.data.data,
                    // phone:res.data.data.phone,
                })
                // 获取默认头像
                this.getDetaile()
                // 获取vip截止日期
                if (res.data.data.isChatVip) {
                    this.getVipDeadline(res.data.data.chatVipEndTime)
                }
            }
           }).catch((err)=>{
            console.log(err);
        })
    },
    ReqData(){
        req.getRequest('/getList',{id: 1024}).then((res)=>{
            console.log(res);
           }).catch((err)=>{
            console.log(err);
           })
    },

    // 获取默认头像
    getDetaile(){
        const list = wx.getStorageSync('xy-static-img')
        const type = this.data.userInfo.constellation
        this.setData({
            list: list[type]
        })
    },

    // 获取vip截止日期
    getVipDeadline(time){
        const endTime = new Date(time)
        const newTime = new Date()

        // 判断时间是否已经到期
        if (endTime > newTime) {
            const deadTime =  endTime - newTime
            const deadline = Math.floor(deadTime / 1000 / 60 / 60 / 24)
            this.setData({deadline: deadline})
        }
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        this.getUserInfo()
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        this.getUserInfo()
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

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

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },
    go2Index(){
        wx.navigateTo({
            url: '/pages/index/index'
          })
          Toast({
            context: this,
            selector: '#t-toast',
            message: '退出成功！',
          });
    }
    ,
    ljXzjl(){
    },
    closeLogout(){
        this.setData({openLogout: !this.data.openLogout})
    },
    logout() {
        req.deleteRequest('/api/user/logout',{}).then((res)=>{
            if(res.data.code === 200){
                wx.setStorageSync('token', '')
                wx.redirectTo({
                    url: '/pages/index/index'
                })
            }
        })
    }
})