//注册页面 define(["knockout"], function(ko) { return function(context) { var me = this; var countdown; var flag = false; me.validateCode = ko.observable(""); me.validateCodeSrc = ko.observable(""); me.password = ko.observable(""); me.confirm = ko.observable(""); me.phone = ko.observable(""); me.verificationcode = ko.observable(""); me.downPassWord = function() { $("#showDownPassWord").addClass("firstdown"); }; me.downConfirm = function() { $("#showDownConfirm").addClass("firstdown"); }; me.downPhone = function() { $("#showDownPhone").addClass("firstdown"); }; me.vaildPassWordFlag = ko.observable(false); me.vaildPassWord = function(data) { var psw = me.password(); var reg = /(^\s+)|(\s+$)/g; //校验是否有空格 if ( reg.test(psw) || util.isVal(psw) == "" || util.isVal(psw).length < 6 || util .isVal(psw) .search(/^(([a-zA-Z]+[0-9]+)|([0-9]+[a-zA-Z]+))[a-zA-Z0-9]*$/i) == -1 || util.isVal(psw).length > 12 ) { $("#vaildPassWord").html( '密码由6-12位数字和字母同时组成' ); me.vaildPassWordFlag = ko.observable(false); } else { $("#vaildPassWord").html( '密码可用!' ); me.vaildPassWordFlag = ko.observable(true); } }; me.vaildConfirmFlag = ko.observable(false); me.vaildConfirm = function(data) { if (util.isVal(me.confirm()) == "" || me.password() != me.confirm()) { $("#vaildConfirm").html( '两次输入的密码不一致!' ); me.vaildConfirmFlag = ko.observable(false); } else { $("#vaildConfirm").html( '两次输入的密码一致!' ); me.vaildConfirmFlag = ko.observable(true); } }; me.vaildPhoneFlag = ko.observable(false); me.vaildPhone = function(data) { if (!util.isMobile(me.phone())) { $("#vaildPhone").html( '手机号码不可用!' ); me.vaildPhoneFlag = ko.observable(false); } else { $("#vaildPhone").html('格式正确!'); me.vaildPhoneFlag = ko.observable(true); } }; me.getValidateCode = function(val) { if (!util.isMobile(me.phone())) { $("#vaildPhone").html( '手机号码不可用!' ); return false; } else { if (!flag) { util.sendAjax({ url: "open/sendVerificationCode/two", data: { mobile: me.phone(), validateCode: me.validateCode() }, async: true, loadFlag: true, type: "GET", cache: false, success: function(json) { if (json.rc == 0) { countdown = 60; settime(); } else { layer.msg( "获取验证码失败:" + json.rc + "错误信息:" + json.msg ); } } }); } } }; //校验验证码 me.downCode = function() { // $("#showCode").removeClass("lastdown"); }; me.validateCodeFlag = ko.observable(false); me.validateCodeFun = function(data) { $("#showCode").addClass("lastdown"); if (util.isVal(me.validateCode()) == "") { $("#").html( '
验证码不能为空
' ); me.validateCodeFlag(false); } else { var sendData = {}; sendData["validateCode"] = me.validateCode(); util.sendAjax({ url: "open/checkValidateCode", data: JSON.stringify(sendData), async: false, loadFlag: true, type: "POST", cache: false, success: function(json) { if (json.rc == 0) { me.validateCodeFlag(true); $("#verificationCode").show(); $("#testCode").html( '' ); } else { var msg = json.msg; me.validateCodeFlag(false); $("#verificationCode").hide(); $("#testCode").html( '
' + msg + "
" ); } } }); //me.validateCodeFlag(true); } }; //刷新验证码 me.rechangeVilidate = function() { $("#validateCode").attr( "src", "/oa-web/api/v1/open/validateCodeNew?_=" + new Date().getTime() ); $("#validateCodeDiv").html("请输入验证码
"); $("#testCode").html(''); me.validateCodeFlag(false); }; me.getTime = function() { var time = 60; util.sendAjax({ url: "open/getCacheTime", data: { mobile: me.phone() }, async: false, loadFlag: true, type: "GET", cache: false, success: function(json) { if (json.rc == 0) { time = json.data.time; if (0 < time < 60) { countdown = time; settime(); } else { countdown = 60; } } else { layer.msg("验证失败:" + json.rc + "错误信息:" + json.msg); } } }); }; function settime() { if (countdown == 0) { $("#verificationCode").removeClass(); $("#verificationCode").addClass("btn"); $("#verificationCode").attr("disabled", false); $("#verificationCode").val("重新发送验证码"); $("#phone").attr("disabled", false); flag = false; } else { $("#phone").attr("disabled", "disabled"); $("#verificationCode").attr("disabled", "disabled"); $("#verificationCode").addClass("time"); $("#verificationCode").val(countdown); flag = true; countdown--; setTimeout(function() { settime(); }, 1000); } } me.next = function() { me.vaildPassWord(); me.vaildConfirm(); me.vaildPhone(); if ( me.vaildPassWordFlag() && me.vaildConfirmFlag() && me.vaildPhoneFlag() ) { if (util.isVal(me.verificationcode()) == "") { layer.msg("请填写验证码"); } else { var sendData = {}; sendData["mobile"] = me.phone(); sendData["key"] = me.verificationcode(); sendData["password"] = me.password(); util.sendAjax({ url: "open/smsValidate", data: JSON.stringify(sendData), async: true, loadFlag: true, type: "POST", cache: false, success: function(json) { if (json.rc == 0) { //window.location.href="#/login/memberdata"; const memberCode = util.GetQueryValue("memberCode"); if (memberCode) { window.location.href = `#/login/memberdatabreed?memberCode=${memberCode}`; } else { window.location.href = "#/login/memberdatabreed"; } } else { layer.msg("验证码验证失败:" + json.rc + "错误信息:" + json.msg); } } }); } } }; $(function() { me.getTime(); me.validateCodeSrc( "/oa-web/api/v1/open/validateCodeNew?_=" + new Date().getTime() ); }); context.app.loading(false); }; //发送验证码时添加cookie function addCookie(name, value, expiresHours) { var cookieString = name + "=" + escape(value); //判断是否设置过期时间,0代表关闭浏览器时失效 if (expiresHours > 0) { var date = new Date(); date.setTime(date.getTime() + expiresHours * 1000); cookieString = cookieString + ";expires=" + date.toUTCString(); } document.cookie = cookieString; } //根据名字获取cookie的值 function getCookieValue(name) { var strCookie = document.cookie; var arrCookie = strCookie.split("; "); for (var i = 0; i < arrCookie.length; i++) { var arr = arrCookie[i].split("="); if (arr[0] == name) { return unescape(arr[1]); break; } else { return ""; break; } } } //修改cookie的值 function editCookie(name, value, expiresHours) { var cookieString = name + "=" + escape(value); if (expiresHours > 0) { var date = new Date(); date.setTime(date.getTime() + expiresHours * 1000); //单位是毫秒 cookieString = cookieString + ";expires=" + date.toGMTString(); } document.cookie = cookieString; } });