signin.js 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. SPA_RESOLVE_INIT = function ($el, $router) {
  2. const html = document.querySelector('html');
  3. const body = document.querySelector('body');
  4. html.className = 'index';
  5. body.className = 'mdui-theme-primary-blue mdui-theme-accent-light-blue index';
  6. mdui.JQ($el).empty();
  7. mdui.JQ($el).append(`
  8. <header class="mdui-appbar mdui-shadow-0">
  9. <div class="mdui-toolbar mdui-color-theme">
  10. <a class="mdui-typo-headline" href="#">CloudSQL Admin Panel</a>
  11. <div class="mdui-toolbar-spacer"></div>
  12. <a class="mdui-btn mdui-ripple mdui-ripple-white" href="#/signin">登陆</a>
  13. <a class="mdui-btn mdui-ripple mdui-ripple-white" href="#/signup">注册</a>
  14. </div>
  15. </header>
  16. <main style="height: 85%;">
  17. <div class="mdui-container main-section">
  18. <h2 class="mdui-typo-display-1 main-section-tittle">用户登录</h2>
  19. <div class="mdui-container mdui-col-md-8 mdui-center main-sub-section">
  20. <div class="mdui-col-md-6 mdui-center mdui-textfield main-input-row">
  21. <i class="mdui-icon material-icons">person</i>
  22. <input class="mdui-textfield-input" name="userid" type="text" placeholder="用户名/邮箱" />
  23. </div>
  24. <div class="mdui-col-md-6 mdui-center mdui-textfield main-input-row">
  25. <i class="mdui-icon material-icons">lock</i>
  26. <input class="mdui-textfield-input" name="password" type="password" placeholder="密码" />
  27. </div>
  28. <div class="mdui-col-md-6 mdui-center mdui-textfield main-input-row captcha-row">
  29. <img src="http://admin.cloudsql.1473.cn/v1/captcha?${new Date().getTime()}">
  30. <input class="mdui-textfield-input" name="captcha" type="text" placeholder="验证码" />
  31. </div>
  32. <div class="mdui-col-md-6 mdui-center mdui-typo main-a-row">
  33. <a href="#/signup">还没有账户,点击注册</a>
  34. </div>
  35. <div class="mdui-col-md-6 mdui-center main-button-row">
  36. <button class="mdui-btn mdui-btn-block mdui-color-theme-accent">登陆</button>
  37. </div>
  38. </div>
  39. </div>
  40. </main>
  41. <footer>
  42. <div class="footer-copyright">Copyright © 2016 - 2017 <a href="/">CloudSQL</a> All rights reserved.</div>
  43. </footer>
  44. `)
  45. //验证码刷新逻辑
  46. const captchaImg = document.querySelector('.captcha-row img');
  47. Utils.handleEvent('click', {
  48. onElement: captchaImg,
  49. withCallback: function () {
  50. this.src = `http://admin.cloudsql.1473.cn/v1/captcha?${new Date().getTime()}`; //加入当前时间以避免缓存
  51. }
  52. });
  53. /* captchaImg.addEventListener('click', function () {
  54. this.src = `http://admin.cloudsql.1473.cn/v1/captcha?${new Date().getTime()}`; //加入当前时间以避免缓存
  55. }, false); */
  56. //登陆逻辑
  57. const submitButton = document.querySelector('.main-button-row button');
  58. Utils.handleEvent('load', {
  59. onElement: submitButton,
  60. withCallback: function () {
  61. let signInUrl = 'http://admin.cloudsql.1473.cn/v1/signin',
  62. userId = document.querySelector('input[name=userid]').value,
  63. password = document.querySelector('input[name=password]').value,
  64. captchaCode = document.querySelector('input[name=captcha]').value,
  65. postData = `userId=${userId}&password=${password}&captcha=${captchaCode}`;
  66. Utils.ajaxPost(signInUrl, postData, function (response) {
  67. if (response.status == 'signedin') {
  68. window.location.hash = response.url;
  69. } else {
  70. mdui.snackbar({
  71. message: response.info
  72. });
  73. }
  74. })
  75. }
  76. });
  77. }