mobile.js 2.64 KB

/**
 * 找回密码-手机
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/8
 */
let $ = require('yoho-jquery');

let $phoneNum = $('#phone-num'),
    $countrySelect = $('#country-select'),
    $areaCode = $('#area-code'),
    $verifyCode = $('#verify-code'),
    $verifyCodeImg = $('#verify-code-img'),
    $btnNext = $('#btn-next');

let api = require('../api');
let tip = require('plugin/tip');

let trim = $.trim;
let showErrTip = tip.show;

// 图片验证码
let Validate = require('plugin/validata');

let validate = new Validate('#js-img-check', {
    useREM: {
        rootFontSize: 40,
        picWidth: 150
    }
});

validate.init();

api.selectCssHack($('#country-select'));

api.bindClearEvt();

$phoneNum.bind('input', function() {
    if (trim($phoneNum.val()) === '') {
        $btnNext.addClass('disable');
    } else {
        $btnNext.removeClass('disable');
    }
});

$countrySelect.change(function() {
    $areaCode.text($countrySelect.val());
});

$verifyCodeImg.on('touchstart', function() {
    let oldSrc = $verifyCodeImg.attr('src').split('=');

    $verifyCodeImg.attr('src', oldSrc[0] + '=' + Date.now());
    $verifyCode.val('');
});

$btnNext.on('touchstart', function() {
    let pn = trim($phoneNum.val()),
        area = trim($countrySelect.val());

    if ($btnNext.hasClass('disable')) {
        return;
    }


    if (area && pn && api.phoneRegx[area].test(pn)) {
        validate.getResults().then((result) => {
            let params = {
                areaCode: area.replace('+', ''),
                phoneNum: pn
            };

            $.extend(params, result);
            $.ajax({
                url: '/passport/back/sendcode',
                type: 'POST',
                data: params,
                success: function(data) {
                    validate.type === 2 && validate.refresh();
                    if (data.code === 200 && data.data) {
                        location.href = data.data.href;
                        return;
                    } else if (data.code === 409) {
                        showErrTip(data.message);
                        location.href = data.refer;
                    } else {
                        showErrTip(data.message);
                    }
                    (data.changeCaptcha && validate.type !== 2) && validate.refresh();
                },
                error: function() {
                    showErrTip('出错了,请重试');
                    validate.refresh();
                }
            });
        });
    } else if (!area) {
        showErrTip('出错了,请重新刷新页面');
    } else {
        showErrTip('手机号格式不正确,请重新输入');
    }
});