<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="../common/taglib.jsp"%>
<%@ page import="java.text.SimpleDateFormat,java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>欢迎访问</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="<c:url value="/plugins/layuimini/lib/layui-v2.5.5/css/layui.css"/>" media="all">
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
html, body {width: 100%;height: 100%;overflow: hidden}
body {background: #009688;}
body:after {content:'';background-repeat:no-repeat;background-size:cover;-webkit-filter:blur(3px);-moz-filter:blur(3px);-o-filter:blur(3px);-ms-filter:blur(3px);filter:blur(3px);position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;}
.layui-container {width: 100%;height: 100%;overflow: hidden}
.admin-login-background {width:360px;height:300px;position:absolute;left:50%;top:40%;margin-left:-180px;margin-top:-100px;}
.logo-title {text-align:center;letter-spacing:2px;padding:14px 0;}
.logo-title h1 {color:#009688;font-size:25px;font-weight:bold;}
.login-form {background-color:#fff;border:1px solid #fff;border-radius:3px;padding:14px 20px;box-shadow:0 0 8px #eeeeee;}
.login-form .layui-form-item {position:relative;}
.login-form .layui-form-item label {position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2;}
.login-form .layui-form-item input {padding-left:36px;}
.captcha {width:60%;display:inline-block;}
.captcha-img {display:inline-block;width:34%;float:right;}
.captcha-img img {height:34px;border:1px solid #e6e6e6;height:36px;width:100%;}
#canvas {
float: right;
display: inline-block;
border: 1px solid #D2D2D2!important;
border-radius: 5px;
cursor: pointer;
width:100%;
}
</style>
</head>
<body>
<div class="layui-container layui-anim layui-anim-upbit">
<div class="admin-login-background">
<div class="layui-form login-form">
<form class="layui-form" action="">
<div class="layui-form-item logo-title">
<h1>Layui系统平台登录</h1>
</div>
<div class="layui-form-item">
<label class="layui-icon layui-icon-username" for="username"></label>
<input type="text" name="username" id="username" lay-verify="required|account" placeholder="用户名" autocomplete="off" class="layui-input" value="">
</div>
<div class="layui-form-item">
<label class="layui-icon layui-icon-password" for="password"></label>
<input type="password" name="password" id="password" lay-verify="required|password" placeholder="密码" autocomplete="off" class="layui-input" value="">
</div>
<div class="layui-form-item">
<label class="layui-icon layui-icon-vercode" for="captcha"></label>
<input type="text" name="captcha" id="captcha" lay-verify="required|captcha" placeholder="图形验证码" autocomplete="off" class="layui-input verification captcha" value="">
<div class="captcha-img">
<canvas id="canvas" class="layui-input"></canvas>
</div>
</div>
<div class="layui-form-item">
<input type="checkbox" name="rememberMe" value="true" lay-skin="primary" title="记住密码">
</div>
<div class="layui-form-item">
<button class="layui-btn layui-btn-fluid" lay-submit="" lay-filter="login">登 入</button>
</div>
</form>
</div>
</div>
</div>
<script src="<c:url value="/plugins/layuimini/lib/jquery-3.4.1/jquery-3.4.1.min.js"/>" charset="utf-8"></script>
<script src="<c:url value="/plugins/layuimini/lib/layui-v2.5.5/layui.js"/>" charset="utf-8"></script>
<script src="<c:url value="/plugins/layuimini/lib/jq-module/jquery.particleground.min.js"/>" charset="utf-8"></script>
<script>
layui.use(['form'], function () {
var form = layui.form,
layer = layui.layer;
//验证码
var verification_code = [];
draw(verification_code);
$("#canvas").on('click',function(){
draw(verification_code);
});
// 登录过期的时候,跳出ifram框架
if (top.location != self.location) {
top.location = self.location;
}
// 粒子线条背景
$(document).ready(function(){
$('.layui-container').particleground({
dotColor:'#5cbdaa',
lineColor:'#5cbdaa'
});
});
// 进行登录操作
form.on('submit(login)', function (data) {
data = data.field;
if (data.username == '') {
layer.msg('用户名不能为空');
return false;
}
if (data.password == '') {
layer.msg('密码不能为空');
return false;
}
var verificationCode = verification_code.join("");
if (data.captcha == '') {
layer.msg('验证码不能为空');
return false;
} else if(data.captcha.toUpperCase() != verificationCode) {
layer.msg('验证码输入错误');
$("#canvas").click()
return false;
}
var param = {"loginId" : $("#username").val(), "password" : $("#password").val()};
jQuery.ajax({
type:"post",
data: JSON.stringify(param),
async: true,
dataType: 'json',
contentType: 'application/json',
url: '../web/userLogin',
success:function(result){
if(result.success){
layer.msg('登录成功', function () {
location.href = result.data.url;
});
}else{
layer.msg(result.error);
}
},
error:function(){
layer.msg("服务器连接失败.");
}
});
return false;
});
});
function draw(verification_code) {
var canvas_width = $('#canvas').width();
var canvas_height = $('#canvas').height();
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
canvas.width = canvas_width;
canvas.height = canvas_height;
var randomCode = "A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0";
var randomCodeStr = randomCode.split(",");
var randomCodeLength = randomCodeStr.length;
for (var i = 0; i <= 3; i++) { //绘制数字
var j = Math.floor(Math.random() * randomCodeLength);
var rotate = Math.random() * 50 * Math.PI / 180;
var content = randomCodeStr[j];
verification_code[i] = content.toUpperCase();
var x = 10 + i * 20;
var y = 20 + Math.random() * 8;
context.font = "bold 23px 微软雅黑";
context.translate(x, y);
context.rotate(rotate);
context.fillStyle = randomColor();
context.fillText(content, 0, 0);
context.rotate(-rotate);
context.translate(-x, -y);
}
for (var i = 0; i <= 5; i++) { //绘制线条
context.strokeStyle = randomColor();
context.beginPath();
context.moveTo(Math.random() * canvas_width, Math.random() * canvas_height);
context.lineTo(Math.random() * canvas_width, Math.random() * canvas_height);
context.stroke();
}
for (var i = 0; i <= 60; i++) { //绘制小点
context.strokeStyle = randomColor();
context.beginPath();
var x = Math.random() * canvas_width;
var y = Math.random() * canvas_height;
context.moveTo(x, y);
context.lineTo(x + 1, y + 1);
context.stroke();
}
}
function randomColor() {//得到随机的颜色值
var r = Math.floor(Math.random() * 256);
var g = Math.floor(Math.random() * 256);
var b = Math.floor(Math.random() * 256);
return "rgb(" + r + "," + g + "," + b + ")";
}
</script>
</body>
</html>
使用LayUI登录页制作登录验证码
最新推荐文章于 2023-10-25 21:36:59 发布