diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 55aecae..5208a56 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -49,7 +49,7 @@ public class SysLoginController extends BaseController mmap.put("isRemembered", rememberMe); // 是否开启用户注册 mmap.put("isAllowRegister", Convert.toBool(configService.getKey("sys.account.registerUser"), false)); - return "login"; + return "login_v1"; } @PostMapping("/login") diff --git a/ruoyi-admin/src/main/resources/static/css/login.css b/ruoyi-admin/src/main/resources/static/css/login.css index 63a9b01..8b59e39 100644 --- a/ruoyi-admin/src/main/resources/static/css/login.css +++ b/ruoyi-admin/src/main/resources/static/css/login.css @@ -1,89 +1,113 @@ html { - height:100% + height: 100% } + body.signin { - height:auto; - background:url(../img/login-background.jpg) no-repeat center fixed; - -webkit-background-size:cover; - -moz-background-size:cover; - -o-background-size:cover; - background-size:cover + height: auto; + background: url(../img/login-background.jpg) no-repeat center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover } + +/* .signinpanel { - width:750px; - margin:10% auto 0; - color:rgba(255,255,255,.95) + + width: 750px; + margin: 10% auto 0; + !*color: rgba(255, 255, 255, .95)*! } + .signinpanel .logopanel { - float:none; - width:auto; - padding:0; - background:0 0 + float: none; + width: auto; + padding: 0; + background: 0 0 } + .signinpanel .signin-info ul { - list-style:none; - padding:0; - margin:20px 0 + list-style: none; + padding: 0; + margin: 20px 0 } + .signinpanel .form-control { - display:block; - margin-top:15px + display: block; + margin-top: 15px } + .signinpanel .uname { - background:#fff url(../img/user.png) no-repeat 95% center; - color:#333 + background: #fff url(../img/user.png) no-repeat 95% center; + color: #333 } + .signinpanel .pword { - background:#fff url(../img/locked.png) no-repeat 95% center; - color:#333 + background: #fff url(../img/locked.png) no-repeat 95% center; + color: #333 } + .signinpanel .code { - background: #fff no-repeat 95% center;color:#333; margin:0 0 15px 0; + background: #fff no-repeat 95% center; + color: #333; + margin: 0 0 15px 0; } + .signinpanel .btn { - margin-top:15px + margin-top: 15px } + .signinpanel form { - background:rgba(255,255,255,.2); - border:1px solid rgba(255,255,255,.3); - -moz-box-shadow:0 3px 0 rgba(12,12,12,.03); - -webkit-box-shadow:0 3px 0 rgba(12,12,12,.03); - box-shadow:0 3px 0 rgba(12,12,12,.03); - -moz-border-radius:3px; - -webkit-border-radius:3px; - border-radius:3px; - padding:30px + background:rgba(255,255,255,.2); + border:1px solid rgba(255,255,255,.3); + -moz-box-shadow: 0 3px 0 rgba(12, 12, 12, .03); + -webkit-box-shadow: 0 3px 0 rgba(12, 12, 12, .03); + box-shadow: 0 3px 0 rgba(12, 12, 12, .03); + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + padding: 30px } +*/ + .signup-footer { - border-top:solid 1px rgba(255,255,255,.3); - margin:20px 0; - padding-top:15px -} -@media screen and (max-width:768px) { - .signinpanel,.signuppanel { - margin:0 auto; - width:380px!important; - padding:20px -} -.signinpanel form { - margin-top:20px -} -.signup-footer,.signuppanel .form-control { - margin-bottom:10px -} -.signup-footer .pull-left,.signup-footer .pull-right { - float:none!important; - text-align:center -} -.signinpanel .signin-info ul { - display:none -} -}@media screen and (max-width:320px) { - .signinpanel,.signuppanel { - margin:0 20px; - width:auto + border-top: solid 1px rgba(255, 255, 255, .3); + margin: 20px 0; + padding-top: 15px } + +@media screen and (max-width: 750px) { +/* .signinpanel, .signuppanel {*/ +/* margin: 0 auto;*/ +/* width: 380px !important;*/ +/* padding: 20px*/ +/* }*/ + + /*.signinpanel form {*/ + /* margin-top: 40px*/ + /*}*/ + + .signup-footer, .signuppanel .form-control { + margin-bottom: 10px + } + + .signup-footer .pull-left, .signup-footer .pull-right { + float: none !important; + text-align: center + } + + /*.signinpanel .signin-info ul {*/ + /* display: none*/ + /*}*/ } + +/*@media screen and (max-width: 320px) {*/ +/* .signinpanel, .signuppanel {*/ +/* margin: 0 20px;*/ +/* width: auto*/ +/* }*/ +/*}*/ + /* 登录界面check样式 */ @@ -93,6 +117,7 @@ body.signin { margin-bottom: 7px; display: inline-block; } + /* 将初始的checkbox的样式改变 */ @@ -105,6 +130,7 @@ body.signin { top: 50%; left: 3px; } + /* 设计新的checkbox,位置 */ @@ -121,10 +147,11 @@ body.signin { border: 1px solid #bbb; background: #fff; } + /* 点击初始的checkbox,将新的checkbox关联起来 */ -.checkbox-custom input[type="checkbox"]:checked +label:after { +.checkbox-custom input[type="checkbox"]:checked + label:after { position: absolute; display: inline-block; font-family: 'Glyphicons Halflings'; @@ -138,6 +165,7 @@ body.signin { height: 16px; color: #333; } + .checkbox-custom label { cursor: pointer; line-height: 1.2; @@ -146,16 +174,16 @@ body.signin { text-align: left; } -.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar { +.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar { box-shadow: none; } -.form-control{ - border-radius: 1px!important; - padding: 6px 12px!important; - height: 34px!important; +.form-control { + border-radius: 1px !important; + padding: 6px 12px !important; + height: 34px !important; } -.form-control:focus{ +.form-control:focus { border-color: #1ab394 !important; } \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/css/login.min.css b/ruoyi-admin/src/main/resources/static/css/login.min.css index 48f32c0..473b7aa 100644 --- a/ruoyi-admin/src/main/resources/static/css/login.min.css +++ b/ruoyi-admin/src/main/resources/static/css/login.min.css @@ -1 +1,216 @@ -html{height:100%}body.signin{height:auto;background:url(../img/login-background.jpg) no-repeat center fixed;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.signinpanel{width:750px;margin:10% auto 0;color:rgba(255,255,255,.95)}.signinpanel .logopanel{float:none;width:auto;padding:0;background:0}.signinpanel .signin-info ul{list-style:none;padding:0;margin:20px 0}.signinpanel .form-control{display:block;margin-top:15px}.signinpanel .uname{background:#fff url(../img/user.png) no-repeat 95% center;color:#333}.signinpanel .pword{background:#fff url(../img/locked.png) no-repeat 95% center;color:#333}.signinpanel .code{background:#fff no-repeat 95% center;color:#333;margin:0 0 15px 0}.signinpanel .btn{margin-top:15px}.signinpanel form{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);-moz-box-shadow:0 3px 0 rgba(12,12,12,.03);-webkit-box-shadow:0 3px 0 rgba(12,12,12,.03);box-shadow:0 3px 0 rgba(12,12,12,.03);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:30px}.signup-footer{border-top:solid 1px rgba(255,255,255,.3);margin:20px 0;padding-top:15px}@media screen and (max-width:768px){.signinpanel,.signuppanel{margin:0 auto;width:380px!important;padding:20px}.signinpanel form{margin-top:20px}.signup-footer,.signuppanel .form-control{margin-bottom:10px}.signup-footer .pull-left,.signup-footer .pull-right{float:none!important;text-align:center}.signinpanel .signin-info ul{display:none}}@media screen and (max-width:320px){.signinpanel,.signuppanel{margin:0 20px;width:auto}}.checkbox-custom{position:relative;padding:0 15px 0 25px;margin-bottom:7px;display:inline-block}.checkbox-custom input[type="checkbox"]{opacity:0;position:absolute;cursor:pointer;z-index:2;margin:-6px 0 0 0;top:50%;left:3px}.checkbox-custom label:before{content:'';position:absolute;top:50%;left:0;margin-top:-9px;width:18px;height:17px;display:inline-block;border-radius:2px;border:1px solid #bbb;background:#fff}.checkbox-custom input[type="checkbox"]:checked+label:after{position:absolute;display:inline-block;font-family:'Glyphicons Halflings';content:"\e013";top:42%;left:3px;margin-top:-5px;font-size:11px;line-height:1;width:16px;height:16px;color:#333}.checkbox-custom label{cursor:pointer;line-height:1.2;font-weight:normal;margin-bottom:0;text-align:left}.form-control,.form-control:focus,.has-error .form-control:focus,.has-success .form-control:focus,.has-warning .form-control:focus,.navbar-collapse,.navbar-form,.navbar-form-custom .form-control:focus,.navbar-form-custom .form-control:hover,.open .btn.dropdown-toggle,.panel,.popover,.progress,.progress-bar{box-shadow:none}.form-control{border-radius:1px!important;padding:6px 12px!important;height:34px!important}.form-control:focus{border-color:#1ab394!important} \ No newline at end of file +html { + height: 100% +} + +@keyframes rotate { + 0% { + transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0); + } + 100% { + transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg); + } +} + +.stars { + transform: perspective(100px); + transform-style: preserve-3d; + position: absolute; + bottom: 0; + perspective-origin: 50% 100%; + left: 50%; + animation: rotate 90s infinite linear; +} + +.star { + width: 2px; + height: 2px; + background: #F7F7B6; + position: absolute; + top: 0; + left: 0; + transform-origin: 0 0 -300px; + transform: translate3d(0, 0, -300px); + backface-visibility: hidden; +} + +body.signin { + height: auto; + /*background: url(../img/login-background.jpg) no-repeat center fixed;*/ + background: url(../img/login.jpg) no-repeat center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + background-attachment: fixed; + overflow: hidden; +} +/*.btn-success {*/ +/* color: #fff;*/ +/* background-color: #5cb85c;*/ +/* border-color: #4cae4c*/ +/*}*/ + +.signinpanel { + width: 750px; + margin: 10% auto 0; + color: rgba(255, 255, 255, .95) +} + +.signinpanel .logopanel { + float: none; + width: auto; + padding: 0; + background: 0 +} + +.signinpanel .signin-info ul { + list-style: none; + padding: 0; + margin: 20px 0 +} + +.signinpanel .form-control { + display: block; + margin-top: 15px +} + +.signinpanel .uname { + background: #fff url(../img/user.png) no-repeat 95% center; + + + color: #333 +} + +.signinpanel .pword { + background: #fff url(../img/locked.png) no-repeat 95% center; + color: #333 +} + +.signinpanel .code { + background: #fff no-repeat 95% center; + color: #333; + margin: 0 0 15px 0 +} + +.signinpanel .btn { + margin-top: 15px +} + +/*.signinpanel form {*/ +/* background: rgba(255, 255, 255, .2);*/ +/* border: 1px solid rgba(255, 255, 255, .3);*/ +/* -moz-box-shadow: 0 3px 0 rgba(12, 12, 12, .03);*/ +/* -webkit-box-shadow: 0 3px 0 rgba(12, 12, 12, .03);*/ +/* box-shadow: 0 3px 0 rgba(12, 12, 12, .03);*/ +/* -moz-border-radius: 3px;*/ +/* -webkit-border-radius: 3px;*/ +/* border-radius: 3px;*/ +/* padding: 30px*/ +/*}*/ + +.signup-footer { + border-top: solid 1px rgba(255, 255, 255, .3); + margin: 20px 0; + padding-top: 15px +} + +@media screen and (max-width: 768px) { + .signinpanel, .signuppanel { + margin: 0 auto; + width: 380px !important; + padding: 20px + } + + .signinpanel form { + margin-top: 20px + } + + .signup-footer, .signuppanel .form-control { + margin-bottom: 10px + } + + .signup-footer .pull-left, .signup-footer .pull-right { + float: none !important; + text-align: center + } + + .signinpanel .signin-info ul { + display: none + } +} + +@media screen and (max-width: 320px) { + .signinpanel, .signuppanel { + margin: 0 20px; + width: auto + } +} + +.checkbox-custom { + position: relative; + padding: 0 15px 0 25px; + margin-bottom: 7px; + display: inline-block +} + +.checkbox-custom input[type="checkbox"] { + opacity: 0; + position: absolute; + cursor: pointer; + z-index: 2; + margin: -6px 0 0 0; + top: 50%; + left: 3px +} + +.checkbox-custom label:before { + content: ''; + position: absolute; + top: 50%; + left: 0; + margin-top: -9px; + width: 18px; + height: 17px; + display: inline-block; + border-radius: 2px; + border: 1px solid #bbb; + background: #fff +} + +.checkbox-custom input[type="checkbox"]:checked + label:after { + position: absolute; + display: inline-block; + font-family: 'Glyphicons Halflings'; + content: "\e013"; + top: 42%; + left: 3px; + margin-top: -5px; + font-size: 11px; + line-height: 1; + width: 16px; + height: 16px; + color: #333 +} + +.checkbox-custom label { + cursor: pointer; + line-height: 1.2; + font-weight: normal; + margin-bottom: 0; + text-align: left +} + +.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar { + box-shadow: none + +} + +.form-control { + border-radius: 8px !important; + padding: 6px 12px !important; + height: 34px !important +} + +.form-control:focus { + border-color: #1ab394 !important +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/img/login-container.png b/ruoyi-admin/src/main/resources/static/img/login-container.png new file mode 100644 index 0000000..77e719a Binary files /dev/null and b/ruoyi-admin/src/main/resources/static/img/login-container.png differ diff --git a/ruoyi-admin/src/main/resources/static/img/login.jpg b/ruoyi-admin/src/main/resources/static/img/login.jpg new file mode 100644 index 0000000..160ac30 Binary files /dev/null and b/ruoyi-admin/src/main/resources/static/img/login.jpg differ diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/login_v1.js b/ruoyi-admin/src/main/resources/static/ruoyi/login_v1.js new file mode 100644 index 0000000..9349793 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi/login_v1.js @@ -0,0 +1,112 @@ +$(function() { + validateKickout(); + validateRule(); + $('.imgcode').click(function() { + var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random(); + $(".imgcode").attr("src", url); + }); +}); + +$.validator.setDefaults({ + submitHandler: function() { + login(); + } +}); + +function login() { + $.modal.loading($("#btnSubmit").data("loading")); + var username = $.common.trim($("input[name='username']").val()); + var password = $.common.trim($("input[name='password']").val()); + var validateCode = $("input[name='validateCode']").val(); + var rememberMe = $("input[name='rememberme']").is(':checked'); + $.ajax({ + type: "post", + url: ctx + "login", + data: { + "username": username, + "password": password, + "validateCode": validateCode, + "rememberMe": rememberMe + }, + success: function(r) { + if (r.code == 0) { + location.href = ctx + 'index'; + } else { + $.modal.closeLoading(); + $('.imgcode').click(); + $(".code").val(""); + $.modal.msg(r.msg); + } + } + }); +} +$(document).ready(function(){ + var stars=1000; /*星星的密集程度,数字越大越多*/ + var $stars=$(".stars"); + var r=800; /*星星的看起来的距离,值越大越远,可自行调制到自己满意的样子*/ + for(var i=0;i").addClass("star"); + $stars.append($star); + } + $(".star").each(function(){ + var cur=$(this); + var s=0.2+(Math.random()*1); + var curR=r+(Math.random()*300); + cur.css({ + transformOrigin:"0 0 "+curR+"px", + transform:" translate3d(0,0,-"+curR+"px) rotateY("+(Math.random()*360)+"deg) rotateX("+(Math.random()*-50)+"deg) scale("+s+","+s+")" + + }) + }) +}) +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + rules: { + username: { + required: true + }, + password: { + required: true + } + }, + messages: { + username: { + required: icon + "请输入您的用户名", + }, + password: { + required: icon + "请输入您的密码", + } + } + }) +} + +function validateKickout() { + if (getParam("kickout") == 1) { + layer.alert("您已在别处登录,请您修改密码或重新登录", { + icon: 0, + title: "系统提示" + }, + function(index) { + //关闭弹窗 + layer.close(index); + if (top != self) { + top.location = self.location; + } else { + var url  =  location.search; + if (url) { + var oldUrl  = window.location.href; + var newUrl  = oldUrl.substring(0,  oldUrl.indexOf('?')); + self.location  = newUrl; + } + } + }); + } +} + +function getParam(paramName) { + var reg = new RegExp("(^|&)" + paramName + "=([^&]*)(&|$)"); + var r = window.location.search.substr(1).match(reg); + if (r != null) return decodeURI(r[2]); + return null; +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/index-topnav.html b/ruoyi-admin/src/main/resources/templates/index-topnav.html index de77257..25c530a 100644 --- a/ruoyi-admin/src/main/resources/templates/index-topnav.html +++ b/ruoyi-admin/src/main/resources/templates/index-topnav.html @@ -303,7 +303,7 @@ diff --git a/ruoyi-admin/src/main/resources/templates/index.html b/ruoyi-admin/src/main/resources/templates/index.html index 1ef275f..fc9cec4 100644 --- a/ruoyi-admin/src/main/resources/templates/index.html +++ b/ruoyi-admin/src/main/resources/templates/index.html @@ -4,7 +4,7 @@ - 若依系统首页 + 系统首页 @@ -26,7 +26,7 @@