Files
superlink/static/js/login.js
T
nanguaboss 71c6e8d9c1 v1.0.10
2026-08-03 00:07:01 +08:00

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('网络错误,请重试');
});
}
});
});
});