login.ftl 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <#assign path="${request.contextPath}"/>
  5. <meta charset="utf-8">
  6. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  9. <meta http-equiv="Cache-Control" content="no-siteapp"/>
  10. <link rel="Bookmark" href="/favicon.ico" >
  11. <link rel="Shortcut Icon" href="/favicon.ico" />
  12. <link href="${path}/common/static/h-ui/css/H-ui.min.css" rel="stylesheet" type="text/css" />
  13. <link href="${path}/common/static/h-ui.admin/css/H-ui.login.css" rel="stylesheet" type="text/css" />
  14. <link href="${path}/common/static/h-ui.admin/css/style.css" rel="stylesheet" type="text/css" />
  15. <link href="${path}/common/css/login/login.css" rel="stylesheet" type="text/css" />
  16. <link href="${path}/common/lib/Hui-iconfont/1.0.8/iconfont.css" rel="stylesheet" type="text/css" />
  17. <!--[if IE 6]>
  18. <script type="text/javascript" src="${path}/common/lib/DD_belatedPNG_0.0.8a-min.js" ></script>
  19. <script type="text/javascript" src="${path}/common/js/common/common.js"></script>
  20. <script>DD_belatedPNG.fix('*');</script>
  21. <![endif]-->
  22. <title>售后实时跟踪系统 - RST</title>
  23. <script language="JavaScript" type="text/javascript">
  24. var root_path = "${path}";
  25. /*用于判断是否有父级页面,如果有就强制跳转*/
  26. function myfun(){
  27. var ifmObj = window.parent.PARENT_IS_LOGIN;
  28. if(ifmObj != null && ifmObj != "" && typeof(ifmObj) !="undefined" && ifmObj != undefined && ifmObj == 1){
  29. parent.location.href = "${path}/_login";
  30. }
  31. }
  32. window.onload = myfun;
  33. </script>
  34. </head>
  35. <body>
  36. <!--<div class="header"></div>-->
  37. <div class="loginWraper">
  38. <div id="loginform" class="loginBox">
  39. <form class="form form-horizontal" method="post">
  40. <div class="row cl">
  41. <div class="formControls col-8 col-offset-3">
  42. <input id="login_name" autocomplete="off" name="login_name" type="text" placeholder="请输入账户" class="input-text size-L user_count">
  43. </div>
  44. </div>
  45. <div class="row cl">
  46. <div class="formControls col-8 col-offset-3">
  47. <input id="login_pwd" autocomplete="off" name="login_pwd" type="password" placeholder="请输入密码" class="input-text size-L pass_word">
  48. </div>
  49. </div>
  50. <div class="row cl">
  51. <div class="formControls col-8 col-offset-3">
  52. <input autocomplete="off" class="input-text size-L validate" id="login_code" name="login_code" type="text" placeholder="验证码">
  53. <img src="${path}/security_code?len=4" style="width: 100px;" id="next-code-img"> <a id="kanbuq" href="javascript:;">换一张</a> </div>
  54. </div>
  55. <div class="row">
  56. <div class="formControls col-8 col-offset-3">
  57. <label for="online">
  58. <input type="checkbox" name="online" id="remember_me" value="">&nbsp;&nbsp;使我保持登录状态</label>
  59. </div>
  60. </div>
  61. <div class="row loginbox_btn">
  62. <div class="formControls col-8 col-offset-3">
  63. <input name="" id="login-btn" type="submit" class="btn btn-block btn-primary radius size-L my-btn-login" value="&nbsp;登&nbsp;&nbsp;&nbsp;&nbsp;录&nbsp;">
  64. </div>
  65. </div>
  66. </form>
  67. </div>
  68. </div>
  69. <script type="text/javascript" src="${path}/common/js/common/common.js"></script>
  70. <script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/jquery.min.js"></script>
  71. <script type="text/javascript" src="${path}/common/static/h-ui/js/H-ui.js"></script>
  72. <script type="text/javascript" src="${path}/common/lib/layer/2.4/layer.js"></script>
  73. <script type="text/javascript" src="${path}/common/lib/md5/md5.js"></script>
  74. <script>
  75. /*实时监听文本框-- 员工编号*/
  76. document.getElementById("login_code").addEventListener("input", function(){
  77. $("#login_code").val(Trim(this.value));
  78. });
  79. // 密码
  80. var pwd = null;
  81. // 换一张验证码实现
  82. $("#kanbuq").click(function() {
  83. nextVerifyCode();
  84. });
  85. function nextVerifyCode() {
  86. var url = $("#next-code-img").attr("src");
  87. $("#next-code-img").attr("src", url.split("?")[0] + "?len=4&v=" + Math.ceil(Math.random()*35));
  88. }
  89. // 执行登录
  90. $("#login-btn").click(function(){
  91. var login_name = $("#login_name").val();
  92. var re = /^[a-zA-z]\w{5,16}$/;
  93. if (!(re.test(login_name))) {
  94. layer.msg('用户名必须以字母、数字、下划线组成,字母开头,6-16位!',{icon: 5,time:3000});
  95. return false;
  96. }
  97. var login_pwd = $("#login_pwd").val();
  98. if (!(re.test(login_pwd))) {
  99. layer.msg('密码必须以字母、数字、下划线组成,字母开头,6-16位!',{icon: 5,time:3000});
  100. return false;
  101. }
  102. var login_code = $("#login_code").val();
  103. if (login_code.length != 4) {
  104. layer.msg('验证码必须为4位!',{icon: 5,time:2000});
  105. return false;
  106. }
  107. // 获取盐值
  108. $.post(root_path + "/get_salt",{"login_name":$("#login_name").val()},function(result){
  109. if (result.resultCode != 200 || result.returnCode != 200) {
  110. layer.msg('账户信息有误,请联系管理员!',{icon: 5,time:2000});
  111. nextVerifyCode();
  112. return false;
  113. }
  114. // 执行登录
  115. pwd = hex_md5(login_pwd + result.returnMsg.salt);
  116. $.post(root_path + "/login",{"login_name":login_name, "login_pwd":pwd, "login_code":login_code, "remember_me":$("#remember_me")[0].checked + ""},function(result){
  117. if (result.returnCode == 400) {
  118. layer.msg('验证码有误,请重新输入!',{icon: 5,time:3000});
  119. nextVerifyCode();
  120. return false;
  121. } else if (result.returnCode != 200) {
  122. layer.msg('登录有误,请重试!',{icon: 5,time:3000});
  123. nextVerifyCode();
  124. return false;
  125. } else {
  126. // 登陆成功,判断用户浏览器
  127. if (!checkClientType()) {
  128. // 电脑端
  129. } else {
  130. // 手机端
  131. }
  132. window.location.href = root_path + "/admin/sys/_index";
  133. }
  134. });
  135. });
  136. return false;
  137. });
  138. // 判断客户端类型
  139. function checkClientType() {
  140. var sUserAgent = navigator.userAgent.toLowerCase();
  141. var isIpad = sUserAgent.match(/ipad/i) == "ipad";
  142. var isIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
  143. var isAndroid = sUserAgent.match(/android/i) == "android";
  144. if (isIpad || isIphoneOs || isAndroid) {
  145. return 1;
  146. } else {
  147. return 0;
  148. }
  149. }
  150. </script>
  151. </body>
  152. </html>