login.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // +----------------------------------------------------------------------
  2. // | ThinkAdmin
  3. // +----------------------------------------------------------------------
  4. // | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
  5. // +----------------------------------------------------------------------
  6. // | 官方网站: https://thinkadmin.top
  7. // +----------------------------------------------------------------------
  8. // | 开源协议 ( https://mit-license.org )
  9. // | 免费声明 ( https://thinkadmin.top/disclaimer )
  10. // +----------------------------------------------------------------------
  11. // | gitee 代码仓库:https://gitee.com/zoujingli/ThinkAdmin
  12. // | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
  13. // +----------------------------------------------------------------------
  14. $(function () {
  15. window.$body = $('body');
  16. /*! 登录界面背景切换 */
  17. $('[data-bg-transition]').each(function (i, el) {
  18. el.idx = 0, el.imgs = [], el.SetBackImage = function (css) {
  19. window.setTimeout(function () {
  20. $(el).removeClass(el.imgs.join(' ')).addClass(css)
  21. }, 1000) && $body.removeClass(el.imgs.join(' ')).addClass(css)
  22. }, el.lazy = window.setInterval(function () {
  23. el.imgs.length > 0 && el.SetBackImage(el.imgs[++el.idx] || el.imgs[el.idx = 0]);
  24. }, 5000) && el.dataset.bgTransition.split(',').forEach(function (image) {
  25. layui.img(image, function (img, cssid, style) {
  26. style = document.createElement('style'), cssid = 'LoginBackImage' + (el.imgs.length + 1);
  27. style.innerHTML = '.' + cssid + '{background-image:url("' + encodeURI(image) + '")!important}';
  28. document.head.appendChild(style) && el.imgs.push(cssid);
  29. });
  30. });
  31. });
  32. /*! 后台加密登录处理 */
  33. $body.find('form[data-login-form]').each(function (idx, form) {
  34. require(['md5'], function (md5) {
  35. $(form).vali(function (data) {
  36. data['password'] = md5.hash(md5.hash(data['password']) + data['uniqid']);
  37. $.form.load(location.href, data, "post", function (ret) {
  38. if (parseInt(ret.code) !== 1) {
  39. $(form).find('[data-captcha]').trigger('click');
  40. $(form).find('.verify.layui-hide').removeClass('layui-hide');
  41. }
  42. }, null, null, 'false');
  43. });
  44. });
  45. });
  46. /*! 登录图形验证码刷新 */
  47. $body.on('click', '[data-captcha]', function () {
  48. var $that = $(this), $form = $that.parents('form');
  49. var action = this.dataset.captcha || location.href;
  50. if (action.length < 5) return $.msg.tips('请设置验证码请求及验证地址');
  51. var type = this.dataset.captchaType || 'captcha-type', token = this.dataset.captchaToken || 'captcha-token';
  52. var uniqid = this.dataset.fieldUniqid || 'captcha-uniqid', verify = this.dataset.fieldVerify || 'captcha-verify';
  53. $.form.load(action, {type: type, token: token}, 'post', function (ret) {
  54. if (ret.code) {
  55. $that.html('<img alt="img" src="' + ret.data.image + '"><input type="hidden">').find('input').attr('name', uniqid).val(ret.data.uniqid || '');
  56. $form.find('[name="' + verify + '"]').attr('value', ret.data.code || '').val(ret.data.code || '');
  57. return (ret.data.code || $form.find('.verify.layui-hide').removeClass('layui-hide')), false;
  58. }
  59. }, false);
  60. });
  61. /*! 初始化登录图形 */
  62. $('[data-captcha]').map(function () {
  63. $(this).trigger('click');
  64. });
  65. });