login.js 4.31 KB
const util = new window.publicMethod() ;

new Vue({
    el: '#app',
    data: {
        platform: 'yx',

        loginForm: {
            employeeId: '',
            phoneNumber: '',
            verifyCode: ''
        },
        countdown: 0,
        countdownTimer: null,
        clickFlag: false
    },
    methods: {
        tabChang(type){
            this.platform = type
            localStorage.setItem('platform',type)

            // if(type == 'gw'){
            //     this.loginForm.employeeId = '54321'
            //     this.loginForm.phoneNumber = '15611154004'
            // }else if(type == 'yx'){
            //     this.loginForm.employeeId = '12345'
            //     this.loginForm.phoneNumber = '13718590607'
            // }else{
            //     this.loginForm.employeeId = '54321'
            //     this.loginForm.phoneNumber = '13212789513'
            // }
        },
        getVerifyCode() {
            let pa = this.loginForm
            
            if (!pa.employeeId) {
                util.toast('请输入工号');
                return;
            }

            if (!pa.phoneNumber) {
                util.toast('请输入手机号');
                return;
            }

            if (!/^1[3-9]\d{9}$/.test(pa.phoneNumber)) {
                util.toast('请输入正确的手机号');
                return;
            }

            if(this.clickFlag){
                return
            }
            this.clickFlag = true

            util.httpRequest({
                url: '/send-sms',
                data: {
                   personnelCode: pa.employeeId,
                   phone: pa.phoneNumber,
                },
            }).then(res=>{
                if(res.code == 200){
                    util.toast('验证码已发送,请注意查收')

                    // 开始倒计时
                    let __this = this
                    this.countdown = 60;
                    this.countdownTimer = setInterval(() => {
                        this.countdown--;
                        if (this.countdown <= 0) {
                            clearInterval(this.countdownTimer);
                            __this.clickFlag = false
                        }
                    }, 1000);
                }else{
                    this.clickFlag = false
                    util.toast(res.message || '获取失败')
                }
            }).catch(()=>{
                this.clickFlag = false
            })
        },

        login() {
            let pa = this.loginForm

            // 验证表单
            if (!pa.employeeId) {
                util.toast('请输入工号');
                return;
            }

            if (!pa.phoneNumber) {
                util.toast('请输入手机号');
                return;
            }

            // 验证手机号格式
            if (!/^1[3-9]\d{9}$/.test(pa.phoneNumber)) {
                util.toast('请输入正确的手机号');
                return;
            }

            if (!pa.verifyCode) {
                util.toast('请输入验证码');
                return;
            }

            // 验证验证码格式(假设6位数字)
            if (!/^\d{6}$/.test(pa.verifyCode)) {
                util.toast('请输入6位验证码');
                return;
            }

            util.httpRequest({
                url: '/phone-login',
                data: {
                   personnelCode: pa.employeeId,
                   phone: pa.phoneNumber,
                   smsCode: pa.verifyCode
                },
            }).then(res=>{
                if(res.code == 200){
                    localStorage.setItem('userInfo',JSON.stringify(res.data.personnel))
                    localStorage.setItem('tokenInfo',JSON.stringify(res.data.tokenInfo))

                    if(this.platform == 'gw'){
                        window.location.href = 'addBusi.html'
                    }else{
                        window.location.href = 'myBusi.html'
                    }
                }else{
                    util.toast(res.message || '登录失败')
                }
            })
        }
    },
    created(){
        localStorage.setItem('platform',this.platform)
    },
    beforeDestroy() {
        // 清除定时器
        if (this.countdownTimer) {
            clearInterval(this.countdownTimer);
        }
    }
});