代码【注册】

; /*!/client/widget/login/login-form/login-form.js*/
define("passport:widget/login/login-form/login-form.js", function (require, exports, module) {
    "use strict";

    function _classCallCheck(instance, Constructor) {
        if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function")
    }
    var $ = require("common:widget/lib/jquery/jquery"),
        handlebars = (require("common:widget/ui/utils/utils"), require("common:widget/lib/handlebars/handlebars")),
        MailSuggest = require("common:widget/ui/mailSuggest/mailSuggest"),
        glpbUtils = require("common:node_modules/glpb-components-common/src/index"),
        glpbCommon = require("common:node_modules/glpb-components-common/src/ValidateProvider/RRDValidator"),
        service = require("common:widget/ui/service/service-factory"),
        passportService = service.getService("passport"),
        LoginForm = function () {
            function LoginForm() {
                _classCallCheck(this, LoginForm);
                var source = $("#email-suggest-template").html();
                this.template = handlebars.compile(source), this.$suggest = $('<div class="suggest" id="suggest" ></div>').appendTo($("body")), this.$pass = $("#J_pass_input"), this.suggest = new MailSuggest, this.$input = $("#j_username"), this.error = "账号密码不能为空";
                var he = $(".login-ul").height();
                this.validateCode = 195 == he ? !1 : !0
            }
            return LoginForm.prototype.init = function () {
                var _this = this,
                    that = this;
                this.suggestPostion(this.$suggest), $(".j-checkbox").on("click", function (e) {
                    _this.checked(e)
                }), $("input[type=submit]").click(function () {
                    _this.submitHandler()
                }), $("#randImage").click(function () {
                    _this.changeRandCode()
                }), $("#randCode").keyup(function () {
                    _this.validateRandCode()
                }), $("#j_username").on("keyup", function (e) {
                    _this.emailKeyUp(e)
                }).on("keydown", function (e) {
                    13 == e.keyCode && e.preventDefault()
                }).on("focusout", function () {
                    setTimeout(function () {
                        that.$suggest.hide()
                    }, 500)
                }), this.$suggest.on("mouseenter", "li", function () {
                    $(this).addClass("cur")
                }).on("mouseleave", "li", function () {
                    $(this).removeClass("cur").siblings().removeClass("cur")
                }).on("click", "li", function () {
                    that.keyDownUp($("#j_username"), "enter"), that.$pass.trigger("focus")
                }), $("#J_pass_input").on("keyup", function (e) {
                    _this.keyUpEnter(e)
                }), $("#randCode").on("keyup", function (e) {
                    _this.keyUpEnter(e)
                })
            }, LoginForm.prototype.keyUpEnter = function (e) {
                var that = e.target;
                $(that).parent().removeClass("orange");
                var keyCode = e.keyCode;
                13 == keyCode && this.submitHandler()
            }, LoginForm.prototype.checked = function (e) {
                var that = e.currentTarget;
                $(that).hasClass("j-checked") ? ($(that).removeClass("j-checked"), $(that).find("input").prop("checked", !1)) : ($(that).addClass("j-checked"), $(that).find("input").prop("checked", !0))
            }, LoginForm.prototype.buttonLoading = function (num) {
                1 == num ? ($(".submit .login-btn").val(""), $(".submit img").show()) : ($(".submit .login-btn").val("立即登录"), $(".submit img").hide())
            }, LoginForm.prototype.submitHandler = function () {
                var _this2 = this;
                if (this.buttonLoading(1), this.validate()) return void this.buttonLoading(2);
                if (!this.validateCode) return this.error = "验证码错误", this.errorModal(2), void this.buttonLoading(2);
                var rememberme = $("#rememberme").is(":checked") ? "on" : "";
                if ("on" != rememberme) return this.error = "请同意我们的服务协议", this.errorModal(-1), void this.buttonLoading(2);
                var that = this,
                    password = glpbUtils.rsaCrypt($("#J_pass_input").val()),
                    formData = {
                        j_username: $("#j_username").val(),
                        j_password: password,
                        j_code: $("#randCode").val(),
                        rememberme: "on",
                        targetUrl: $("#targetUrl").val(),
                        returnUrl: $("#returnUrl").val()
                    };
                passportService.doLogin(formData).then(function (res) {
                    if (res.requestStatus === passportService.STATUS.ERROR) return _this2.buttonLoading(2), !0;
                    var data = res.data;
                    if (0 == data.status) location.href = data.data.jumpURL;
                    else {
                        data.data.isShowCaptcha ? ($(".input-hide").removeClass("input-hide"), $(".login-ul").animate({
                            height: "195px"
                        }), that.changeRandCode()) : ($(".validate-image").addClass("input-hide"), $(".login-ul").animate({
                            height: "130px"
                        }));
                        var num = "",
                            _status = data.status;
                        "80016" == _status && (num = 1), "80003" == _status && (num = 0), "950001" == _status && (num = 2), that.error = data.message, that.errorModal(num), _this2.buttonLoading(2)
                    }
                })
            }, LoginForm.prototype.validateRandCode = function () {
                var params = {
                        j_code: $("#randCode").val()
                    },
                    that = this;
                passportService.captchaValidate(params).then(function (res) {
                    if (res.requestStatus === passportService.STATUS.ERROR) return !0;
                    var status = res.data.status;
                    that.validateCode = 0 == status ? !0 : !1
                })
            }, LoginForm.prototype.changeRandCode = function () {
                var time = (new Date).getTime();
                $("#randImage").attr("src", "/passport/index/captcha?time=" + time)
            }, LoginForm.prototype.validate = function () {
                var vali = glpbCommon.validate,
                    userName = $("#j_username").val(),
                    password = $("#J_pass_input").val();
                if (!userName) return this.error = "手机号和邮箱不能为空", this.errorModal(0), !0;
                var isEmail = vali.isEmail(userName),
                    isMobile = vali.isMobile(userName);
                return isEmail || isMobile ? password ? void 0 : (this.error = "密码不能为空", this.errorModal(1), !0) : (this.error = "请输入正确的邮箱地址或手机号码", this.errorModal(0), !0)
            }, LoginForm.prototype.errorModal = function (num) {
                $(".login-error").text(this.error), $(".login-error").fadeIn(2e3, function () {
                    setTimeout(function () {
                        $(".login-error").fadeOut(2e3)
                    }, 2e3)
                }), num >= 0 && $(".login-ul li").eq(num).addClass("orange").siblings("li").removeClass("orange")
            }, LoginForm.prototype.suggestPostion = function (obj) {
                var $input = $("#j_username"),
                    res = {};
                res.left = $input.offset().left, res.top = $input.offset().top + $input.innerHeight(), obj.css({
                    left: res.left,
                    top: res.top,
                    absolute: "position"
                })
            }, LoginForm.prototype.keyDownUp = function (obj, type) {
                var $cur = this.$suggest.find(".cur"),
                    index = $cur.index(),
                    len = this.$suggest.find("li").length;
                "down" == type ? (index++, index > len - 1 && (index = 0), this.$suggest.find("li").removeClass("cur").eq(index).addClass("cur")) : "up" == type ? (index--, 0 > index && (index = len - 1), this.$suggest.find("li").removeClass("cur").eq(index).addClass("cur")) : "enter" == type && ($("#j_username").val($cur.text()).blur(), this.$suggest.hide(), this.$pass.trigger("focus"))
            }, LoginForm.prototype.emailKeyUp = function (e) {
                $("#j_username").parent("li").removeClass("orange"), this.suggestPostion(this.$suggest);
                var email = $("#j_username").val();
                switch (e.keyCode) {
                case 38:
                    this.keyDownUp($(this), "up");
                    break;
                case 40:
                    this.keyDownUp($(this), "down");
                    break;
                case 13:
                    this.keyDownUp($(this), "enter");
                    break;
                default:
                    if (!email.length) return void this.$suggest.hide();
                    var result = this.suggest.run(email);
                    /^\d{1,}$/g.test(email) && (result.remove = !0);
                    var html = this.template(result);
                    this.$suggest.html(html).show().find("li").eq(0).addClass("cur")
                }
            }, LoginForm
        }();
    module.exports = new LoginForm
});; /*!/client/widget/login/register-form/register-form.js*/
define("passport:widget/login/register-form/register-form.js", function (require, exports, module) {
    "use strict";

    function _classCallCheck(instance, Constructor) {
        if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function")
    }
    var $ = require("common:widget/lib/jquery/jquery"),
        utils = require("common:widget/ui/utils/utils"),
        glpbUtils = require("common:node_modules/glpb-components-common/src/index"),
        glpbCommon = require("common:node_modules/glpb-components-common/src/ValidateProvider/RRDValidator"),
        service = require("common:widget/ui/service/service-factory"),
        passportService = (service.getService("home"), service.getService("passport")),
        statistic = require("common:widget/ui/statistic/statistic"),
        utm = (require("common:widget/lib/gt/gt"), utils.utmsourceUtil),
        RegForm = function () {
            function RegForm() {
                _classCallCheck(this, RegForm), this.error = "不能为空", this.seconds = 60, this.sendTimes = 0, this.randCode = !1
            }
            return RegForm.prototype.init = function (geetestData, isGeetest) {
                this.setInputVal();
                var that = this;
                isGeetest ? this.initGt(geetestData) : $(".verification").on("click", function () {
                    that.sendVerification()
                }), $(".reg-btn").on("click", function () {
                    that.sendReg()
                }), $(".reg-ul li input").keyup(function (e) {
                    that.hideOrangeLine(e)
                }), $(".rand-code").on("click", function () {
                    that.rankCodeReload()
                }), this.initPvUv()
            }, RegForm.prototype.initPvUv = function () {
                var query = window.location.pathname,
                    arr = query.split("/");
                arr.reverse();
                var login = arr[0],
                    eventId = "PC_enter_login";
                "register" == login && (eventId = "PC_enter_register"), statistic.eventRaw({
                    eventId: eventId
                })
            }, RegForm.prototype.hideOrangeLine = function (e) {
                var that = e.target;
                $(that).parent("li").removeClass("orange")
            }, RegForm.prototype.sendReg = function () {
                var that = this;
                if (!(that.validateMoblie() || that.validateCode() || that.validatePassword() || that.validateMobileCode())) {
                    that.buttonLoading(1);
                    var password = glpbUtils.rsaCrypt($("#reg_password").val()),
                        formData = {
                            username: $("#reg_username").val(),
                            password: password,
                            mobileCode: $("#reg_verif").val(),
                            intention: $("#intention").val(),
                            type: $("#regRandCode").val(),
                            id: $("#regId").val(),
                            inviteCode: $("#regInviteCode").val(),
                            registerSource: $("#regRegisterSource").val(),
                            utmSource: $("#regPromotion").val(),
                            agree: "on",
                            platform: "PC",
                            channel: "false" == window.tplConf._isWeCom ? "RRD" : "WE"
                        },
                        utmSourceInUrl = utm.getUtmSourceBySearch();
                    utmSourceInUrl && (formData.utmSource = utmSourceInUrl);
                    var utmCookieParams = utm.getAllUtmCookies(),
                        urlSearchParams = utils.getSearchConf(),
                        finalPostData = $.extend({}, utmCookieParams, urlSearchParams, formData);
                    delete finalPostData.utm_source, passportService.doRegister(finalPostData).then(function (res) {
                        if (res.requestStatus !== passportService.STATUS.SUCCESS) {
                            var msg = res.data.message || "请求后端服务出错, 请稍后再试";
                            return that.zhugeFail(msg), Promise.reject(new Error(msg))
                        }! function () {
                            var out = res.data;
                            0 === out.status ? statistic.eventRaw({
                                eventId: "pc_reg_success",
                                extra: {
                                    url: location.href
                                },
                                callback: function () {
                                    location.href = out.data.jumpURL
                                }
                            }) : 3310 === out.status ? (that.zhugeFail(out.message), that.error = out.message, that.errorModal(2), that.rankCodeReload(), that.buttonLoading(2)) : 3320 === out.status ? (that.zhugeFail(out.message), that.error = out.message, that.errorModal(0), that.rankCodeReload(), that.buttonLoading(2)) : 3330 === out.status ? (that.zhugeFail(out.message), that.error = out.message, that.errorModal(3), that.rankCodeReload(), that.buttonLoading(2)) : (that.zhugeFail(out.message), that.error = out.message, that.errorModal(-1), that.rankCodeReload(), that.buttonLoading(2))
                        }()
                    }).caught(function (event) {
                        that.zhugeFail(event.message), that.error = event.message, that.errorModal(-1), that.rankCodeReload(), that.buttonLoading(2)
                    })
                }
            }, RegForm.prototype.zhugeFail = function (mess) {
                statistic.event({
                    eventId: "pc_reg_failed",
                    extra: {
                        "失败原因": mess
                    }
                })
            }, RegForm.prototype.buttonLoading = function (num) {
                1 == num ? ($(".reg-submit .reg-btn").val(""), $(".reg-submit img").show()) : ($(".reg-submit .reg-btn").val("注册领红包"), $(".reg-submit img").hide())
            }, RegForm.prototype.setInputVal = function () {
                var urlSearchParams = utils.getSearchConf(),
                    promotion = urlSearchParams.utm_source || urlSearchParams.utmSource || null,
                    utm = utils.utmsourceUtil;
                null == promotion && (promotion = utm.getCookie("promotion") || utm.getCookie("utmSource")), null != promotion && promotion.match("[-a-zA-Z0-9?=_/]{1,32}") ? utm.setCookie("promotion_source", promotion, 365) : promotion = utm.getCookie("promotion_source");
                var id = utm.getId(),
                    inviteCode = utm.getInviteCode(),
                    getRegisterSource = utm.getRegisterSource();
                $("#regRegisterSource").val(getRegisterSource), $("#regId").val(id), $("#regPromotion").val(promotion), $("#regInviteCode").val(inviteCode), $("#intention").val("LENDER")
            }, RegForm.prototype.validateMoblie = function () {
                var vali = glpbCommon.validate,
                    userName = $("#reg_username").val();
                if (!userName) return this.error = "手机号不能为空", this.errorModal(0), !0;
                var isMobile = vali.isMobile(userName);
                return isMobile ? void 0 : (this.error = "请输入正确的手机号码", this.errorModal(0), !0)
            }, RegForm.prototype.validateMobileCode = function () {
                var agree = $(".reg-agree .j-checkbox").hasClass("j-checked");
                return agree ? void 0 : (this.error = "请同意我们的服务协议", this.errorModal(-1), !0)
            }, RegForm.prototype.validateCode = function () {
                var randCode = $("#reg_verif").val();
                return randCode ? 4 != randCode.length ? (this.error = "手机验证码必须是4位数", this.errorModal(2), !0) : void 0 : (this.error = "手机验证码不能为空", this.errorModal(2), !0)
            }, RegForm.prototype.rankCodeReload = function () {
                var time = (new Date).getTime();
                $("#reg-rand-image").attr("src", "/passport/index/captcha?time=" + time), this.randCode = !1
            }, RegForm.prototype.setIntervalFun = function () {
                var time = 60,
                    dom = $(".verification");
                dom.addClass("is_send").text("重新发送(" + time + ")"), dom.removeClass("is_validate");
                var timer = setInterval(function () {
                    time--, 0 >= time ? (dom.text("重新发送").removeClass("is_send"), dom.addClass("is_validate"), clearInterval(timer)) : dom.text("重新发送(" + time + ")")
                }, 1e3)
            }, RegForm.prototype.sendGeetestVerification = function (verifData) {
                var that = this;
                $(".verification").hasClass("is_send") || that.validateMoblie() || (passportService.sendRegisterSms(verifData).then(function (res) {
                    var out = res.data;
                    if (res.requestStatus === passportService.STATUS.SUCCESS) {
                        if (0 == out.status) return that.setIntervalFun(), void that.sendTimes++;
                        that.error = out.message, that.errorModal(-1)
                    }
                }).caught(function () {
                    that.error = "服务器异常,请稍后再试", that.errorModal(-1)
                }), statistic.eventRaw({
                    eventId: "PC_click_get_message"
                }))
            }, RegForm.prototype.sendVerification = function () {
                var that = this;
                if ($(".verification").hasClass("is_validate") && !that.validateMoblie()) {
                    var rand = $("#reg_RandCode").val(),
                        verifData = {
                            mobile: $("#reg_username").val()
                        };
                    verifData.channel = "RRD", "true" == window.tplConf._isWeCom && (verifData.channel = "WE"), rand && (verifData.imgCode = rand), passportService.sendRegisterSms(verifData).then(function (res) {
                        var out = res.data;
                        return res.requestStatus !== passportService.STATUS.SUCCESS ? Promise.reject(new Error("请稍候重试!")) : 0 == out.status ? (that.setIntervalFun(), void that.sendTimes++) : void("3230" == out.status ? ($(".rand_code_show").show(), that.error = out.message, that.errorModal(1)) : "3240" == out.status ? (that.rankCodeReload(), that.error = "验证码不正确", that.errorModal(1)) : (that.error = out.message, that.rankCodeReload(), that.errorModal(-1)))
                    }).caught(function () {
                        that.rankCodeReload(), that.error = "服务器异常,请稍后再试", that.errorModal(-1)
                    }), statistic.eventRaw({
                        eventId: "PC_click_get_message"
                    })
                }
            }, RegForm.prototype.validatePassword = function () {
                var password = $("#reg_password").val(),
                    passw = /^[a-zA-Z]{8,16}$|^[0-9]{8,16}$|^[~!@#$%^&*._]{8,16}$/.test(password),
                    pw = /^[0-9A-Za-z~!@#$%^&*._]{8,16}$/.test(password);
                return !pw || passw ? (this.error = "密码为8~16位数字、字母或符号组合", this.errorModal(3), !0) : void 0
            }, RegForm.prototype.validateRandCode = function () {
                var params = {
                        j_code: $("#randCode").val()
                    },
                    that = this;
                passportService.captchaValidate(params).then(function (res) {
                    if (res.requestStatus === passportService.STATUS.ERROR) return !0;
                    var status = res.data.status;
                    that.validateCode = 0 == status ? !0 : !1
                })
            }, RegForm.prototype.initGt = function (geetestData) {
                initGeetest({
                    gt: geetestData.gt,
                    challenge: geetestData.challenge,
                    offline: !geetestData.success,
                    new_captcha: geetestData.new_captcha,
                    product: "bind",
                    width: "300px",
                    pure: 1
                }, this.handler.bind(this))
            }, RegForm.prototype.handler = function (captchaObj) {
                var that = this;
                captchaObj.onReady(function () {
                    $("#wait").hide()
                }), captchaObj.onNextReady(function () {
                    $(".loading-img").hide()
                }), captchaObj.onClose(function () {
                    $(".loading-img").hide()
                }), captchaObj.onError(function () {
                    $(".loading-img").hide(), captchaObj.reset()
                }), captchaObj.onSuccess(function () {
                    $(".loading-img").hide();
                    var result = captchaObj.getValidate();
                    if (!result) return that.error = "请完成验证", void that.errorModal(-1);
                    var channel = "true" == window.tplConf._isWeCom ? "WE" : "RRD",
                        verifData = {
                            channel: channel,
                            mobile: $("#reg_username").val(),
                            geetest_challenge: result.geetest_challenge,
                            geetest_validate: result.geetest_validate,
                            geetest_seccode: result.geetest_seccode
                        };
                    that.sendGeetestVerification(verifData)
                }), $(".verification").on("click", function () {
                    if (!that.validateMoblie()) {
                        var isValidate = $(".verification").hasClass("is_validate");
                        isValidate && ($(".loading-img").show(), captchaObj.verify())
                    }
                })
            }, RegForm.prototype.errorModal = function (num) {
                $(".reg-error").text(this.error), $(".reg-error").fadeIn(2e3, function () {
                    setTimeout(function () {
                        $(".reg-error").fadeOut(2e3)
                    }, 2e3)
                }), num >= 0 && $(".reg-ul li").eq(num).addClass("orange").siblings("li").removeClass("orange")
            }, RegForm
        }();
    module.exports = new RegForm
});

 

posted @ 2018-07-26 10:49  创业男生  阅读(408)  评论(0编辑  收藏  举报