mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-22 11:41:27 +08:00
简化登录相关UI
This commit is contained in:
parent
be8937ddcf
commit
2d944cf9af
@ -1,38 +1,29 @@
|
||||
<form class="kg-login-form layui-form" method="POST" action="{{ url({'for':'admin.login'}) }}">
|
||||
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>后台登录</legend>
|
||||
</fieldset>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机/邮箱" lay-verify="required">
|
||||
<input class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if captcha.enabled == 1 %}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
|
||||
<div id="captcha-block" class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<span id="captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">点击完成验证</span>
|
||||
<span id="verify-btn" class="kg-verify-btn-ok layui-btn layui-btn-primary layui-btn-disabled layui-btn-fluid layui-hide"><i class="layui-icon layui-icon-ok"></i>验证成功</span>
|
||||
<button id="captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" type="button" data-app-id="{{ captcha.app_id }}">点击完成验证</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
{% set disabled = captcha.enabled ? 'disabled="disabled"' : '' %}
|
||||
<button id="submit-btn" class="layui-btn layui-btn-fluid layui-btn-disabled" {{ disabled }} lay-submit="true" lay-filter="go">登录</button>
|
||||
<button id="submit-btn" class="layui-btn layui-btn-fluid layui-btn-disabled" {{ disabled }} lay-submit="true" lay-filter="go">立即登录</button>
|
||||
<input type="hidden" name="ticket">
|
||||
<input type="hidden" name="rand">
|
||||
</div>
|
||||
@ -61,8 +52,7 @@
|
||||
if (res.ret === 0) {
|
||||
$('input[name=ticket]').val(res.ticket);
|
||||
$('input[name=rand]').val(res.randstr);
|
||||
$('#captcha-btn').remove();
|
||||
$('#verify-btn').removeClass('layui-hide');
|
||||
$('#captcha-block').hide();
|
||||
$('#submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled');
|
||||
}
|
||||
}
|
||||
|
@ -40,14 +40,14 @@ class Account extends Service
|
||||
{
|
||||
$post = $this->request->getPost();
|
||||
|
||||
$captchaValidator = new CaptchaValidator();
|
||||
|
||||
$captchaValidator->checkCode($post['ticket'], $post['rand']);
|
||||
|
||||
$accountValidator = new AccountValidator();
|
||||
|
||||
$user = $accountValidator->checkUserLogin($post['account'], $post['password']);
|
||||
|
||||
$captchaValidator = new CaptchaValidator();
|
||||
|
||||
$captchaValidator->checkCode($post['ticket'], $post['rand']);
|
||||
|
||||
$this->auth->saveAuthInfo($user);
|
||||
}
|
||||
|
||||
|
@ -7,38 +7,30 @@
|
||||
<a><cite>重置密码</cite></a>
|
||||
</div>
|
||||
|
||||
<div class="register-container">
|
||||
<div class="account-container container">
|
||||
<form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.reset_pwd'}) }}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="password" name="new_password" autocomplete="off" placeholder="新密码" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
|
||||
<div class="layui-inline verify-input-inline">
|
||||
<div class="verify-input-inline">
|
||||
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-inline verify-btn-inline">
|
||||
<button id="cv-verify-emit" class="layui-btn layui-btn-primary layui-btn-disabled" type="button">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<span id="cv-captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">点击完成验证</span>
|
||||
<span id="cv-verify-btn" class="verify-btn-ok layui-btn layui-btn-primary layui-btn-disabled layui-btn-fluid layui-hide"><i class="layui-icon layui-icon-ok"></i>验证成功</span>
|
||||
<div class="verify-btn-inline">
|
||||
<button id="cv-verify-emit" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button id="cv-submit-btn" class="layui-btn layui-btn-fluid layui-btn-disabled" disabled="disabled" lay-submit="true" lay-filter="go">立即重置</button>
|
||||
<input id="cv-app-id" type="hidden" value="{{ captcha.app_id }}">
|
||||
<input id="cv-ticket" type="hidden" name="ticket">
|
||||
<input id="cv-rand" type="hidden" name="rand">
|
||||
</div>
|
||||
|
@ -7,9 +7,9 @@
|
||||
<a><cite>登录</cite></a>
|
||||
</div>
|
||||
|
||||
<div class="login-container module">
|
||||
<div class="login-container container">
|
||||
<div class="layui-tab layui-tab-brief login-tab">
|
||||
<ul class="layui-tab-title kg-tab-title">
|
||||
<ul class="layui-tab-title login-tab-title">
|
||||
<li class="layui-this">密码登录</li>
|
||||
<li>验证码登录</li>
|
||||
</ul>
|
||||
@ -22,8 +22,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<div class="link">
|
||||
<a class="login-link" href="{{ url({'for':'web.account.register'}) }}">免费注册</a>
|
||||
<span class="separator">·</span>
|
||||
<a class="forget-link" href="{{ url({'for':'web.account.forget_pwd'}) }}">忘记密码</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,21 +1,17 @@
|
||||
<form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.pwd_login'}) }}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
|
||||
<div id="captcha-block" class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<span id="captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">点击完成验证</span>
|
||||
<span id="verify-btn" class="verify-btn-ok layui-btn layui-btn-primary layui-btn-fluid layui-btn-disabled layui-hide"><i class="layui-icon layui-icon-ok"></i>验证成功</span>
|
||||
<button id="captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" type="button" data-app-id="{{ captcha.app_id }}">点击完成验证</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -1,30 +1,22 @@
|
||||
<form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.verify_login'}) }}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
|
||||
<div class="layui-inline verify-input-inline">
|
||||
<div class="verify-input-inline">
|
||||
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-inline verify-btn-inline">
|
||||
<button id="cv-verify-emit" class="layui-btn layui-btn-primary layui-btn-disabled" type="button">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<span id="cv-captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">点击完成验证</span>
|
||||
<span id="cv-verify-btn" class="verify-btn-ok layui-btn layui-btn-primary layui-btn-fluid layui-btn-disabled layui-hide"><i class="layui-icon layui-icon-ok"></i>验证成功</span>
|
||||
<div class="verify-btn-inline">
|
||||
<button id="cv-verify-emit" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button id="cv-submit-btn" class="layui-btn layui-btn-fluid layui-btn-disabled" disabled="disabled" lay-submit="true" lay-filter="go">立即登录</button>
|
||||
<input type="hidden" name="return_url" value="{{ return_url }}">
|
||||
<input id="cv-app-id" type="hidden" name="captcha_app_id" value="{{ captcha.app_id }}">
|
||||
<input id="cv-ticket" type="hidden" name="ticket">
|
||||
<input id="cv-rand" type="hidden" name="rand">
|
||||
</div>
|
||||
|
@ -7,39 +7,31 @@
|
||||
<a><cite>注册</cite></a>
|
||||
</div>
|
||||
|
||||
<div class="register-container">
|
||||
<div class="account-container container">
|
||||
<form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.do_register'}) }}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
|
||||
<div class="layui-inline verify-input-inline">
|
||||
<div class="verify-input-inline">
|
||||
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-inline verify-btn-inline">
|
||||
<div class="verify-btn-inline">
|
||||
<button id="cv-verify-emit" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<span id="cv-captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" data-app-id="{{ captcha.app_id }}">点击完成验证</span>
|
||||
<span id="cv-verify-btn" class="verify-btn-ok layui-btn layui-btn-primary layui-btn-disabled layui-btn-fluid layui-hide"><i class="layui-icon layui-icon-ok"></i>验证成功</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button id="cv-submit-btn" class="layui-btn layui-btn-fluid layui-btn-disabled" disabled="disabled" lay-submit="true" lay-filter="go">立即注册</button>
|
||||
<input type="hidden" name="return_url" value="{{ return_url }}">
|
||||
<input id="cv-app-id" type="hidden" value="{{ captcha.app_id }}">
|
||||
<input id="cv-ticket" type="hidden" name="ticket">
|
||||
<input id="cv-rand" type="hidden" name="rand">
|
||||
</div>
|
||||
|
@ -6,14 +6,14 @@
|
||||
{{ partial('course/list_filter') }}
|
||||
|
||||
{% if pager.total_pages > 0 %}
|
||||
<div class="course-list module clearfix">
|
||||
<div class="course-list container clearfix">
|
||||
{% for item in pager.items %}
|
||||
{{ course_card(item) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{{ partial('partials/pager') }}
|
||||
{% else %}
|
||||
<div class="search-empty module">
|
||||
<div class="search-empty container">
|
||||
<div class="icon"><i class="layui-icon layui-icon-face-surprised"></i></div>
|
||||
<div class="text">没有检索到相关课程哦</div>
|
||||
</div>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class="course-filter module">
|
||||
<div class="course-filter container">
|
||||
<div class="filter-group">
|
||||
<div class="title">方向</div>
|
||||
<div class="content">
|
||||
|
@ -1,5 +1,5 @@
|
||||
{% if course.me.owned == 0 and course.market_price > 0 %}
|
||||
<div class="sidebar-order module">
|
||||
<div class="sidebar-order container">
|
||||
<div class="order">
|
||||
{% set order_url = url({'for':'web.order.confirm'},{'item_id':course.id,'item_type':'course'}) %}
|
||||
<a class="layui-btn layui-btn-fluid layui-bg-red" href="{{ order_url }}">立即购买</a>
|
||||
|
@ -15,7 +15,7 @@
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="course-meta module clearfix">
|
||||
<div class="course-meta container clearfix">
|
||||
{{ partial('course/meta') }}
|
||||
</div>
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
{% set show_tab_consults = course.consult_count > 0 ? 1 : 0 %}
|
||||
{% set show_tab_reviews = course.review_count > 0 ? 1 : 0 %}
|
||||
|
||||
<div class="layout-content module">
|
||||
<div class="layout-content container">
|
||||
<div class="layui-tab layui-tab-brief course-tab">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this">详情</li>
|
||||
|
@ -27,7 +27,7 @@
|
||||
</div>
|
||||
{%- endmacro %}
|
||||
|
||||
<div class="index-module index-carousel module">
|
||||
<div class="index-container index-carousel container">
|
||||
<div class="layui-carousel" id="carousel">
|
||||
<div class="carousel" carousel-item>
|
||||
{% for slide in slides %}
|
||||
@ -41,21 +41,21 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="index-module module">
|
||||
<div class="index-container container">
|
||||
<div class="header">新上课程</div>
|
||||
<div class="content">
|
||||
{{ category_courses(new_courses) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="index-module module">
|
||||
<div class="index-container container">
|
||||
<div class="header">免费课程</div>
|
||||
<div class="content">
|
||||
{{ category_courses(free_courses) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="index-module module">
|
||||
<div class="index-container container">
|
||||
<div class="header">会员课程</div>
|
||||
<div class="content">
|
||||
{{ category_courses(vip_courses) }}
|
||||
|
@ -35,7 +35,7 @@
|
||||
<a><cite>确认订单</cite></a>
|
||||
</div>
|
||||
|
||||
<div class="cart-item-list module">
|
||||
<div class="cart-item-list container">
|
||||
{% if confirm.item_type == 'course' %}
|
||||
{% set course = confirm.item_info.course %}
|
||||
{{ cart_course_card(course, auth_user) }}
|
||||
@ -53,7 +53,7 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="cart-stats module clearfix">
|
||||
<div class="cart-stats container clearfix">
|
||||
<div class="info">
|
||||
商品总价:<span class="amount">¥{{ confirm.total_amount }}</span>
|
||||
优惠金额:<span class="amount">¥{{ confirm.discount_amount }}</span>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<a><cite>支付订单</cite></a>
|
||||
</div>
|
||||
|
||||
<div class="payment module">
|
||||
<div class="payment container">
|
||||
<div class="header">
|
||||
订单名称:<span>{{ order.subject }}</span>
|
||||
订单编号:<span>{{ order.sn }}</span>
|
||||
|
@ -28,8 +28,8 @@
|
||||
<img src="{{ course.cover }}!cover_270" alt="{{ course.title|e }}" title="{{ course.title|e }}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="title">
|
||||
<a href="{{ course_url }}" title="{{ course.title|e }}">{{ substr(course.title,0,15) }}</a>
|
||||
<div class="title layui-elip">
|
||||
<a href="{{ course_url }}" title="{{ course.title|e }}">{{ course.title }}</a>
|
||||
</div>
|
||||
<div class="meta">
|
||||
{% if course.market_price > 0 %}
|
||||
@ -54,8 +54,8 @@
|
||||
<img src="{{ course.cover }}!cover_270" alt="{{ course.title|e }}">
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="title">
|
||||
<a href="{{ course_url }}" title="{{ course.title|e }}">{{ substr(course.title,0,15) }}</a>
|
||||
<div class="title layui-elip">
|
||||
<a href="{{ course_url }}" title="{{ course.title|e }}">{{ course.title }}</a>
|
||||
</div>
|
||||
<div class="meta">
|
||||
{% if course.market_price > 0 %}
|
||||
|
@ -8,7 +8,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="title">
|
||||
<div class="title layui-elip">
|
||||
<a href="{{ course_url }}">{{ item.title }}</a>
|
||||
</div>
|
||||
<div class="summary">{{ item.summary }}</div>
|
||||
|
@ -14,7 +14,7 @@
|
||||
</div>
|
||||
|
||||
<div class="layout-main clearfix">
|
||||
<div class="layout-content module">
|
||||
<div class="layout-content container">
|
||||
{% if pager.total_pages > 0 %}
|
||||
{% if type == 'course' %}
|
||||
{{ partial('search/content_course') }}
|
||||
|
@ -106,12 +106,12 @@ class Account extends Validator
|
||||
|
||||
public function checkVerifyLogin($name, $code)
|
||||
{
|
||||
$account = $this->checkAccount($name);
|
||||
|
||||
$verify = new Verify();
|
||||
|
||||
$verify->checkCode($name, $code);
|
||||
|
||||
$account = $this->checkAccount($name);
|
||||
|
||||
$userRepo = new UserRepo();
|
||||
|
||||
return $userRepo->findById($account->id);
|
||||
|
@ -23,17 +23,12 @@
|
||||
}
|
||||
|
||||
.kg-login-form {
|
||||
width: 420px;
|
||||
width: 400px;
|
||||
margin: 100px auto;
|
||||
}
|
||||
|
||||
.kg-login-form .layui-input-block {
|
||||
margin-left: 60px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.kg-login-form .layui-form-label {
|
||||
width: 30px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.kg-input-inline {
|
||||
@ -42,10 +37,6 @@
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.kg-verify-btn-ok {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.kg-side-menu-bar {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -22,10 +22,6 @@ body {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.bg-white {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.layui-badge, .layui-badge-rim {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
@ -96,7 +92,7 @@ body {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.module {
|
||||
.container {
|
||||
padding: 20px;
|
||||
margin-bottom: 15px;
|
||||
background-color: #fff;
|
||||
@ -127,19 +123,19 @@ body {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.index-module .layui-tab {
|
||||
.index-container .layui-tab {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.index-module .layui-tab-title {
|
||||
.index-container .layui-tab-title {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.index-module .layui-tab-content {
|
||||
.index-container .layui-tab-content {
|
||||
padding: 20px 0 0 0;
|
||||
}
|
||||
|
||||
.index-module .header {
|
||||
.index-container .header {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
padding-bottom: 15px;
|
||||
@ -474,7 +470,7 @@ body {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.separator {
|
||||
.package-course-list .separator {
|
||||
color: #666;
|
||||
display: inline-block;
|
||||
padding-top: 35px;
|
||||
@ -789,30 +785,58 @@ body {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.verify-btn-ok {
|
||||
color: green;
|
||||
.account-container {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
|
||||
.account-form {
|
||||
width: 540px;
|
||||
width: 400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.account-form .layui-input-block {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.account-form .verify-input-inline {
|
||||
width: 308px;
|
||||
display: inline-block;
|
||||
width: 283px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.account-form .verify-btn-inline {
|
||||
margin-right: 0;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.login-container {
|
||||
|
||||
.verify-btn-inline button {
|
||||
min-width: 108px;
|
||||
}
|
||||
|
||||
.login-tab {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.login-tab .layui-tab-title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-tab .layui-tab-content {
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
.login-container .link {
|
||||
margin-bottom: 30px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-container .link a {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.login-container .link .separator {
|
||||
margin: 0 15px;
|
||||
color: #999;
|
||||
}
|
@ -7,8 +7,7 @@ var captcha = new TencentCaptcha(
|
||||
if (res.ret === 0) {
|
||||
$('#ticket').val(res.ticket);
|
||||
$('#rand').val(res.randstr);
|
||||
$('#captcha-btn').remove();
|
||||
$('#verify-btn').removeClass('layui-hide');
|
||||
$('#captcha-block').hide();
|
||||
$('#submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled');
|
||||
}
|
||||
}
|
||||
|
@ -1,45 +1,78 @@
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
|
||||
var timeCounting = false;
|
||||
var $account = $('#cv-account');
|
||||
var $emit = $('#cv-verify-emit');
|
||||
|
||||
var captcha = new TencentCaptcha(
|
||||
$('#cv-captcha-btn')[0],
|
||||
$('#cv-captcha-btn').attr('data-app-id'),
|
||||
$emit[0],
|
||||
$('#cv-app-id').val(),
|
||||
function (res) {
|
||||
if (res.ret === 0) {
|
||||
$('#cv-ticket').val(res.ticket);
|
||||
$('#cv-rand').val(res.randstr);
|
||||
$('#cv-captcha-btn').remove();
|
||||
$('#cv-verify-btn').removeClass('layui-hide');
|
||||
$('#cv-verify-emit').removeClass('layui-btn-disabled').removeAttr('disabled');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$('#cv-verify-emit').on('click', function () {
|
||||
var account = $('#cv-account').val();
|
||||
var regEmail = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
|
||||
var regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/;
|
||||
var isEmail = regEmail.test(account);
|
||||
var isPhone = regPhone.test(account);
|
||||
if (isEmail || isPhone) {
|
||||
if (isEmail($account.val()) || isPhone($account.val())) {
|
||||
var postUrl = null;
|
||||
var postData = {
|
||||
ticket: $('#cv-ticket').val(),
|
||||
rand: $('#cv-rand').val(),
|
||||
};
|
||||
if (isPhone) {
|
||||
postData.phone = account;
|
||||
if (isPhone($account.val())) {
|
||||
postData.phone = $account.val();
|
||||
postUrl = '/verify/sms/code';
|
||||
} else if (isEmail) {
|
||||
postData.email = account;
|
||||
} else if (isEmail($account.val())) {
|
||||
postData.email = $account.val();
|
||||
postUrl = '/verify/email/code';
|
||||
}
|
||||
$.post(postUrl, postData, function (res) {
|
||||
if (res.code === 0) {
|
||||
$('#cv-submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled');
|
||||
layer.msg('发送验证码成功', {icon: 1});
|
||||
} else {
|
||||
layer.msg('发送验证码失败', {icon: 2});
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: postUrl,
|
||||
data: postData,
|
||||
success: function (res) {
|
||||
|
||||
},
|
||||
error: function (xhr) {
|
||||
var json = JSON.parse(xhr.responseText);
|
||||
layer.msg(json.msg, {icon: 2});
|
||||
}
|
||||
});
|
||||
$('#cv-submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled');
|
||||
$emit.addClass('layui-btn-disabled').attr('disabled', 'disabled');
|
||||
showCountDown($emit);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$account.on('keyup', function () {
|
||||
var accountOk = isEmail($(this).val()) || isPhone($(this).val());
|
||||
if (accountOk && !timeCounting) {
|
||||
$emit.removeClass('layui-btn-disabled').removeAttr('disabled');
|
||||
} else {
|
||||
$emit.addClass('layui-btn-disabled').attr('disabled', 'disabled');
|
||||
}
|
||||
});
|
||||
|
||||
function showCountDown(obj) {
|
||||
var serverTime = new Date().getTime();
|
||||
var endTime = serverTime + 60 * 1000;
|
||||
layui.util.countdown(endTime, serverTime, function (date, serverTime, timer) {
|
||||
var left = date[0] * 86400 + date[1] * 3600 + date[2] * 60 + date[3];
|
||||
obj.text(left + '秒');
|
||||
if (left === 0) {
|
||||
obj.removeClass('layui-btn-disabled').removeAttr('disabled').text('重新发送');
|
||||
clearInterval(timer);
|
||||
timeCounting = false;
|
||||
}
|
||||
});
|
||||
timeCounting = true;
|
||||
}
|
||||
|
||||
function isEmail(email) {
|
||||
return /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(email);
|
||||
}
|
||||
|
||||
function isPhone(phone) {
|
||||
return /^1(3|4|5|6|7|8|9)\d{9}$/.test(phone);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user