98 lines
4.4 KiB
JavaScript
98 lines
4.4 KiB
JavaScript
/**
|
|
* login.js - 登录页逻辑(滑块验证 + 表单提交 + 找回密码)
|
|
*/
|
|
$(function () {
|
|
var sliderToken = null;
|
|
var slider = new SliderVerify('#slider', function (token) {
|
|
sliderToken = token;
|
|
$('#login-btn').prop('disabled', false);
|
|
});
|
|
|
|
// 回车提交
|
|
$('#password').on('keydown', function (e) {
|
|
if (e.keyCode === 13) doLogin();
|
|
});
|
|
|
|
$('#login-btn').on('click', doLogin);
|
|
|
|
function doLogin() {
|
|
var username = $.trim($('#username').val());
|
|
var password = $('#password').val();
|
|
|
|
if (!username) { showMsg('请输入账号', 'error'); return; }
|
|
if (!password) { showMsg('请输入密码', 'error'); return; }
|
|
if (!sliderToken) { showMsg('请先完成滑块验证', 'error'); return; }
|
|
|
|
$.ajax({
|
|
url: BASE_URL + 'auth/login.php',
|
|
method: 'POST',
|
|
dataType: 'json',
|
|
headers: { 'X-Requested-With': 'XMLHttpRequest' },
|
|
data: { username: username, password: password, slider_token: sliderToken }
|
|
}).done(function (resp) {
|
|
if (resp.code === 0) {
|
|
showMsg('登录成功,正在跳转...', 'success');
|
|
setTimeout(function () {
|
|
location.href = 'dashboard.html';
|
|
}, 500);
|
|
} else {
|
|
showMsg(resp.msg || '登录失败', 'error');
|
|
slider.reset();
|
|
sliderToken = null;
|
|
$('#login-btn').prop('disabled', true);
|
|
}
|
|
}).fail(function () {
|
|
showMsg('网络错误,请重试', 'error');
|
|
});
|
|
}
|
|
|
|
function showMsg(msg, type) {
|
|
$('#login-msg').attr('class', 'login-msg ' + type).text(msg);
|
|
}
|
|
|
|
// 找回密码弹窗
|
|
$('#btn-forgot').on('click', function () {
|
|
var idx = layer.open({
|
|
type: 1,
|
|
title: '找回密码',
|
|
area: ['380px', 'auto'],
|
|
content:
|
|
'<div style="padding:20px 24px;">' +
|
|
' <div class="form-item" style="margin-bottom:14px;">' +
|
|
' <label>登录账号</label>' +
|
|
' <input type="text" id="f-username" style="width:100%;height:38px;border:1px solid #d9dee8;border-radius:4px;padding:0 10px;" placeholder="请输入登录账号">' +
|
|
' </div>' +
|
|
' <div class="form-item" style="margin-bottom:14px;">' +
|
|
' <label>联系邮箱</label>' +
|
|
' <input type="text" id="f-email" style="width:100%;height:38px;border:1px solid #d9dee8;border-radius:4px;padding:0 10px;" placeholder="请输入注册邮箱">' +
|
|
' </div>' +
|
|
' <div id="f-msg" style="display:none;padding:8px 10px;border-radius:4px;font-size:13px;margin-bottom:10px;"></div>' +
|
|
'</div>',
|
|
btn: ['提交', '取消'],
|
|
yes: function (idx) {
|
|
var username = $.trim($('#f-username').val());
|
|
var email = $.trim($('#f-email').val());
|
|
if (!username || !email) {
|
|
$('#f-msg').attr('style', 'display:block;padding:8px 10px;border-radius:4px;font-size:13px;margin-bottom:10px;background:#fdecea;color:#c0392b;border:1px solid #f5c6cb;').text('请填写账号和邮箱');
|
|
return;
|
|
}
|
|
$.ajax({
|
|
url: BASE_URL + 'auth/forgot.php',
|
|
method: 'POST',
|
|
dataType: 'json',
|
|
headers: { 'X-Requested-With': 'XMLHttpRequest' },
|
|
data: { username: username, contact_email: email }
|
|
}).done(function (resp) {
|
|
var color = resp.code === 0 ? '#27ae60;background:#eafaf1;border:1px solid #a9dfbf' : '#c0392b;background:#fdecea;border:1px solid #f5c6cb';
|
|
$('#f-msg').attr('style', 'display:block;padding:8px 10px;border-radius:4px;font-size:13px;margin-bottom:10px;color:' + color).text(resp.msg || '操作完成');
|
|
if (resp.code === 0) {
|
|
setTimeout(function () { layer.close(idx); }, 1500);
|
|
}
|
|
}).fail(function () {
|
|
$('#f-msg').attr('style', 'display:block;padding:8px 10px;border-radius:4px;font-size:13px;margin-bottom:10px;color:#c0392b;background:#fdecea;border:1px solid #f5c6cb;').text('网络错误,请重试');
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|