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