login.html 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. {include file="common/meta" /}
  5. <style type="text/css">
  6. body {
  7. color: #999;
  8. background-color: #f1f4fd;
  9. background-size: cover;
  10. }
  11. a {
  12. color: #444;
  13. }
  14. .login-screen {
  15. max-width: 430px;
  16. padding: 0;
  17. margin: 100px auto 0 auto;
  18. }
  19. .login-screen .well {
  20. border-radius: 3px;
  21. -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
  22. box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
  23. background: rgba(255, 255, 255, 1);
  24. border: none;
  25. overflow: hidden;
  26. padding: 0;
  27. }
  28. @media (max-width: 767px) {
  29. .login-screen {
  30. padding: 0 20px;
  31. }
  32. }
  33. .profile-img-card {
  34. width: 100px;
  35. height: 100px;
  36. display: block;
  37. -moz-border-radius: 50%;
  38. -webkit-border-radius: 50%;
  39. border-radius: 50%;
  40. margin: -93px auto 30px;
  41. border: 5px solid #fff;
  42. }
  43. .profile-name-card {
  44. text-align: center;
  45. }
  46. .login-head {
  47. background: #899fe1;
  48. }
  49. .login-form {
  50. padding: 40px 30px;
  51. position: relative;
  52. z-index: 99;
  53. }
  54. #login-form {
  55. margin-top: 20px;
  56. }
  57. #login-form .input-group {
  58. margin-bottom: 15px;
  59. }
  60. #login-form .form-control {
  61. font-size: 13px;
  62. }
  63. #sms{
  64. display: none;
  65. }
  66. .change_login{
  67. margin: 0 auto;
  68. text-align: center;
  69. padding-top: 20px;
  70. font-size: 20px;
  71. }
  72. #pass_login{
  73. color: #fff;
  74. text-decoration: underline;
  75. cursor:pointer
  76. }
  77. #sms_login{
  78. cursor:pointer;
  79. color:#333;
  80. }
  81. #sms_login:hover,#pass_login:hover{
  82. color: #fff;
  83. text-decoration: underline;
  84. }
  85. #captcha{
  86. margin-top: 20px;
  87. }
  88. #captcha .input-group {
  89. margin-bottom: 15px;
  90. }
  91. </style>
  92. <!--@formatter:off-->
  93. {if $background}
  94. <style type="text/css">
  95. body{
  96. background-image: url('{$background}');
  97. }
  98. </style>
  99. {/if}
  100. <!--@formatter:on-->
  101. <script src="__CDN__/assets/js/jquery.js"></script>
  102. </head>
  103. <body>
  104. <div class="container">
  105. <div class="login-wrapper">
  106. <div class="login-screen">
  107. <div class="well">
  108. <div class="login-head">
  109. <div class="change_login"><span id="pass_login">密码登录</span> | <span id="sms_login">验证码登录</span></div>
  110. <img src="__CDN__/assets/img/login-head.png" style="width:100%;"/>
  111. </div>
  112. <div class="login-form" id="pass">
  113. <img id="profile-img" class="profile-img-card" src="__CDN__/assets/img/avatar.png"/>
  114. <p id="profile-name" class="profile-name-card"></p>
  115. <form action="" method="post" id="login-form">
  116. <!--@AdminLoginFormBegin-->
  117. <div id="errtips" class="hide"></div>
  118. {:token()}
  119. <div class="input-group">
  120. <div class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></div>
  121. <input type="text" class="form-control" id="pd-form-username" placeholder="{:__('Username')}" name="username" autocomplete="off" value="" data-rule="{:__('Username')}:required;username"/>
  122. </div>
  123. <div class="input-group">
  124. <div class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></div>
  125. <input type="password" class="form-control" id="pd-form-password" placeholder="{:__('Password')}" name="password" autocomplete="off" value="" data-rule="{:__('Password')}:required;password"/>
  126. </div>
  127. <!--@CaptchaBegin-->
  128. {if $Think.config.fastadmin.login_captcha}
  129. <div class="input-group">
  130. <div class="input-group-addon"><span class="glyphicon glyphicon-option-horizontal" aria-hidden="true"></span></div>
  131. <input type="text" name="captcha" class="form-control" placeholder="{:__('Captcha')}" data-rule="{:__('Captcha')}:required;length({$Think.config.captcha.length})" autocomplete="off"/>
  132. <span class="input-group-addon" style="padding:0;border:none;cursor:pointer;">
  133. <img src="{:rtrim('__PUBLIC__', '/')}/index.php?s=/captcha" width="100" height="30" onclick="this.src = '{:rtrim('__PUBLIC__', '/')}/index.php?s=/captcha&r=' + Math.random();"/>
  134. </span>
  135. </div>
  136. {/if}
  137. <!--@CaptchaEnd-->
  138. <div class="form-group checkbox">
  139. <label class="inline" for="keeplogin">
  140. <input type="checkbox" name="keeplogin" id="keeplogin" value="1"/>
  141. {:__('Keep login')}
  142. </label>
  143. </div>
  144. <div class="form-group">
  145. <button type="submit" class="btn btn-success btn-lg btn-block" style="background:#708eea;">{:__('Sign in')}</button>
  146. </div>
  147. <!--@AdminLoginFormEnd-->
  148. </form>
  149. </div>
  150. <!-- 验证码登录 -->
  151. <div class="login-form" id="sms">
  152. <img id="profile-img" class="profile-img-card" src="__CDN__/assets/img/avatar.png" />
  153. <p id="profile-name" class="profile-name-card"></p>
  154. <form action="" method="post" id="captcha">
  155. <div id="errtips" class="hide"></div>
  156. {:token()}
  157. <div class="input-group">
  158. <div class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></div>
  159. <input type="text" class="form-control" id="pd-form-mobile" placeholder="{:__('Mobile')}" name="mobile" autocomplete="off" value="" />
  160. <div class="input-group-addon" id="getcaptcha" style="cursor:pointer;"><span>{:__('Get captcha')}</span></div>
  161. </div>
  162. <div class="input-group">
  163. <div class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></div>
  164. <input type="password" class="form-control" id="pd-form-Captcha" placeholder="{:__('Captcha')}" name="captcha" autocomplete="off" value="" />
  165. </div>
  166. <div class="form-group checkbox">
  167. <label class="inline" for="keeplogin">
  168. <input type="checkbox" name="keeplogin" id="keeplogin" value="1"/>
  169. {:__('Keep login')}
  170. </label>
  171. </div>
  172. <div class="form-group">
  173. <button type="submit" class="btn btn-success btn-lg btn-block" style="background:#708eea;">{:__('Sign in')}</button>
  174. </div>
  175. </form>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. <script>
  182. // 切换选项卡
  183. $("#sms_login").click(function(){
  184. $(this).css('display','inline-block').css('text-decoration','underline').css('color','#fff');
  185. $("#pass_login").css('text-decoration','none').css('color','#333');
  186. $("#sms").css('display','block');
  187. $("#pass").css('display','none');
  188. })
  189. $("#pass_login").click(function(){
  190. $(this).css('display','inline-block').css('text-decoration','underline').css('color','#fff');
  191. $("#sms_login").css('text-decoration','none').css('color','#333');
  192. $("#sms").css('display','none');
  193. $("#pass").css('display','block');
  194. })
  195. //手机号失焦
  196. $("#pd-form-mobile").blur(()=>{
  197. let mobile = $("#pd-form-mobile").val()
  198. localStorage.setItem("mobile", mobile);
  199. })
  200. //获取验证码
  201. $("#getcaptcha").click(()=>{
  202. let mobile = $("#pd-form-mobile").val()
  203. let regExp = new RegExp("^1[3578]\\d{9}$");
  204. if(regExp.test(mobile)){
  205. $.post('index/getCaptcha',{mobile:mobile},(res)=>{
  206. console.log(res);
  207. })
  208. }else{
  209. layer.msg('请输入正确的手机号');
  210. }
  211. })
  212. //如果有缓存,读缓存,,,
  213. $(function(){
  214. let mobile = localStorage.getItem("mobile");
  215. if(mobile){
  216. $("#pd-form-mobile").val(mobile)
  217. }
  218. });
  219. </script>
  220. {include file="common/script" /}
  221. </body>
  222. </html>