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

new Vue({
    el: '#app',
    data: {
        loginForm: {
            employeeId: '',
            phoneNumber: '',
            verifyCode: ''
        },
        countdown: 0,
        countdownTimer: null,
        isLoggedIn: true
    },
    methods: {
        getVerifyCode() {
            let pa = this.loginForm

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

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

            // 开始倒计时
            this.countdown = 60;
            this.countdownTimer = setInterval(() => {
                this.countdown--;
                if (this.countdown <= 0) {
                    clearInterval(this.countdownTimer);
                }
            }, 1000);

            util.httpRequest({
                url: '/mobile/sendSms',
                middleUrl: '/zhijian-trial/api',
                data: {
                   campaignId: pa.employeeId,
                   phone: pa.phoneNumber,
                },
            }).then(res=>{
                if(res.code == 200){
                    util.toast('验证码已发送,请注意查收')
                }else{
                    util.toast(res.msg || '获取失败')
                }
            })
        },

        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: '/mobile/login',
                middleUrl: '/zhijian-trial/api',
                data: {
                   campaignId: pa.employeeId,
                   phone: pa.phoneNumber,
                   smsCode: pa.verifyCode
                },
            }).then(res=>{
                if(res.code == 200){
                    localStorage.setItem('appLoginInfo', JSON.stringify(res.data))
                    
                    window.location.href = 'list.html'
                }else{
                    util.toast(res.msg || '登录失败')
                }
            })
        }
    },
    created(){
        let info = localStorage.getItem('appLoginInfo')
        if(info){
            window.location.href = 'list.html'
        }else{
            this.isLoggedIn = false
        }
    },
    beforeDestroy() {
        // 清除定时器
        if (this.countdownTimer) {
            clearInterval(this.countdownTimer);
        }
    }
});