loginJiangjin.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <!DOCTYPE html>
  2. <html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  6. <title>登录智慧水务系统-认证系统</title>
  7. <meta name="description" content="智慧水务系统-认证系统">
  8. <meta name="referrer" content="no-referrer" />
  9. <meta name="referrer" content="never">
  10. <meta name="referrer" content="same-origin" />
  11. <link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
  12. <link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
  13. <link href="../static/css/style.min.css" th:href="@{/css/style.min.css}" rel="stylesheet"/>
  14. <link href="../static/css/login.min.css" th:href="@{/css/login.min.css}" rel="stylesheet"/>
  15. <link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=4.7.5}" rel="stylesheet"/>
  16. <script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
  17. <!-- 360浏览器急速模式 -->
  18. <meta name="renderer" content="webkit">
  19. <!-- 避免IE使用兼容模式 -->
  20. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  21. <link rel="shortcut icon" href="../static/favicon.ico" th:href="@{favicon.ico}"/>
  22. <style type="text/css">label.error { position:inherit; }</style>
  23. <script>
  24. if(window.top!==window.self){alert('未登录或登录超时。请重新登录');window.top.location=window.location};
  25. </script>
  26. <script th:inline="javascript"> var ctx = [[@{/}]]; var captchaType = [[${captchaType}]]; </script>
  27. <!--[if lte IE 8]><script>window.location.href=ctx+'html/ie.html';</script><![endif]-->
  28. <!-- 全局js -->
  29. <script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
  30. <script src="../static/ajax/libs/validate/jquery.validate.min.js" th:src="@{/ajax/libs/validate/jquery.validate.min.js}"></script>
  31. <script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script>
  32. <script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
  33. <script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=4.7.5}"></script>
  34. <script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
  35. <style type="text/css">
  36. .hClass{
  37. position:absolute;
  38. left:3%;
  39. top:4%;
  40. font-size: 25px;
  41. }
  42. .gradient-text {
  43. font-size: 40px;
  44. font-weight: bold;
  45. background: -webkit-linear-gradient( white, rgb(188,214,249),white); /* Chrome, Safari */
  46. background: linear-gradient( white, rgb(188,214,249),white); /* 标准语法 */
  47. -webkit-background-clip: text; /* Chrome, Safari */
  48. background-clip: text;
  49. -webkit-text-fill-color: transparent; /* Chrome, Safari */
  50. color: transparent; /* 标准语法, 如果背景剪辑支持的好 */
  51. -webkit-font-smoothing: antialiased; /* 针对WebKit浏览器 */
  52. -moz-osx-font-smoothing: grayscale; /* 针对Firefox浏览器 */
  53. text-rendering: optimizeLegibility; /* 更一般的CSS属性 */
  54. /*font-family: 'Arial Italic', 'Arial', sans-serif!important;*/
  55. /*font-style: italic;*/
  56. }
  57. .divHead{
  58. font-size: 20px;
  59. position: absolute!important;
  60. top: 30px!important;
  61. left: 15%;
  62. color: #1a1a1a;
  63. }
  64. .divFoot{
  65. position: absolute!important;
  66. bottom: -20px!important;
  67. padding-bottom: 20px;
  68. left: 0;
  69. width: 100%!important;
  70. font-size: 10px!important;
  71. text-align: center;
  72. color: rgb(153,169,189);
  73. }
  74. .loginInput:focus{
  75. border: 2px dashed #458BF5;
  76. color: #458BF5;
  77. }
  78. body{
  79. background-color: #00173A;
  80. }
  81. .video-bg{position:absolute;top: 0;left:0;/* bottom: 0; */min-width: 100%;min-height: 100%;z-index:-9999;}
  82. </style>
  83. </head>
  84. <video class="video-bg" autoplay loop muted><source th:src="@{img/yining/loginVideo.mp4}" type="video/mp4">
  85. </video>
  86. <body class="signin">
  87. <div class="signinpanel">
  88. <h4 class="hClass">
  89. <img alt="[ 水务系统 ]" src="../static/img/jiangjin/logo.png" th:src="@{/img/jiangjin/logo.png}"
  90. style="width: 821px;height: 76px">
  91. </h4>
  92. <div class="row" style="height: 500px;">
  93. <div class="col-sm-7">
  94. <div class="signin-info">
  95. <div class="logopanel m-b">
  96. <h1></h1>
  97. </div>
  98. <div class="m-b"></div>
  99. <strong th:if="${isAllowRegister}">还没有账号? <a th:href="@{/register}">立即注册&raquo;</a></strong>
  100. </div>
  101. </div>
  102. <div class="col-sm-5" style="height: 500px;width:400px;position: absolute;right: 20%;">
  103. <div class="divHead">
  104. <p>Hello~</p>
  105. <p style="font-weight: bold!important;font-size: 30px">欢迎您登录</p>
  106. </div>
  107. <form id="signupForm" autocomplete="off" style="height: 520px!important;width:380px;padding-top: 100px;border-radius:24px;background-color: rgb(197,214,232);">
  108. <p style="position: absolute;right: 40px;top: 10px;" onclick="qiehuan()">APP下载→</p>
  109. <img class="leftTwoIcon" alt="[ APP下载二维码 ]" th:src="${codeUrl}" src="https://140.246.183.164:9000/base/apply/apk"
  110. style="display: inline-block;vertical-align:middle;position: absolute;right: 20px;top: 10px;;margin-left: 1em;width: 20px;height: 20px" onclick="qiehuan()">
  111. <input style="border-radius: 12px!important;margin-top: 40px;margin-left:10px;margin-bottom: 20px;width: 300px;height: 56px!important;" type="text" name="username" class="form-control uname" placeholder="用户名" />
  112. <!--<input style="border-radius: 12px!important; margin-bottom: 20px;margin-left:10px;width: 300px;height: 56px!important;" type="password" id="password" name="password" class="form-control pword" hidden autocomplete="off" placeholder="密码" />-->
  113. <input type="text" style="border-radius: 12px!important; margin-bottom: -15px;margin-left:10px;width: 300px;height: 56px!important;" id="passwordDisc" class="form-control pword" placeholder="密码"
  114. oncontextmenu="return false;" autocomplete="off" >
  115. <!--密码真实保存位置-->
  116. <input type="text" style="visibility: hidden;border: 0;height: 0;width: 1px;padding: 0;margin: 0" name="password"
  117. id="password" placeholder="密码">
  118. <div class="row m-t" th:if="${captchaEnabled==true}" style="margin-bottom: 10px">
  119. <div class="col-xs-6">
  120. <input style="border-radius: 12px!important;margin-left:10px;width: 130px;height: 56px!important;" type="text" name="validateCode" class="form-control code" placeholder="验证码" maxlength="5" />
  121. </div>
  122. <div class="col-xs-6">
  123. <a style="" href="javascript:void(0);" title="点击更换验证码">
  124. <img th:src="@{/captcha/captchaImage(type=${captchaType})}" class="imgcode" style="border-radius: 12px;width: 135px;height: 56px"/>
  125. </a>
  126. </div>
  127. </div>
  128. <!--<div class="checkbox-custom" style="width: 100%!important;margin-bottom: 15px;margin-left: 10px" th:if="${isRemembered}" th:classappend="${captchaEnabled==false} ? 'm-t'">-->
  129. <!--<input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme">记住密码</label>-->
  130. <!--<a style="margin-left: 160px" href="javascript:void(0)" onclick="forgetpassword()" >忘记密码&raquo;</a></strong>-->
  131. <!--</div>-->
  132. <button class="btn btn-success btn-block" style="border-radius: 12px!important;width: 300px!important;height:50px!important;margin-left: 10px;margin-top: 0;
  133. color: #FFFFFF!important;" id="btnSubmit" data-loading="正在验证登录,请稍候...">登录</button>
  134. </form>
  135. <div class="divFoot">
  136. <div>
  137. <br>
  138. </div>
  139. </div>
  140. <form id="signupFormCode" autocomplete="off" style="display:none;height: 520px!important;width:380px;padding-top: 100px;border-radius:24px;background-color: rgb(197,214,232);">
  141. <p style="position: absolute;right: 40px;top: 10px;" onclick="qiehuan()">返回账密登录→</p>
  142. <img class="leftTwoIcon" alt="[ APP下载二维码 ]" th:src="${codeUrl}" src="https://140.246.183.164:9000/base/apply/apk"
  143. style="display: inline-block;vertical-align:middle;position: absolute;right: 45px;top: 100px;;margin-left: 1em;width: 300px;height: 320px" onclick="qiehuan()">
  144. </form>
  145. </div>
  146. </div>
  147. </div>.
  148. <script type="text/javascript">
  149. var passwordDisc = document.getElementById("passwordDisc");
  150. var password = document.getElementById("password");
  151. // 键盘按下执行,主要用于删除操作
  152. passwordDisc.addEventListener("keydown", function (event) {
  153. // 后面事件会改变,所以先记录选择的文本坐标
  154. this.selectStartIndex = this.selectionStart;
  155. this.selectEndIndex = this.selectionEnd;
  156. if (event.key === 'Backspace') { // 如果是退格键
  157. if (this.selectionStart === this.selectionEnd) {// 未选择文本
  158. var str1 = password.value.substring(0, this.selectionStart - 1);
  159. var str2 = password.value.substring(this.selectionStart);
  160. password.value = str1 + str2;
  161. } else { // 选择了文本
  162. var str1 = password.value.substring(0, this.selectionStart);
  163. var str2 = password.value.substring(this.selectionEnd);
  164. password.value = str1 + str2;
  165. }
  166. } else if (event.key === 'Delete') { // 如果是删除键
  167. if (this.selectionStart === this.selectionEnd) {// 未选择文本
  168. var str1 = password.value.substring(0, this.selectionStart);
  169. var str2 = password.value.substring(this.selectionStart + 1);
  170. password.value = str1 + str2;
  171. } else { // 选择了文本
  172. var str1 = password.value.substring(0, this.selectionStart);
  173. var str2 = password.value.substring(this.selectionEnd);
  174. password.value = str1 + str2;
  175. }
  176. }
  177. });
  178. // 输入事件,保存密码
  179. passwordDisc.addEventListener("input", function (event) {
  180. if ((event.data || event.data != null || event.inputType === 'insertFromPaste') && event.inputType !== 'insertCompositionText') {
  181. // 输入有数据或者是粘贴操作,并且不是中文输入
  182. var data = event.data || event.data != null ? event.data : this.pasteString;
  183. // 除ascii里的都替换为空,避免粘贴有其他符号
  184. data = data.replace(/[^\x00-\x7e]/g, '');
  185. var str1 = password.value.substring(0, this.selectStartIndex);
  186. var str2 = password.value.substring(this.selectEndIndex);
  187. password.value = str1 + data + str2;
  188. }
  189. // 文本框密文显示
  190. passwordDisc.value = password.value.replace(/./g, '*');
  191. // console.log(password.value);
  192. })
  193. // 获取粘贴板的文本数据
  194. passwordDisc.addEventListener("paste", function (event) {
  195. this.pasteString = event.clipboardData.getData('text/plain');
  196. })
  197. var cordFlag = false;
  198. $("#password").val("");
  199. function qiehuan() {
  200. if(!cordFlag) {
  201. $(".divHead").hide(100);
  202. $("#signupForm").hide(100);
  203. $("#divFoot").hide(100);
  204. $("#signupFormCode").show(300);
  205. cordFlag = true;
  206. }else{
  207. $(".divHead").show(300);
  208. $("#signupForm").show(300);
  209. $("#divFoot").show(300);
  210. $("#signupFormCode").hide(100);
  211. cordFlag = false;
  212. }
  213. }
  214. </script>
  215. </body>
  216. </html>