1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-22 19:44:02 +08:00

简化登录相关UI

This commit is contained in:
xiaochong0302 2020-06-04 18:30:06 +08:00
parent be8937ddcf
commit 2d944cf9af
22 changed files with 159 additions and 149 deletions

View File

@ -1,38 +1,29 @@
<form class="kg-login-form layui-form" method="POST" action="{{ url({'for':'admin.login'}) }}"> <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"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
<div class="layui-input-block"> <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> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required"> <input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
</div> </div>
</div> </div>
{% if captcha.enabled == 1 %} {% if captcha.enabled == 1 %}
<div class="layui-form-item"> <div id="captcha-block" class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
<div class="layui-input-block"> <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> <button id="captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" type="button" data-app-id="{{ captcha.app_id }}">点击完成验证</button>
<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>
</div> </div>
</div> </div>
{% endif %} {% endif %}
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block"> <div class="layui-input-block">
{% set disabled = captcha.enabled ? 'disabled="disabled"' : '' %} {% 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="ticket">
<input type="hidden" name="rand"> <input type="hidden" name="rand">
</div> </div>
@ -61,8 +52,7 @@
if (res.ret === 0) { if (res.ret === 0) {
$('input[name=ticket]').val(res.ticket); $('input[name=ticket]').val(res.ticket);
$('input[name=rand]').val(res.randstr); $('input[name=rand]').val(res.randstr);
$('#captcha-btn').remove(); $('#captcha-block').hide();
$('#verify-btn').removeClass('layui-hide');
$('#submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled'); $('#submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled');
} }
} }

View File

@ -40,14 +40,14 @@ class Account extends Service
{ {
$post = $this->request->getPost(); $post = $this->request->getPost();
$captchaValidator = new CaptchaValidator();
$captchaValidator->checkCode($post['ticket'], $post['rand']);
$accountValidator = new AccountValidator(); $accountValidator = new AccountValidator();
$user = $accountValidator->checkUserLogin($post['account'], $post['password']); $user = $accountValidator->checkUserLogin($post['account'], $post['password']);
$captchaValidator = new CaptchaValidator();
$captchaValidator->checkCode($post['ticket'], $post['rand']);
$this->auth->saveAuthInfo($user); $this->auth->saveAuthInfo($user);
} }

View File

@ -7,38 +7,30 @@
<a><cite>重置密码</cite></a> <a><cite>重置密码</cite></a>
</div> </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'}) }}"> <form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.reset_pwd'}) }}">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required"> <input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input class="layui-input" type="password" name="new_password" autocomplete="off" placeholder="新密码" lay-verify="required"> <input class="layui-input" type="password" name="new_password" autocomplete="off" placeholder="新密码" lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label> <div class="verify-input-inline">
<div class="layui-inline verify-input-inline">
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
</div> </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">获取验证码</button> <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> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <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> <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-ticket" type="hidden" name="ticket">
<input id="cv-rand" type="hidden" name="rand"> <input id="cv-rand" type="hidden" name="rand">
</div> </div>

View File

@ -7,9 +7,9 @@
<a><cite>登录</cite></a> <a><cite>登录</cite></a>
</div> </div>
<div class="login-container module"> <div class="login-container container">
<div class="layui-tab layui-tab-brief login-tab"> <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 class="layui-this">密码登录</li>
<li>验证码登录</li> <li>验证码登录</li>
</ul> </ul>
@ -22,8 +22,9 @@
</div> </div>
</div> </div>
</div> </div>
<div class="text-center"> <div class="link">
<a class="login-link" href="{{ url({'for':'web.account.register'}) }}">免费注册</a> <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> <a class="forget-link" href="{{ url({'for':'web.account.forget_pwd'}) }}">忘记密码</a>
</div> </div>
</div> </div>

View File

@ -1,21 +1,17 @@
<form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.pwd_login'}) }}"> <form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.pwd_login'}) }}">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
<div class="layui-input-block"> <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> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required"> <input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div id="captcha-block" class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>
<div class="layui-input-block"> <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> <button id="captcha-btn" class="layui-btn layui-btn-primary layui-btn-fluid" type="button" data-app-id="{{ captcha.app_id }}">点击完成验证</button>
<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>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">

View File

@ -1,30 +1,22 @@
<form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.verify_login'}) }}"> <form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.verify_login'}) }}">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required"> <input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label> <div class="verify-input-inline">
<div class="layui-inline verify-input-inline">
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
</div> </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">获取验证码</button> <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">
<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> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <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> <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 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-ticket" type="hidden" name="ticket">
<input id="cv-rand" type="hidden" name="rand"> <input id="cv-rand" type="hidden" name="rand">
</div> </div>

View File

@ -7,39 +7,31 @@
<a><cite>注册</cite></a> <a><cite>注册</cite></a>
</div> </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'}) }}"> <form class="layui-form account-form" method="POST" action="{{ url({'for':'web.account.do_register'}) }}">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-username"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required"> <input id="cv-account" class="layui-input" type="text" name="account" autocomplete="off" placeholder="手机 / 邮箱" lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-password"></i></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required"> <input class="layui-input" type="password" name="password" autocomplete="off" placeholder="密码" lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label> <div class="verify-input-inline">
<div class="layui-inline verify-input-inline">
<input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required"> <input class="layui-input" type="text" name="verify_code" placeholder="验证码" lay-verify="required">
</div> </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> <button id="cv-verify-emit" class="layui-btn layui-btn-primary layui-btn-disabled" type="button" disabled="disabled">获取验证码</button>
</div> </div>
</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-form-item">
<div class="layui-input-block"> <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> <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 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-ticket" type="hidden" name="ticket">
<input id="cv-rand" type="hidden" name="rand"> <input id="cv-rand" type="hidden" name="rand">
</div> </div>

View File

@ -6,14 +6,14 @@
{{ partial('course/list_filter') }} {{ partial('course/list_filter') }}
{% if pager.total_pages > 0 %} {% if pager.total_pages > 0 %}
<div class="course-list module clearfix"> <div class="course-list container clearfix">
{% for item in pager.items %} {% for item in pager.items %}
{{ course_card(item) }} {{ course_card(item) }}
{% endfor %} {% endfor %}
</div> </div>
{{ partial('partials/pager') }} {{ partial('partials/pager') }}
{% else %} {% 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="icon"><i class="layui-icon layui-icon-face-surprised"></i></div>
<div class="text">没有检索到相关课程哦</div> <div class="text">没有检索到相关课程哦</div>
</div> </div>

View File

@ -1,4 +1,4 @@
<div class="course-filter module"> <div class="course-filter container">
<div class="filter-group"> <div class="filter-group">
<div class="title">方向</div> <div class="title">方向</div>
<div class="content"> <div class="content">

View File

@ -1,5 +1,5 @@
{% if course.me.owned == 0 and course.market_price > 0 %} {% if course.me.owned == 0 and course.market_price > 0 %}
<div class="sidebar-order module"> <div class="sidebar-order container">
<div class="order"> <div class="order">
{% set order_url = url({'for':'web.order.confirm'},{'item_id':course.id,'item_type':'course'}) %} {% 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> <a class="layui-btn layui-btn-fluid layui-bg-red" href="{{ order_url }}">立即购买</a>

View File

@ -15,7 +15,7 @@
</span> </span>
</div> </div>
<div class="course-meta module clearfix"> <div class="course-meta container clearfix">
{{ partial('course/meta') }} {{ partial('course/meta') }}
</div> </div>
@ -25,7 +25,7 @@
{% set show_tab_consults = course.consult_count > 0 ? 1 : 0 %} {% set show_tab_consults = course.consult_count > 0 ? 1 : 0 %}
{% set show_tab_reviews = course.review_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"> <div class="layui-tab layui-tab-brief course-tab">
<ul class="layui-tab-title"> <ul class="layui-tab-title">
<li class="layui-this">详情</li> <li class="layui-this">详情</li>

View File

@ -27,7 +27,7 @@
</div> </div>
{%- endmacro %} {%- endmacro %}
<div class="index-module index-carousel module"> <div class="index-container index-carousel container">
<div class="layui-carousel" id="carousel"> <div class="layui-carousel" id="carousel">
<div class="carousel" carousel-item> <div class="carousel" carousel-item>
{% for slide in slides %} {% for slide in slides %}
@ -41,21 +41,21 @@
</div> </div>
</div> </div>
<div class="index-module module"> <div class="index-container container">
<div class="header">新上课程</div> <div class="header">新上课程</div>
<div class="content"> <div class="content">
{{ category_courses(new_courses) }} {{ category_courses(new_courses) }}
</div> </div>
</div> </div>
<div class="index-module module"> <div class="index-container container">
<div class="header">免费课程</div> <div class="header">免费课程</div>
<div class="content"> <div class="content">
{{ category_courses(free_courses) }} {{ category_courses(free_courses) }}
</div> </div>
</div> </div>
<div class="index-module module"> <div class="index-container container">
<div class="header">会员课程</div> <div class="header">会员课程</div>
<div class="content"> <div class="content">
{{ category_courses(vip_courses) }} {{ category_courses(vip_courses) }}

View File

@ -35,7 +35,7 @@
<a><cite>确认订单</cite></a> <a><cite>确认订单</cite></a>
</div> </div>
<div class="cart-item-list module"> <div class="cart-item-list container">
{% if confirm.item_type == 'course' %} {% if confirm.item_type == 'course' %}
{% set course = confirm.item_info.course %} {% set course = confirm.item_info.course %}
{{ cart_course_card(course, auth_user) }} {{ cart_course_card(course, auth_user) }}
@ -53,7 +53,7 @@
{% endif %} {% endif %}
</div> </div>
<div class="cart-stats module clearfix"> <div class="cart-stats container clearfix">
<div class="info"> <div class="info">
商品总价:<span class="amount">¥{{ confirm.total_amount }}</span> 商品总价:<span class="amount">¥{{ confirm.total_amount }}</span>
优惠金额:<span class="amount">¥{{ confirm.discount_amount }}</span> 优惠金额:<span class="amount">¥{{ confirm.discount_amount }}</span>

View File

@ -7,7 +7,7 @@
<a><cite>支付订单</cite></a> <a><cite>支付订单</cite></a>
</div> </div>
<div class="payment module"> <div class="payment container">
<div class="header"> <div class="header">
订单名称:<span>{{ order.subject }}</span> 订单名称:<span>{{ order.subject }}</span>
订单编号:<span>{{ order.sn }}</span> 订单编号:<span>{{ order.sn }}</span>

View File

@ -28,8 +28,8 @@
<img src="{{ course.cover }}!cover_270" alt="{{ course.title|e }}" title="{{ course.title|e }}"> <img src="{{ course.cover }}!cover_270" alt="{{ course.title|e }}" title="{{ course.title|e }}">
</a> </a>
</div> </div>
<div class="title"> <div class="title layui-elip">
<a href="{{ course_url }}" title="{{ course.title|e }}">{{ substr(course.title,0,15) }}</a> <a href="{{ course_url }}" title="{{ course.title|e }}">{{ course.title }}</a>
</div> </div>
<div class="meta"> <div class="meta">
{% if course.market_price > 0 %} {% if course.market_price > 0 %}
@ -54,8 +54,8 @@
<img src="{{ course.cover }}!cover_270" alt="{{ course.title|e }}"> <img src="{{ course.cover }}!cover_270" alt="{{ course.title|e }}">
</div> </div>
<div class="info"> <div class="info">
<div class="title"> <div class="title layui-elip">
<a href="{{ course_url }}" title="{{ course.title|e }}">{{ substr(course.title,0,15) }}</a> <a href="{{ course_url }}" title="{{ course.title|e }}">{{ course.title }}</a>
</div> </div>
<div class="meta"> <div class="meta">
{% if course.market_price > 0 %} {% if course.market_price > 0 %}

View File

@ -8,7 +8,7 @@
</a> </a>
</div> </div>
<div class="info"> <div class="info">
<div class="title"> <div class="title layui-elip">
<a href="{{ course_url }}">{{ item.title }}</a> <a href="{{ course_url }}">{{ item.title }}</a>
</div> </div>
<div class="summary">{{ item.summary }}</div> <div class="summary">{{ item.summary }}</div>

View File

@ -14,7 +14,7 @@
</div> </div>
<div class="layout-main clearfix"> <div class="layout-main clearfix">
<div class="layout-content module"> <div class="layout-content container">
{% if pager.total_pages > 0 %} {% if pager.total_pages > 0 %}
{% if type == 'course' %} {% if type == 'course' %}
{{ partial('search/content_course') }} {{ partial('search/content_course') }}

View File

@ -106,12 +106,12 @@ class Account extends Validator
public function checkVerifyLogin($name, $code) public function checkVerifyLogin($name, $code)
{ {
$account = $this->checkAccount($name);
$verify = new Verify(); $verify = new Verify();
$verify->checkCode($name, $code); $verify->checkCode($name, $code);
$account = $this->checkAccount($name);
$userRepo = new UserRepo(); $userRepo = new UserRepo();
return $userRepo->findById($account->id); return $userRepo->findById($account->id);

View File

@ -23,17 +23,12 @@
} }
.kg-login-form { .kg-login-form {
width: 420px; width: 400px;
margin: 100px auto; margin: 100px auto;
} }
.kg-login-form .layui-input-block { .kg-login-form .layui-input-block {
margin-left: 60px; margin-left: 0;
width: 300px;
}
.kg-login-form .layui-form-label {
width: 30px;
} }
.kg-input-inline { .kg-input-inline {
@ -42,10 +37,6 @@
margin-right: 10px; margin-right: 10px;
} }
.kg-verify-btn-ok {
color: green;
}
.kg-side-menu-bar { .kg-side-menu-bar {
position: absolute; position: absolute;
top: 0; top: 0;

View File

@ -22,10 +22,6 @@ body {
float: right; float: right;
} }
.bg-white {
background-color: #fff;
}
.layui-badge, .layui-badge-rim { .layui-badge, .layui-badge-rim {
padding-bottom: 1px; padding-bottom: 1px;
} }
@ -96,7 +92,7 @@ body {
margin-bottom: 20px; margin-bottom: 20px;
} }
.module { .container {
padding: 20px; padding: 20px;
margin-bottom: 15px; margin-bottom: 15px;
background-color: #fff; background-color: #fff;
@ -127,19 +123,19 @@ body {
margin-bottom: 15px; margin-bottom: 15px;
} }
.index-module .layui-tab { .index-container .layui-tab {
margin-bottom: 0; margin-bottom: 0;
} }
.index-module .layui-tab-title { .index-container .layui-tab-title {
border: none; border: none;
} }
.index-module .layui-tab-content { .index-container .layui-tab-content {
padding: 20px 0 0 0; padding: 20px 0 0 0;
} }
.index-module .header { .index-container .header {
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
padding-bottom: 15px; padding-bottom: 15px;
@ -474,7 +470,7 @@ body {
white-space: nowrap; white-space: nowrap;
} }
.separator { .package-course-list .separator {
color: #666; color: #666;
display: inline-block; display: inline-block;
padding-top: 35px; padding-top: 35px;
@ -789,30 +785,58 @@ body {
text-align: center; text-align: center;
} }
.verify-btn-ok { .account-container {
color: green; padding-top: 40px;
padding-bottom: 30px;
} }
.account-form { .account-form {
width: 540px; width: 400px;
margin: 0 auto;
}
.account-form .layui-input-block {
margin-left: 0;
} }
.account-form .verify-input-inline { .account-form .verify-input-inline {
width: 308px; display: inline-block;
width: 283px;
margin-right: 5px;
} }
.account-form .verify-btn-inline { .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 { .login-tab {
margin: 0; margin: 0;
} }
.login-tab .layui-tab-title {
text-align: center;
}
.login-tab .layui-tab-content { .login-tab .layui-tab-content {
padding-top: 30px; 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;
}

View File

@ -7,8 +7,7 @@ var captcha = new TencentCaptcha(
if (res.ret === 0) { if (res.ret === 0) {
$('#ticket').val(res.ticket); $('#ticket').val(res.ticket);
$('#rand').val(res.randstr); $('#rand').val(res.randstr);
$('#captcha-btn').remove(); $('#captcha-block').hide();
$('#verify-btn').removeClass('layui-hide');
$('#submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled'); $('#submit-btn').removeClass('layui-btn-disabled').removeAttr('disabled');
} }
} }

View File

@ -1,45 +1,78 @@
var $ = layui.jquery; var $ = layui.jquery;
var layer = layui.layer; var layer = layui.layer;
var timeCounting = false;
var $account = $('#cv-account');
var $emit = $('#cv-verify-emit');
var captcha = new TencentCaptcha( var captcha = new TencentCaptcha(
$('#cv-captcha-btn')[0], $emit[0],
$('#cv-captcha-btn').attr('data-app-id'), $('#cv-app-id').val(),
function (res) { function (res) {
if (res.ret === 0) { if (res.ret === 0) {
$('#cv-ticket').val(res.ticket); $('#cv-ticket').val(res.ticket);
$('#cv-rand').val(res.randstr); $('#cv-rand').val(res.randstr);
$('#cv-captcha-btn').remove(); if (isEmail($account.val()) || isPhone($account.val())) {
$('#cv-verify-btn').removeClass('layui-hide'); var postUrl = null;
$('#cv-verify-emit').removeClass('layui-btn-disabled').removeAttr('disabled'); var postData = {
ticket: $('#cv-ticket').val(),
rand: $('#cv-rand').val(),
};
if (isPhone($account.val())) {
postData.phone = $account.val();
postUrl = '/verify/sms/code';
} else if (isEmail($account.val())) {
postData.email = $account.val();
postUrl = '/verify/email/code';
}
$.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);
}
} }
} }
); );
$('#cv-verify-emit').on('click', function () { $account.on('keyup', function () {
var account = $('#cv-account').val(); var accountOk = isEmail($(this).val()) || isPhone($(this).val());
var regEmail = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/; if (accountOk && !timeCounting) {
var regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; $emit.removeClass('layui-btn-disabled').removeAttr('disabled');
var isEmail = regEmail.test(account); } else {
var isPhone = regPhone.test(account); $emit.addClass('layui-btn-disabled').attr('disabled', 'disabled');
if (isEmail || isPhone) {
var postUrl = null;
var postData = {
ticket: $('#cv-ticket').val(),
rand: $('#cv-rand').val(),
};
if (isPhone) {
postData.phone = account;
postUrl = '/verify/sms/code';
} else if (isEmail) {
postData.email = account;
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});
}
});
} }
}); });
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);
}