register-controller.js 10.6 KB
/**
 * 注册-首页
 */
define(
    "user/register-controller",
    [
        'mk7/controller',
        'mk7/url',
        'mk7/utils',
        'mk7/uploadjs',
    ],

    function(ctrl, url, utils, uploadjs) {

        var $$ = Dom7;
        var t7 = Template7;
        var ctrl = new ctrl();

        var registerUrl = '/user/login/register';
        var uploadURL = '/user/default/upload-file';
        var getCodeURL = '/user/login/get-code';
        var loginURL = '/user/login/do-login';
        var clickGetCode = true;
        var registerClick = true;
        var tt = null
        var hasCheckAgreement = false;
        ctrl.run = function () {
            var me = this;
            me.setPageTitle("注册");
            //me.hideAllNonBaseMenuItem(window.$site);
            me.codeDuration = 60;
            if (!isGuest) {
                //window.location.href = url.to('order/#index');
                //return '';
            }
            me.render();
        }
        ctrl.bindEvents = function () {
            var me = this;
            console.log("bindEvents");
            me.uploadEvent();
            me.getCodeEvent();
            me.registerEvent();
            me.gotoLoginEvent();
            me.checkAgreement();
        }
        ctrl.uploadEvent = function() {
            $$('#register .upload-input-cls').change(function(e) {
                if ('' == $$(this).val() || null == $$(this).val()) {
                    return ;
                }
                var target = e.target;
                var fileObject = target.files[0];

                var id = $$(this).attr('id');
                var parent = $$(this).parent();
                uploadjs.uploadFile({
                    selector:'#'+id,
                    url:url.to(uploadURL),
                    processAppendTo:'#register',
                    success:function(response, e) {
                        try {
                            if(response.success) {
                                var imgUrl = response.tmpUrl;
                                parent.css("background-image", 'url('+response.tmpMinUrl+')');
                                parent.attr('data', response.tmpFile);
                                parent.attr('data-url', imgUrl);

                            } else {
                                utils.toast({content:response.message, closeDelay:5000});
                            }
                        } catch(ex) {

                            utils.toast({content:'出错', closeDelay:5000});
                        }
                    }
                });
            })
        }
        ctrl.getCodeEvent = function() {
            var me = this;
            $$('#register .get-code-cls').click(function() {
                var mobile = utils.trim($$('#register .mobile').val());
                if ('' == mobile) {
                    utils.toast({content:'手机号码必填'})
                    return false;
                }
                if (!utils.isMobile(mobile)) {
                    utils.toast({content:'手机号码不合格'})
                    return false;
                }
                if (false == clickGetCode) {
                    return false;
                }
                clearInterval(tt);
                clickGetCode = false;

                var pData = me.csrf({action:'register', mobile:mobile})
                utils.httpGet(url.to(getCodeURL), pData, function(res) {
                    if (!res.success) {
                        utils.toast({content:res.message,closeDelay:3000})
                        clickGetCode = true;
                        return false;
                    }
                    utils.toast({content:res.message});
                    if(res.testCode) {
                        $$('#register .code').val(res.testCode);
                    }
                    var codeDuration = res.codeDuration
                    me.codeDuration = codeDuration;
                    tt = setInterval(function(e) {
                        me.codeDuration--;
                        if (0 == me.codeDuration) {
                            $$('#register .get-code-cls').html('获取验证码');
                            clearInterval(tt);
                            me.codeDuration = codeDuration;
                            clickGetCode = true;
                        } else {
                            $$('#register .get-code-cls').html('<span class="count-down-cls">' +me.codeDuration+'s后重新获取</span>');
                        }
                    }, 1000)
                })
            })
        }
        ctrl.registerEvent = function() {
            var me = this;
            $$('#register .register-btn').click(function(e) {
                var name = utils.trim($$('#register .name').val());
                var mobile = utils.trim($$('#register .mobile').val());
                var code = utils.trim($$('#register .code').val());
                var emergencyContact = utils.trim($$('#register .emergency_contact').val());
                var emergencyPerson = utils.trim($$('#register .emergency_person').val());
                var address = utils.trim($$('#register .address').val());

                if ('' == name) {
                    utils.toast({content:'车厂名称必填'})
                    return false;
                }
                if ('' == mobile) {
                    utils.toast({content:'手机号码必填'})
                    return false;
                }
                if (!utils.isMobile(mobile)) {
                    utils.toast({content:'手机号码不合格'})
                    return false;
                }
                if ('' == code) {
                    utils.toast({content:'验证码必填'})
                    return false;
                }

                if ('' == emergencyPerson) {
                    utils.toast({content:'紧急联系人必填'})
                    return false;
                }

                if ('' == emergencyContact) {
                    utils.toast({content:'紧急联系电话必填'})
                    return false;
                }

                if (!utils.isMobile(emergencyContact) && !utils.isTelephone(emergencyContact)) {
                    utils.toast({content:'紧急联系电话不合格'})
                    return false;
                }
                if (emergencyContact == mobile) {
                    utils.toast({content:'紧急联系电话不能和注册手机一样'})
                    return false;
                }

                if ('' == address) {
                    utils.toast({content:'维修厂地址必填'})
                    return false;
                }

                var licensePic = $$('#register .licensePic').attr('data');
                if (undefined === licensePic || null == licensePic) {
                    utils.toast({content:'请上传营业执照'})
                    return false;
                }
                var headPic = $$('#register .headPic').attr('data');
                if (undefined === headPic || null == headPic) {
                    utils.toast({content:'请上传维修厂门头照'})
                    return false;
                }
                var techChargePic = $$('#register .techChargePic').attr('data');
                if (undefined === techChargePic || null == techChargePic) {
                    utils.toast({content:'请上传维修技术负责人证书'})
                    return false;
                }
                var QAChargePic = $$('#register .QAChargePic').attr('data');
                if (undefined === QAChargePic || null == QAChargePic) {
                    utils.toast({content:'请上传质检负责人证书'})
                    return false;
                }

                if (!$$('#register .check-agreement').hasClass('checked-active')) {
                    utils.toast({content:'请阅读同意《平台车管家服务条款》'})
                    return false;
                }

                if (false == registerClick) {
                    return false;
                }
                registerClick = false;
                var pData = me.csrf({
                    name:name, mobile:mobile,code:code,
                    emergencyContact:emergencyContact,emergencyPerson:emergencyPerson,
                    address:address,
                    licensePic:licensePic,
                    headPic:headPic,
                    techChargePic:techChargePic,
                    QAChargePic:QAChargePic,
                })

                utils.httpPost(url.to(registerUrl),pData, function(res) {
                    if (!res.success) {
                        utils.toast({content:res.message,closeDelay:3000})
                        registerClick = true;
                        return false;
                    } else {
                        var closeDelay = 3000;
                        utils.toast({content:res.message, closeDelay:closeDelay})
                        setTimeout(function(){
                            window.location.href = url.to('order/#index');
                        }, closeDelay)

                    }
                })
            })
        }
        ctrl.gotoLoginEvent = function() {
            $$('#register .login-btn').click(function(e){
                window.location.href = url.to('user/#login');
            })
        }
        ctrl.checkAgreement = function() {
            var me = this;
            $$('#register .check-agreement').click(function(e) {
                if (false == hasCheckAgreement) {
                    me.showAgreement();
                    return false;
                }
                if($$(this).hasClass('checked-active')) {
                    $$(this).removeClass('checked-active');
                } else {
                    $$(this).addClass('checked-active');
                }
            })

            $$('#register .agreement-cls').click(function(e){
                me.showAgreement();
            })

            $$('#register').on('click','.agree-btn', function(e){
                $$('#agreement-wrapper').remove();
                hasCheckAgreement = true;
                var checkAgreement = $$('#register .check-agreement');
                if(!checkAgreement.hasClass('checked-active')) {
                    checkAgreement.addClass('checked-active');
                }

            })
        }
        ctrl.showAgreement = function() {
            $$('#agreement-wrapper').remove();
            var page = $$('#register');
            var ele = $$('script#agreement-template');
            var compiled = t7.compile(ele.html());
            var doms = compiled({});
            page.append(doms);
        }
        return ctrl;
    }
);