|
@@ -57,20 +57,73 @@
|
|
</section>
|
|
</section>
|
|
|
|
|
|
<div class="modal fade bidLogin" id="bidLogin" tabindex="-1" role="dialog" aria-labelledby="bidLogin" aria-hidden="true" >
|
|
<div class="modal fade bidLogin" id="bidLogin" tabindex="-1" role="dialog" aria-labelledby="bidLogin" aria-hidden="true" >
|
|
- <div class="modal-dialog" style="width:400px;border:0px;" >
|
|
|
|
- <div class="j-wx-code">
|
|
|
|
- <img class="code-close" src="{{Msg "seo" "cdn"}}/images/j-wx-code-close.png" alt="" onclick="loginClose();"/>
|
|
|
|
- <div class="code-title"></div>
|
|
|
|
- <div class="code-wxm"><img id="layerImg-login" src="/front/share/10"/></div>
|
|
|
|
- <div class="code-text">
|
|
|
|
- <span><img id="wxpng" src="{{Msg "seo" "cdn"}}/images/wx1.png"/>微信扫码登录</span>
|
|
|
|
- <br/>
|
|
|
|
- <span id="freetext">新用户自动注册</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="code-bottom">
|
|
|
|
- <img src="{{Msg "seo" "cdn"}}/images/j-wx-cose-move.png" alt=""/>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="modal-dialog login-dig-box is-show" style="width:376px;">
|
|
|
|
+ <div class="login-dig-icon-close" onclick="closeLoginDig()"></div>
|
|
|
|
+ <img class="logo" src="/images/swordfish/sf_01_new.png" alt="logo" style="">
|
|
|
|
+ <div class="login-dig-top-back-box" style="display: none;" onclick="openLoginDigForWx(false)">
|
|
|
|
+ <i class="login-dig-icon-back"></i>
|
|
|
|
+ <span>验证码/密码登录</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-tabbar-navbar" style="">
|
|
|
|
+ <span name="code" class="is-active">验证码登录</span>
|
|
|
|
+ <span name="pass" class="">密码登录</span>
|
|
|
|
+ <div class="line-box"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-tabbar-content is-active" data-name="code" style="">
|
|
|
|
+ <div class="login-dig-input-box" data-error="手机号码输入错误">
|
|
|
|
+ <i class="login-dig-icon-phone"></i>
|
|
|
|
+ <input autocomplete="off" name="verify_phone" type="tel" placeholder="输入手机号码" maxlength="11">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-input-box" data-error="图形验证码输入错误">
|
|
|
|
+ <i class="login-dig-icon-guard"></i>
|
|
|
|
+ <input autocomplete="off" name="verify_code" type="text" placeholder="输入图形验证码" maxlength="8">
|
|
|
|
+ <div class="after-input-box">
|
|
|
|
+ <img data-name="verfiy-login" class="verify-img" src="/front/landpage/captcha" alt="verify">
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-input-box" data-error="短信验证码输入错误">
|
|
|
|
+ <i class="login-dig-icon-guard"></i>
|
|
|
|
+ <input autocomplete="off" name="verify_sms" type="text" placeholder="输入短信验证码" maxlength="8">
|
|
|
|
+ <div class="after-input-box">
|
|
|
|
+ <span data-name="verify_get_sms" class="l-get-sms is-stop">获取验证码</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <button class="login-dig-submit-button" name="verify_submit" disabled="true">登录 / 注册</button>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-tabbar-content" data-name="pass">
|
|
|
|
+ <div class="login-dig-input-box" data-error="手机号码输入错误">
|
|
|
|
+ <i class="login-dig-icon-phone"></i>
|
|
|
|
+ <input autocomplete="off" name="pass_phone" type="tel" placeholder="输入手机号码" maxlength="11">
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-input-box" data-error="密码输入错误">
|
|
|
|
+ <i class="login-dig-icon-pass"></i>
|
|
|
|
+ <input autocomplete="off" name="pass_pass" type="password" placeholder="输入密码">
|
|
|
|
+ </div>
|
|
|
|
+ <button class="login-dig-submit-button" name="pass_submit" disabled="true">登录</button>
|
|
|
|
+ <div class="right-box">
|
|
|
|
+ <a class="forget-pass-link" href="/phone/forgetPwd">忘记密码?</a>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-wx-qrcode-box" style="display: none;">
|
|
|
|
+ <img class="wx-qrcode" id="layerImg-login" src="/front/share/10"/>
|
|
|
|
+ <div class="wx-tip">
|
|
|
|
+ <div class="wx-logo"><i class="login-dig-icon-wx"></i></div>
|
|
|
|
+ <span>微信扫码登录</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="login-dig-footer-box">
|
|
|
|
+ <div class="login-dig-text-split" style="">
|
|
|
|
+ <i></i><span>使用微信扫码登录</span><i></i>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="wx-logo-box" onclick="openLoginDigForWx(true)" style="">
|
|
|
|
+ <div class="wx-logo"><i class="login-dig-icon-wx"></i></div>
|
|
|
|
+ </div>
|
|
|
|
+ <p>
|
|
|
|
+ 未注册用户验证后自动注册,注册即代表同意
|
|
|
|
+ <a href="/front/staticPage/permission_rules.html">《剑鱼标讯用户使用许可协议》</a>
|
|
|
|
+ <a href="/front/staticPage/privacy_rules.html">《剑鱼标讯隐私政策》</a>
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
<script type="text/javascript">
|
|
@@ -78,18 +131,15 @@
|
|
$(function(){
|
|
$(function(){
|
|
//
|
|
//
|
|
var href = window.location.pathname;
|
|
var href = window.location.pathname;
|
|
- $("#bidLogin").on("show.bs.modal", function () {
|
|
|
|
- $("#freetext").html("<span><em style='color: #252627;line-height: 26px;'> 新用户自动注册</em><br><span class='new-info'><a class='link' href='/front/staticPage/permission_rules.html'>《剑鱼标讯用户使用许可协议》</a><a class='link' href='/front/staticPage/privacy_rules.html'>《剑鱼标讯隐私政策》</a></span> </span>");
|
|
|
|
- if(href!="/"){
|
|
|
|
- //$(".public-nav").css({"padding-right":"17px"});
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ $("#bidLogin").on("show.bs.modal", function () {
|
|
|
|
+ $("#bidLogin .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
|
|
|
|
+ });
|
|
$("#bidLogin").on("hidden.bs.modal", function () {
|
|
$("#bidLogin").on("hidden.bs.modal", function () {
|
|
$(".public-nav").css({"padding-right":""});
|
|
$(".public-nav").css({"padding-right":""});
|
|
if($("#bidLogin").attr("data-rec")){
|
|
if($("#bidLogin").attr("data-rec")){
|
|
- $("#bidLogin").removeAttr("data-rec");
|
|
|
|
|
|
+ $("#bidLogin").removeAttr("data-rec");
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
$("#myModal").on("show.bs.modal", function () {
|
|
$("#myModal").on("show.bs.modal", function () {
|
|
//$(".public-nav").css({"padding-right":"17px"});
|
|
//$(".public-nav").css({"padding-right":"17px"});
|
|
})
|
|
})
|
|
@@ -230,4 +280,596 @@ function infoListCss(){
|
|
function loginClose(){
|
|
function loginClose(){
|
|
$("#bidLogin").modal("hide");
|
|
$("#bidLogin").modal("hide");
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+function openLoginDigForWx (type = true) {
|
|
|
|
+ var otherArr = ['.login-dig-box > .logo','.login-dig-footer-box .wx-logo-box', '.login-dig-footer-box .login-dig-text-split' ,'.login-dig-tabbar-navbar', '.login-dig-tabbar-content', '.login-dig-tabbar-content.is-active']
|
|
|
|
+ var wxArr = ['.login-dig-wx-qrcode-box', '.login-dig-top-back-box']
|
|
|
|
+
|
|
|
|
+ otherArr.forEach(function (v) {
|
|
|
|
+ document.querySelector(v).style.display = (type ? 'none' : null)
|
|
|
|
+ })
|
|
|
|
+ wxArr.forEach(function (v) {
|
|
|
|
+ document.querySelector(v).style.display = (type ? null : 'none')
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ajax部分匿名函数自执行,防止泄露全局变量
|
|
|
|
+$(function(){
|
|
|
|
+ var Direct = {
|
|
|
|
+ verify: {},
|
|
|
|
+ forge: {},
|
|
|
|
+ ajaxSms (e, type) {
|
|
|
|
+ var _this = this;
|
|
|
|
+ if (type === 'verify') {
|
|
|
|
+ $.post("/phone/login",{
|
|
|
|
+ reqType:"sendIdentCode",
|
|
|
|
+ phone:$("#bidLogin .login-dig-input-box [name='verify_phone']").val(),
|
|
|
|
+ code:$("#bidLogin .login-dig-input-box [name='verify_code']").val()
|
|
|
|
+ },function(r){
|
|
|
|
+ if(r.status==-1){
|
|
|
|
+ _this.verify.code.showError('手机号格式错误');
|
|
|
|
+ }else if(r.status==-2){//图形验证码错误
|
|
|
|
+ _this.verify.code.showError('图形验证码错误');
|
|
|
|
+ $("#bidLogin .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
|
|
|
|
+ }else{
|
|
|
|
+ sessionStorage.setItem('login-verify-start-time', new Date().getTime())
|
|
|
|
+ startTimeDown(type)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ $.post("/phone/forgetPwd",{
|
|
|
|
+ reqType:"sendIdentCode",
|
|
|
|
+ phone:$(".forgetpwd_page .login-dig-input-box [name='forge_phone']").val(),
|
|
|
|
+ code:$(".forgetpwd_page .login-dig-input-box [name='forge_code']").val()
|
|
|
|
+ },function(r){
|
|
|
|
+ if(r.status=="phoneError"){
|
|
|
|
+ _this.forge.code.showError('手机号格式错误');
|
|
|
|
+ }else if(r.status=="codeError"){
|
|
|
|
+ _this.forge.code.showError('图形验证码输入错误');
|
|
|
|
+ $(".forgetpwd_page .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
|
|
|
|
+ }else if(r.status=="phoneNotExists"){
|
|
|
|
+ _this.forge.phone.showError('手机号尚未注册');
|
|
|
|
+ $(".forgetpwd_page .verify-img").attr("src","/front/landpage/captcha?v="+new Date().getTime());
|
|
|
|
+ }else if(r.status=="y"){
|
|
|
|
+ sessionStorage.setItem('login-verify-start-time', new Date().getTime())
|
|
|
|
+ startTimeDown(type)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 忘记密码
|
|
|
|
+ ajaxStepOne (e, arr) {
|
|
|
|
+ $.post("/phone/forgetPwd",{reqType:"nextStep",identCode:arr[2].value},function(r){
|
|
|
|
+ e.setAttribute('data-loading', 'false');
|
|
|
|
+ if(r.status=="identCodeError"){
|
|
|
|
+ arr[2].showError('短信验证码错误');
|
|
|
|
+ }else if(r.status=="y"){
|
|
|
|
+ toggleStep(false);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ ajaxStepTwo (e, arr) {
|
|
|
|
+ $.post("/phone/forgetPwd",{reqType:"save",password:arr[1].value},function(r){
|
|
|
|
+ e.setAttribute('data-loading', 'false');
|
|
|
|
+ if(r.status=="passwordError"){
|
|
|
|
+ arr[0].showError('密码格式错误');
|
|
|
|
+ }else if(r.status=="passwordRepeat"){
|
|
|
|
+ arr[0].showError('新密码不能与之前设置过的密码重复');
|
|
|
|
+ }else{
|
|
|
|
+ var toast = document.querySelector('.login-dig-success-toast')
|
|
|
|
+ toast.classList.add('is-show')
|
|
|
|
+ setTimeout(function () {
|
|
|
|
+ toast.classList.remove('is-show')
|
|
|
|
+ }, 1500);
|
|
|
|
+ window.location.href="/";
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 验证码/密码登录
|
|
|
|
+ ajaxLoginPass (e, arr) {
|
|
|
|
+ $.post("/phone/login",{reqType:"phoneLogin",phone:arr[0].value,password: arr[1].value},function(r){
|
|
|
|
+ e.setAttribute('data-loading', 'false')
|
|
|
|
+ if(r.status==1){
|
|
|
|
+ logic(r.userInfo,mynum);
|
|
|
|
+ }else if(r.status==-1){
|
|
|
|
+ arr[0].showError('该手机号未注册')
|
|
|
|
+ }else if(r.status==-2){
|
|
|
|
+ arr[1].showError('密码输入错误')
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ ajaxLoginSms (e, arr) {
|
|
|
|
+ $.post("/phone/login",{reqType:"identCodeLogin",identCode:arr[2].value},function(r){
|
|
|
|
+ e.setAttribute('data-loading', 'false')
|
|
|
|
+ if(r.status==1){
|
|
|
|
+ logic(r.userInfo,mynum);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ function startTimeDown (type) {
|
|
|
|
+ var nowCount = 60
|
|
|
|
+ if (sessionStorage.getItem('login-verify-start-time')) {
|
|
|
|
+ var cCount = parseInt((new Date().getTime() - sessionStorage.getItem('login-verify-start-time')) / 1000)
|
|
|
|
+ if (cCount >= 0 & cCount <= 60) {
|
|
|
|
+ nowCount -= cCount
|
|
|
|
+ } else {
|
|
|
|
+ sessionStorage.removeItem('login-verify-start-time')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var nowQ = 'span[data-name="verify_get_sms"]'
|
|
|
|
+ var otherQ = 'span[data-name="forge_get_sms"]'
|
|
|
|
+ if (type === 'forge') {
|
|
|
|
+ var tempQ = nowQ
|
|
|
|
+ nowQ = otherQ
|
|
|
|
+ otherQ = tempQ
|
|
|
|
+ }
|
|
|
|
+ var Ele = document.querySelector(nowQ)
|
|
|
|
+ var otherEle = document.querySelector(otherQ)
|
|
|
|
+ var defalutIT = '重新获取('+ --nowCount +'s)'
|
|
|
|
+ if (Ele) Ele.innerText = defalutIT
|
|
|
|
+ if (otherEle) otherEle.innerText = defalutIT
|
|
|
|
+ var nowSS = window.setInterval(function () {
|
|
|
|
+ if (nowCount === 1 || !sessionStorage.getItem('login-verify-start-time')) {
|
|
|
|
+ clearInterval(nowSS)
|
|
|
|
+ if (Ele) Ele.innerText = '获取验证码'
|
|
|
|
+ if (otherEle) otherEle.innerText = '获取验证码'
|
|
|
|
+ sessionStorage.removeItem('login-verify-start-time')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var iT = '重新获取('+ --nowCount +'s)'
|
|
|
|
+ if (Ele) Ele.classList.add('is-stop')
|
|
|
|
+ if (Ele) Ele.innerText = iT
|
|
|
|
+ if (otherEle) otherEle.classList.add('is-stop')
|
|
|
|
+ if (otherEle) otherEle.innerText = iT
|
|
|
|
+ }, 1000)
|
|
|
|
+ }
|
|
|
|
+ function getSMSCode (e) {
|
|
|
|
+ if (e.classList.contains('is-stop')) return
|
|
|
|
+ var verifyStartTime = new Date().getTime()
|
|
|
|
+ var oldTime = sessionStorage.getItem('login-verify-start-time') || verifyStartTime - 70000
|
|
|
|
+ if (verifyStartTime - oldTime >= 60000) {
|
|
|
|
+ var nowQ = e.getAttribute('data-name') === 'forge_get_sms' ? 'forge' : 'verify'
|
|
|
|
+ Direct.ajaxSms(e, nowQ)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 表单规则
|
|
|
|
+ function ruleForPhone (data, type) {
|
|
|
|
+ var checkStatus = /^1[3|7|8]\d{9}$|^19[8-9]\d{8}$|^166\d{8}|^15[0-3|5-9]\d{8}|^14[5|7]\d{8}$/.test(data.value)
|
|
|
|
+ if (type === 'input') {
|
|
|
|
+ return data.value.length >= 11 ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ if (type === 'blur') {
|
|
|
|
+ return data.value.length ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ return checkStatus
|
|
|
|
+ }
|
|
|
|
+ function ruleForCode (data, type) {
|
|
|
|
+ var checkStatus = /^\S{4,}$/.test(data.value)
|
|
|
|
+ if (type === 'blur') {
|
|
|
|
+ return data.value.length ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ if (type === 'input') {
|
|
|
|
+ return data.value.length >= 4 ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ return checkStatus
|
|
|
|
+ }
|
|
|
|
+ function ruleForSms (data, type) {
|
|
|
|
+ var checkStatus = /^\S{4,}$/.test(data.value)
|
|
|
|
+ if (type === 'blur') {
|
|
|
|
+ return data.value.length ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ if (type === 'input') {
|
|
|
|
+ return data.value.length >= 4 ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ return checkStatus
|
|
|
|
+ }
|
|
|
|
+ function ruleForPass (data, type) {
|
|
|
|
+ var checkStatus = /^\S{6,}$/.test(data.value)
|
|
|
|
+ if (type === 'blur') {
|
|
|
|
+ return data.value.length ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ if (type === 'input') {
|
|
|
|
+ return data.value.length >= 6 ? checkStatus : true
|
|
|
|
+ }
|
|
|
|
+ return checkStatus
|
|
|
|
+ }
|
|
|
|
+ function createFormStauts (formOption) {
|
|
|
|
+ var nowEle = document.querySelector(formOption.el)
|
|
|
|
+ var errClass = 'is-error'
|
|
|
|
+ // 实时状态
|
|
|
|
+ var nowData = {
|
|
|
|
+ status: null,
|
|
|
|
+ next: false,
|
|
|
|
+ value: null,
|
|
|
|
+ el: nowEle,
|
|
|
|
+ showError: function (error) {
|
|
|
|
+ this.status = false
|
|
|
|
+ this.next = false
|
|
|
|
+ formOption.upStatus()
|
|
|
|
+ if (error) {
|
|
|
|
+ this.el.parentNode.setAttribute('data-error', error)
|
|
|
|
+ this.el.parentNode.classList.add(errClass)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 错误提示
|
|
|
|
+ if (formOption.errorTip && formOption.errorTip !== '') {
|
|
|
|
+ nowEle.parentNode.setAttribute('data-error', formOption.errorTip)
|
|
|
|
+ }
|
|
|
|
+ // 校验规则
|
|
|
|
+ if (typeof formOption.rule !== "function") {
|
|
|
|
+ formOption.rule = function (data) {
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 状态变动通知回调
|
|
|
|
+ if (typeof formOption.upStatus !== "function") {
|
|
|
|
+ formOption.upStatus = function (data) {
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 监听事件
|
|
|
|
+ formOption.event.forEach(function (event) {
|
|
|
|
+ if (nowEle) nowEle.addEventListener(event,function (e) {
|
|
|
|
+ // input
|
|
|
|
+ var nowTarget = e.target
|
|
|
|
+ var errorTarget = nowTarget.parentNode
|
|
|
|
+ // 移除错误提示
|
|
|
|
+ errorTarget.classList.remove(errClass)
|
|
|
|
+ // 更新状态
|
|
|
|
+ nowData.value = nowTarget.value
|
|
|
|
+ nowData.status = formOption.rule(nowData, event)
|
|
|
|
+ nowData.next = formOption.rule(nowData, 'next')
|
|
|
|
+ formOption.upStatus()
|
|
|
|
+ // 更新错误提示
|
|
|
|
+ if (nowData.status) {
|
|
|
|
+ errorTarget.classList.remove(errClass)
|
|
|
|
+ } else {
|
|
|
|
+ errorTarget.classList.add(errClass)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ return nowData
|
|
|
|
+ }
|
|
|
|
+ // 事件
|
|
|
|
+ function installInputEvent () {
|
|
|
|
+ // verify img event for click
|
|
|
|
+ document.querySelectorAll('.login-dig-input-box .verify-img').forEach(function (v) {
|
|
|
|
+ v.addEventListener('click', function (e) {
|
|
|
|
+ e.target.src = '/front/landpage/captcha?v='+new Date().getTime();
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ // verify sms event for click
|
|
|
|
+ document.querySelectorAll('.login-dig-input-box .l-get-sms').forEach(function (v) {
|
|
|
|
+ v.addEventListener('click', function (e) {
|
|
|
|
+ getSMSCode(e.target)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ // input event for focus
|
|
|
|
+ document.querySelectorAll('.login-dig-input-box input').forEach(function (v) {
|
|
|
|
+ v.addEventListener('focus', function (e) {
|
|
|
|
+ var nowInput = e.target
|
|
|
|
+ nowInput.parentNode.classList.add('is-focus')
|
|
|
|
+ })
|
|
|
|
+ v.addEventListener('blur', function (e) {
|
|
|
|
+ var nowInput = e.target
|
|
|
|
+ nowInput.parentNode.classList.remove('is-focus')
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ // E-公用
|
|
|
|
+
|
|
|
|
+ // 忘记密码
|
|
|
|
+ function toggleStep (type = true) {
|
|
|
|
+ var nowArr = ['.forget-form-box[data-step="1"]', '.forget-step-title[data-step="1"]']
|
|
|
|
+ var otherArr = ['.forget-form-box[data-step="2"]', '.forget-step-title[data-step="2"]']
|
|
|
|
+
|
|
|
|
+ otherArr.forEach(function (v) {
|
|
|
|
+ if (document.querySelector(v)) document.querySelector(v).style.display = (type ? 'none' : null)
|
|
|
|
+ })
|
|
|
|
+ nowArr.forEach(function (v) {
|
|
|
|
+ if (document.querySelector(v)) document.querySelector(v).style.display = (type ? null : 'none')
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ // 弹窗登录
|
|
|
|
+ function installAddEventListener () {
|
|
|
|
+ // tabbar toggle event
|
|
|
|
+ document.querySelector('.login-dig-tabbar-navbar').addEventListener('click', function (e) {
|
|
|
|
+ if (e.target.nodeName !== "SPAN") return
|
|
|
|
+ if (e.target.classList.contains('is-active')) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var SelectName = e.target.getAttribute('name')
|
|
|
|
+ document.querySelector('.login-dig-tabbar-navbar span.is-active').classList.toggle('is-active')
|
|
|
|
+ e.target.classList.toggle('is-active')
|
|
|
|
+ // content toggle
|
|
|
|
+ document.querySelector('.login-dig-tabbar-content.is-active').classList.toggle('is-active')
|
|
|
|
+ document.querySelector('.login-dig-tabbar-content[data-name="'+ SelectName +'"]').classList.toggle('is-active')
|
|
|
|
+ })
|
|
|
|
+ installInputEvent()
|
|
|
|
+ }
|
|
|
|
+ // 初始化
|
|
|
|
+ function isCheckInit() {
|
|
|
|
+ return document.querySelector('button[name="forge_submit_phone"]')
|
|
|
|
+ }
|
|
|
|
+ function initDirect () {
|
|
|
|
+ // 初始化事件
|
|
|
|
+ installAddEventListener()
|
|
|
|
+ // 初始化倒计时
|
|
|
|
+ startTimeDown()
|
|
|
|
+ // 验证码登录
|
|
|
|
+ var verifySubmit = {
|
|
|
|
+ el: 'button[name="verify_submit"]',
|
|
|
|
+ arr: [],
|
|
|
|
+ init (arr) {
|
|
|
|
+ this.arr = arr
|
|
|
|
+ this.check()
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ submitEle.addEventListener('click', this.submit)
|
|
|
|
+ },
|
|
|
|
+ submit (e) {
|
|
|
|
+ var e = e.target
|
|
|
|
+ if (e.getAttribute('data-loading') === 'true') return
|
|
|
|
+ e.setAttribute('data-loading', 'true')
|
|
|
|
+ Direct.ajaxLoginSms(e, verifySubmit.arr)
|
|
|
|
+ },
|
|
|
|
+ check () {
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ var checkStauts = false
|
|
|
|
+ this.arr.forEach(function (data) {
|
|
|
|
+ if (!data.next) {
|
|
|
|
+ checkStauts = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ if (checkStauts) {
|
|
|
|
+ submitEle.setAttribute('disabled', checkStauts)
|
|
|
|
+ } else {
|
|
|
|
+ submitEle.removeAttribute('disabled')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var verifySendSms = {
|
|
|
|
+ el: '.login-dig-input-box span[data-name="verify_get_sms"]',
|
|
|
|
+ update (type) {
|
|
|
|
+ var Ele = document.querySelector(this.el)
|
|
|
|
+ if (type) {
|
|
|
|
+ Ele.classList.remove('is-stop')
|
|
|
|
+ } else {
|
|
|
|
+ Ele.classList.add('is-stop')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var verifyPhone = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="verify_phone"]',
|
|
|
|
+ rule: ruleForPhone,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ verifySubmit.check()
|
|
|
|
+ verifySendSms.update(verifyCode.next && verifyPhone.next)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ var verifyCode = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="verify_code"]',
|
|
|
|
+ rule: ruleForCode,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ verifySubmit.check()
|
|
|
|
+ verifySendSms.update(verifyCode.next && verifyPhone.next)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ var verifySms = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="verify_sms"]',
|
|
|
|
+ rule: ruleForSms,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ verifySubmit.check()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ verifySubmit.init([verifyPhone, verifyCode, verifySms])
|
|
|
|
+ verifySendSms.update(verifyCode.next && verifyPhone.next)
|
|
|
|
+
|
|
|
|
+ // 密码登录
|
|
|
|
+ var passSubmit = {
|
|
|
|
+ el: 'button[name="pass_submit"]',
|
|
|
|
+ arr: [],
|
|
|
|
+ init (arr) {
|
|
|
|
+ this.arr = arr
|
|
|
|
+ this.check()
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ submitEle.addEventListener('click', this.submit)
|
|
|
|
+ },
|
|
|
|
+ submit (e) {
|
|
|
|
+ var e = e.target
|
|
|
|
+ if (e.getAttribute('data-loading') === 'true') return
|
|
|
|
+ e.setAttribute('data-loading', 'true')
|
|
|
|
+ Direct.ajaxLoginPass(e, passSubmit.arr)
|
|
|
|
+ },
|
|
|
|
+ check () {
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ var checkStauts = false
|
|
|
|
+ this.arr.forEach(function (data) {
|
|
|
|
+ if (!data.next) {
|
|
|
|
+ checkStauts = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ if (checkStauts) {
|
|
|
|
+ submitEle.setAttribute('disabled', checkStauts)
|
|
|
|
+ } else {
|
|
|
|
+ submitEle.removeAttribute('disabled')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var passPhone = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="pass_phone"]',
|
|
|
|
+ rule: ruleForPhone,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ passSubmit.check()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ var passPass = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="pass_pass"]',
|
|
|
|
+ rule: ruleForPass,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ passSubmit.check()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ passSubmit.init([passPhone, passPass])
|
|
|
|
+ Direct.verify = {
|
|
|
|
+ phone: verifyPhone,
|
|
|
|
+ code: verifyCode
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ function initForgetDirect () {
|
|
|
|
+ // 判断是否需要初始化
|
|
|
|
+ if (!isCheckInit()) return
|
|
|
|
+ // 初始化显示
|
|
|
|
+ toggleStep(true)
|
|
|
|
+ // 初始化倒计时
|
|
|
|
+ startTimeDown('forge')
|
|
|
|
+ // 手机验证
|
|
|
|
+ var verifySubmit = {
|
|
|
|
+ el: 'button[name="forge_submit_phone"]',
|
|
|
|
+ arr: [],
|
|
|
|
+ init (arr) {
|
|
|
|
+ this.arr = arr
|
|
|
|
+ this.check()
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ if (!submitEle) return
|
|
|
|
+ submitEle.addEventListener('click', this.submit)
|
|
|
|
+ },
|
|
|
|
+ submit (e) {
|
|
|
|
+ var e = e.target
|
|
|
|
+ if (e.getAttribute('data-loading') === 'true') return
|
|
|
|
+ e.setAttribute('data-loading', 'true')
|
|
|
|
+ Direct.ajaxStepOne(e, verifySubmit.arr)
|
|
|
|
+ },
|
|
|
|
+ check () {
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ if (!submitEle) return
|
|
|
|
+ var checkStauts = false
|
|
|
|
+ this.arr.forEach(function (data) {
|
|
|
|
+ if (!data.next) {
|
|
|
|
+ checkStauts = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ if (checkStauts) {
|
|
|
|
+ submitEle.setAttribute('disabled', checkStauts)
|
|
|
|
+ } else {
|
|
|
|
+ submitEle.removeAttribute('disabled')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var verifySendSms = {
|
|
|
|
+ el: '.login-dig-input-box span[data-name="forge_get_sms"]',
|
|
|
|
+ update (type) {
|
|
|
|
+ var Ele = document.querySelector(this.el)
|
|
|
|
+ if (type) {
|
|
|
|
+ Ele.classList.remove('is-stop')
|
|
|
|
+ } else {
|
|
|
|
+ Ele.classList.add('is-stop')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var verifyPhone = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="forge_phone"]',
|
|
|
|
+ rule: ruleForPhone,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ verifySubmit.check()
|
|
|
|
+ verifySendSms.update(verifyCode.next && verifyPhone.next)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ var verifyCode = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="forge_code"]',
|
|
|
|
+ rule: ruleForCode,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ verifySubmit.check()
|
|
|
|
+ verifySendSms.update(verifyCode.next && verifyPhone.next)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ var verifySms = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="forge_sms"]',
|
|
|
|
+ rule: ruleForSms,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ verifySubmit.check()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ verifySubmit.init([verifyPhone, verifyCode, verifySms])
|
|
|
|
+ verifySendSms.update(verifyCode.next && verifyPhone.next)
|
|
|
|
+
|
|
|
|
+ // 密码重置
|
|
|
|
+ var passSubmit = {
|
|
|
|
+ el: 'button[name="forge_submit_pass"]',
|
|
|
|
+ arr: [],
|
|
|
|
+ init (arr) {
|
|
|
|
+ this.arr = arr
|
|
|
|
+ this.check()
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ submitEle.addEventListener('click', this.submit)
|
|
|
|
+ },
|
|
|
|
+ submit (e) {
|
|
|
|
+ var e = e.target
|
|
|
|
+ if (e.getAttribute('data-loading') === 'true') return
|
|
|
|
+ e.setAttribute('data-loading', 'true')
|
|
|
|
+ Direct.ajaxStepTwo(e, passSubmit.arr)
|
|
|
|
+ },
|
|
|
|
+ check () {
|
|
|
|
+ var submitEle = document.querySelector(this.el)
|
|
|
|
+ var checkStauts = false
|
|
|
|
+ this.arr.forEach(function (data) {
|
|
|
|
+ if (!data.next) {
|
|
|
|
+ checkStauts = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ if (checkStauts) {
|
|
|
|
+ submitEle.setAttribute('disabled', checkStauts)
|
|
|
|
+ } else {
|
|
|
|
+ if (this.arr[0].value !== this.arr[1].value) {
|
|
|
|
+ this.arr[1].showError('两次密码输入不一致')
|
|
|
|
+ } else {
|
|
|
|
+ submitEle.removeAttribute('disabled')
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ var passPhone = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="forge_pass_one"]',
|
|
|
|
+ rule: ruleForPass,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ passSubmit.check()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ var passPass = createFormStauts({
|
|
|
|
+ el: '.login-dig-input-box input[name="forge_pass_two"]',
|
|
|
|
+ rule: ruleForPass,
|
|
|
|
+ event: ['input', 'blur'],
|
|
|
|
+ upStatus: function () {
|
|
|
|
+ passSubmit.check()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ passSubmit.init([passPhone, passPass])
|
|
|
|
+
|
|
|
|
+ Direct.forge = {
|
|
|
|
+ phone: verifyPhone,
|
|
|
|
+ code: verifyCode
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 初始化弹窗
|
|
|
|
+ initDirect()
|
|
|
|
+ // 初始化忘记密码
|
|
|
|
+ initForgetDirect()
|
|
|
|
+});
|
|
|
|
+function closeLoginDig () {
|
|
|
|
+ $("#bidLogin").modal("hide");
|
|
|
|
+}
|
|
</script>
|
|
</script>
|