|
@@ -3,8 +3,10 @@
|
|
<head>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
|
- <title>登录管理系统</title>
|
|
|
|
|
|
+ <title>延吉市应急指挥平台</title>
|
|
<meta name="description" content="后台管理框架">
|
|
<meta name="description" content="后台管理框架">
|
|
|
|
+ <link href="../static/yanji/css/yjyj_dl.css" th:href="@{/yanji/css/yjyj_dl.css}" rel="stylesheet"/>
|
|
|
|
+ <link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
|
|
<link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
|
|
<link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
|
|
<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
|
<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
|
<link href="../static/css/style.css" th:href="@{/css/style.css}" rel="stylesheet"/>
|
|
<link href="../static/css/style.css" th:href="@{/css/style.css}" rel="stylesheet"/>
|
|
@@ -14,7 +16,7 @@
|
|
<meta name="renderer" content="webkit">
|
|
<meta name="renderer" content="webkit">
|
|
<!-- 避免IE使用兼容模式 -->
|
|
<!-- 避免IE使用兼容模式 -->
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
- <link rel="shortcut icon" href="../static/sooka.ico" th:href="@{sooka.ico}"/>
|
|
|
|
|
|
+ <!--<link rel="shortcut icon" href="../static/sooka.ico" th:href="@{sooka.ico}"/>-->
|
|
<style type="text/css">label.error {
|
|
<style type="text/css">label.error {
|
|
position: inherit;
|
|
position: inherit;
|
|
}</style>
|
|
}</style>
|
|
@@ -33,58 +35,68 @@
|
|
|
|
|
|
</style>
|
|
</style>
|
|
</head>
|
|
</head>
|
|
-<body class="signin">
|
|
|
|
-<div class="signinpanel">
|
|
|
|
- <div class="row" style="width: 360px;display: block;margin: 0px auto;">
|
|
|
|
- <!--<div class="col-sm-7">
|
|
|
|
- <div class="signin-info">
|
|
|
|
- <div class="logopanel m-b">
|
|
|
|
- <h1><img alt="[ lei_wang ]" src="../static/sooka.png" th:src="@{/sooka.png}"></h1>
|
|
|
|
- </div>
|
|
|
|
- <div class="m-b"></div>
|
|
|
|
- <h4>欢迎使用 </h4>
|
|
|
|
- <ul class="m-b">
|
|
|
|
- <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> SpringBoot</li>
|
|
|
|
- <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Mybatis</li>
|
|
|
|
- <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Shiro</li>
|
|
|
|
- <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Thymeleaf</li>
|
|
|
|
- <li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Bootstrap</li>
|
|
|
|
- </ul>
|
|
|
|
- <strong th:if="${@config.getKey('sys.account.registerUser')}">还没有账号? <a th:href="@{/register}">立即注册»</a></strong>
|
|
|
|
- </div>login-background.jpg
|
|
|
|
- </div>-->
|
|
|
|
- <div style=" font-size: 36px; font-weight: bold; margin-bottom: 20px;color: #008fbd;">智慧养殖后台管理系统</div>
|
|
|
|
- <div>
|
|
|
|
- <form id="signupForm" autocomplete="off">
|
|
|
|
- <h4 style=" color: #333;margin-bottom: 20px; border-bottom: 2px solid #1269ff; display: block; width: fit-content; padding-bottom: 5px;">请登录</h4>
|
|
|
|
- <input type="text" name="username" class="form-control uname" placeholder="用户名" value=""/>
|
|
|
|
- <input type="password" name="password" class="form-control pword" placeholder="密码" value=""/>
|
|
|
|
- <div class="row m-t" th:if="${captchaEnabled==true}">
|
|
|
|
- <div class="col-xs-6">
|
|
|
|
- <input type="text" name="validateCode" class="form-control code" placeholder="验证码"
|
|
|
|
- maxlength="5"/>
|
|
|
|
- </div>
|
|
|
|
- <div class="col-xs-6">
|
|
|
|
- <a href="javascript:void(0);" title="点击更换验证码">
|
|
|
|
- <img th:src="@{captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>
|
|
|
|
- </a>
|
|
|
|
- </div>
|
|
|
|
|
|
+<body>
|
|
|
|
+<div class="login-box" id="demo">
|
|
|
|
+ <canvas id="canvas" width="100%" height="100%"></canvas>
|
|
|
|
+</div>
|
|
|
|
+<div class="dl_con clearfix">
|
|
|
|
+ <div class="dl_left fl">
|
|
|
|
+ <img th:src="@{/yanji/images/dl_bg.png}" class="dl_bg"/>
|
|
|
|
+ <img th:src="@{/yanji/images/dl_map.png}" class="dl_map"/>
|
|
|
|
+ <div class="dl_jk dl_btn">
|
|
|
|
+ <div class="dl_y"></div>
|
|
|
|
+ <img th:src="@{/yanji/images/dl_jk.png}"/>
|
|
|
|
+ <h4>监控</h4>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="dl_fh dl_btn">
|
|
|
|
+ <div class="dl_y"></div>
|
|
|
|
+ <img th:src="@{/yanji/images/dl_fh.png}"/>
|
|
|
|
+ <h4>防火</h4>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="dl_jy dl_btn">
|
|
|
|
+ <div class="dl_y"></div>
|
|
|
|
+ <img th:src="@{/yanji/images/dl_jy.png}"/>
|
|
|
|
+ <h4>救援</h4>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="dl_right fr">
|
|
|
|
+ <h2>延吉市应急指挥平台</h2>
|
|
|
|
+ <form id="signupForm" autocomplete="off">
|
|
|
|
+ <label>
|
|
|
|
+ <input type="text" name="username" class="dl_yhm" placeholder="请输入用户名" value=""/>
|
|
|
|
+ </label>
|
|
|
|
+ <label>
|
|
|
|
+ <input type="password" name="password" class="dl_mm" placeholder="请输入密码" value=""/>
|
|
|
|
+ </label>
|
|
|
|
+ <div class="row m-t" th:if="${captchaEnabled==true}">
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
+ <input type="text" name="validateCode" class="form-control code" placeholder="验证码"
|
|
|
|
+ maxlength="5"/>
|
|
</div>
|
|
</div>
|
|
- <div class="checkbox-custom" th:classappend="${captchaEnabled==false} ? 'm-t'">
|
|
|
|
- <input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme"
|
|
|
|
- style=" color: #333;">记住我</label>
|
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
+ <a href="javascript:void(0);" title="点击更换验证码">
|
|
|
|
+ <img th:src="@{captcha/captchaImage(type=${captchaType})}" class="imgcode" width="85%"/>
|
|
|
|
+ </a>
|
|
</div>
|
|
</div>
|
|
- <button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后..." style="height: 50px">登录</button>
|
|
|
|
- </form>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <div class="checkbox-custom" th:classappend="${captchaEnabled==false} ? 'm-t'">
|
|
|
|
+ <input type="checkbox" id="rememberme" name="rememberme"> <label for="rememberme"
|
|
|
|
+ style=" color: #333;">记住我</label>
|
|
|
|
+ </div>
|
|
|
|
+ <a href="javascript:void(0)" onclick="login()" data-loading="正在验证登录,请稍后...">
|
|
|
|
+ 登录
|
|
|
|
+ <span></span>
|
|
|
|
+ <span></span>
|
|
|
|
+ <span></span>
|
|
|
|
+ <span></span>
|
|
|
|
+ </a>
|
|
|
|
+ <!--<button class="btn btn-success btn-block" id="btnSubmit" data-loading="正在验证登录,请稍后..." style="height: 50px">登录</button>-->
|
|
|
|
+ </form>
|
|
</div>
|
|
</div>
|
|
- <!--<div class="signup-footer">
|
|
|
|
- <div class="pull-left">
|
|
|
|
- © 2020 All Rights Reserved. <br>
|
|
|
|
- </div>
|
|
|
|
- </div>-->
|
|
|
|
</div>
|
|
</div>
|
|
-<script th:inline="javascript"> var ctx = [[@{/}]]; var captchaType = [[${captchaType}]]; </script>
|
|
|
|
|
|
+<script th:inline="javascript">
|
|
|
|
+ var ctx = [[@{/}]];
|
|
|
|
+ var captchaType = [[${captchaType}]]; </script>
|
|
<!-- 全局js -->
|
|
<!-- 全局js -->
|
|
<script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
|
|
<script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
|
|
<script src="../static/js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script>
|
|
<script src="../static/js/bootstrap.min.js" th:src="@{/js/bootstrap.min.js}"></script>
|
|
@@ -97,5 +109,112 @@
|
|
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
|
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
|
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js}"></script>
|
|
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js}"></script>
|
|
<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
|
|
<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+ //宇宙特效
|
|
|
|
+ "use strict";
|
|
|
|
+ var canvas = document.getElementById('canvas'),
|
|
|
|
+ ctx1 = canvas.getContext('2d'),
|
|
|
|
+ w = canvas.width = window.innerWidth,
|
|
|
|
+ h = canvas.height = window.innerHeight,
|
|
|
|
+
|
|
|
|
+ hue = 217,
|
|
|
|
+ stars = [],
|
|
|
|
+ count = 0,
|
|
|
|
+ maxStars = 2500;//星星数量
|
|
|
|
+
|
|
|
|
+ var canvas2 = document.createElement('canvas'),
|
|
|
|
+ ctx2 = canvas2.getContext('2d');
|
|
|
|
+ canvas2.width = 100;
|
|
|
|
+ canvas2.height = 100;
|
|
|
|
+ var half = canvas2.width / 2,
|
|
|
|
+ gradient2 = ctx2.createRadialGradient(half, half, 0, half, half, half);
|
|
|
|
+ gradient2.addColorStop(0.025, '#CCC');
|
|
|
|
+ gradient2.addColorStop(0.1, 'hsl(' + hue + ', 61%, 33%)');
|
|
|
|
+ gradient2.addColorStop(0.25, 'hsl(' + hue + ', 64%, 6%)');
|
|
|
|
+ gradient2.addColorStop(1, 'transparent');
|
|
|
|
+
|
|
|
|
+ ctx2.fillStyle = gradient2;
|
|
|
|
+ ctx2.beginPath();
|
|
|
|
+ ctx2.arc(half, half, half, 0, Math.PI * 2);
|
|
|
|
+ ctx2.fill();
|
|
|
|
+
|
|
|
|
+ // End cache
|
|
|
|
+
|
|
|
|
+ function random(min, max) {
|
|
|
|
+ if (arguments.length < 2) {
|
|
|
|
+ max = min;
|
|
|
|
+ min = 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (min > max) {
|
|
|
|
+ var hold = max;
|
|
|
|
+ max = min;
|
|
|
|
+ min = hold;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function maxOrbit(x, y) {
|
|
|
|
+ var max = Math.max(x, y),
|
|
|
|
+ diameter = Math.round(Math.sqrt(max * max + max * max));
|
|
|
|
+ return diameter / 2;
|
|
|
|
+ //星星移动范围,值越大范围越小,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var Star = function() {
|
|
|
|
+
|
|
|
|
+ this.orbitRadius = random(maxOrbit(w, h));
|
|
|
|
+ this.radius = random(60, this.orbitRadius) / 18;
|
|
|
|
+ //星星大小
|
|
|
|
+ this.orbitX = w / 2;
|
|
|
|
+ this.orbitY = h / 2;
|
|
|
|
+ this.timePassed = random(0, maxStars);
|
|
|
|
+ this.speed = random(this.orbitRadius) / 500000;
|
|
|
|
+ //星星移动速度
|
|
|
|
+ this.alpha = random(2, 10) / 10;
|
|
|
|
+
|
|
|
|
+ count++;
|
|
|
|
+ stars[count] = this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Star.prototype.draw = function() {
|
|
|
|
+ var x = Math.sin(this.timePassed) * this.orbitRadius + this.orbitX,
|
|
|
|
+ y = Math.cos(this.timePassed) * this.orbitRadius + this.orbitY,
|
|
|
|
+ twinkle = random(10);
|
|
|
|
+
|
|
|
|
+ if (twinkle === 1 && this.alpha > 0) {
|
|
|
|
+ this.alpha -= 0.05;
|
|
|
|
+ } else if (twinkle === 2 && this.alpha < 1) {
|
|
|
|
+ this.alpha += 0.05;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ ctx1.globalAlpha = this.alpha;
|
|
|
|
+ ctx1.drawImage(canvas2, x - this.radius / 2, y - this.radius / 2, this.radius, this.radius);
|
|
|
|
+ this.timePassed += this.speed;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (var i = 0; i < maxStars; i++) {
|
|
|
|
+ new Star();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function animation() {
|
|
|
|
+ ctx1.globalCompositeOperation = 'source-over';
|
|
|
|
+ ctx1.globalAlpha = 0.5; //尾巴
|
|
|
|
+ ctx1.fillStyle = 'hsla(' + hue + ', 64%, 6%, 2)';
|
|
|
|
+ ctx1.fillRect(0, 0, w, h)
|
|
|
|
+
|
|
|
|
+ ctx1.globalCompositeOperation = 'lighter';
|
|
|
|
+ for (var i = 1, l = stars.length; i < l; i++) {
|
|
|
|
+ stars[i].draw();
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ window.requestAnimationFrame(animation);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ animation();
|
|
|
|
+</script>
|
|
|
|
+
|
|
</body>
|
|
</body>
|
|
</html>
|
|
</html>
|