解决bug
This commit is contained in:
@@ -651,6 +651,18 @@ input.inputstyle:hover{
|
||||
position:relative;
|
||||
background:url(../images/bg_loginmain.jpg) no-repeat;
|
||||
}
|
||||
#login .login_btn{
|
||||
float:left;
|
||||
width:230px;
|
||||
height:50px;
|
||||
margin:160px auto 0 120px;
|
||||
}
|
||||
#login .register_btn{
|
||||
float:left;
|
||||
width:230px;
|
||||
height:50px;
|
||||
margin:218px auto 0 120px;
|
||||
}
|
||||
#login_signal{
|
||||
position:absolute;
|
||||
left: 63px;
|
||||
@@ -668,6 +680,18 @@ input.inputstyle:hover{
|
||||
top: 119px;
|
||||
width: 54px;
|
||||
}
|
||||
#txt_userpwd_repeat{
|
||||
position:absolute;
|
||||
left: 65px;
|
||||
top: 154px;
|
||||
width: 54px;
|
||||
}
|
||||
#txt_captcha{
|
||||
position:absolute;
|
||||
left: 65px;
|
||||
top: 189px;
|
||||
width: 54px;
|
||||
}
|
||||
#txt_vcode{
|
||||
position:absolute;
|
||||
left: 66px;
|
||||
@@ -698,6 +722,40 @@ input.inputstyle:hover{
|
||||
left: 118px;
|
||||
top: 118px;
|
||||
}
|
||||
#user_pwd_repeat{
|
||||
position:absolute;
|
||||
width:132px;
|
||||
padding:0 4px;
|
||||
height:23px;
|
||||
line-height:23px;
|
||||
border:none;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||
left: 118px;
|
||||
top: 152px;
|
||||
}
|
||||
#user_captcha{
|
||||
position:absolute;
|
||||
width:132px;
|
||||
padding:0 4px;
|
||||
height:23px;
|
||||
line-height:23px;
|
||||
border:none;
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||
left: 118px;
|
||||
top: 186px;
|
||||
}
|
||||
#imgCaptcha{
|
||||
position:absolute;
|
||||
width:132px;
|
||||
padding:0 4px;
|
||||
height:40px;
|
||||
line-height:23px;
|
||||
border:none;
|
||||
left: 270px;
|
||||
top: 170px;
|
||||
}
|
||||
#vcode{
|
||||
position:absolute;
|
||||
width:67px;
|
||||
@@ -716,17 +774,32 @@ input.inputstyle:hover{
|
||||
top: 151px;
|
||||
}
|
||||
#btn_login{
|
||||
position:absolute;
|
||||
width:81px;
|
||||
width:100px;
|
||||
height:30px;
|
||||
border:none;
|
||||
cursor:pointer;
|
||||
background:url(../images/btn_login.jpg) no-repeat;
|
||||
color: white;
|
||||
background:#318dff;
|
||||
left: 120px;
|
||||
top: 170px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#btn_login:hover{
|
||||
background:url(../images/btn_loginon.jpg) no-repeat;
|
||||
background:#54a0ff;
|
||||
}
|
||||
#btn_register{
|
||||
width:100px;
|
||||
height:30px;
|
||||
border:none;
|
||||
cursor:pointer;
|
||||
color: white;
|
||||
background:#318dff;
|
||||
left: 120px;
|
||||
top: 170px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#btn_register:hover{
|
||||
background:#54a0ff;
|
||||
}
|
||||
#tip_username{
|
||||
position:absolute;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
erp_web/images/register_tip.jpg
Normal file
BIN
erp_web/images/register_tip.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
138
erp_web/js/gVerify.js
Normal file
138
erp_web/js/gVerify.js
Normal file
@@ -0,0 +1,138 @@
|
||||
!(function(window, document) {
|
||||
var size = 4;//设置验证码长度
|
||||
function GVerify(options) { //创建一个图形验证码对象,接收options对象为参数
|
||||
this.options = { //默认options参数值
|
||||
id: "", //容器Id
|
||||
canvasId: "verifyCanvas", //canvas的ID
|
||||
width: "100", //默认canvas宽度
|
||||
height: "30", //默认canvas高度
|
||||
type: "letter", //图形验证码默认类型blend:数字字母混合类型、number:纯数字、letter:纯字母
|
||||
code: "",
|
||||
}
|
||||
if(Object.prototype.toString.call(options) == "[object Object]"){//判断传入参数类型
|
||||
for(var i in options) { //根据传入的参数,修改默认参数值
|
||||
this.options[i] = options[i];
|
||||
}
|
||||
}else{
|
||||
this.options.id = options;
|
||||
}
|
||||
|
||||
this.options.numArr = "0,1,2,3,4,5,6,7,8,9".split(",");
|
||||
this.options.letterArr = getAllLetter();
|
||||
|
||||
this._init();
|
||||
this.refresh();
|
||||
}
|
||||
|
||||
GVerify.prototype = {
|
||||
/**版本号**/
|
||||
version: '1.0.0',
|
||||
|
||||
/**初始化方法**/
|
||||
_init: function() {
|
||||
var con = document.getElementById(this.options.id);
|
||||
var canvas = document.createElement("canvas");
|
||||
this.options.width = con.offsetWidth > 0 ? con.offsetWidth : "100";
|
||||
this.options.height = con.offsetHeight > 0 ? con.offsetHeight : "30";
|
||||
canvas.id = this.options.canvasId;
|
||||
canvas.width = this.options.width;
|
||||
canvas.height = this.options.height;
|
||||
canvas.style.cursor = "pointer";
|
||||
canvas.innerHTML = "您的浏览器版本不支持canvas";
|
||||
con.appendChild(canvas);
|
||||
var parent = this;
|
||||
canvas.onclick = function(){
|
||||
parent.refresh();
|
||||
}
|
||||
},
|
||||
|
||||
/**生成验证码**/
|
||||
refresh: function() {
|
||||
this.options.code = "";
|
||||
var canvas = document.getElementById(this.options.canvasId);
|
||||
if(canvas.getContext) {
|
||||
var ctx = canvas.getContext('2d');
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
|
||||
ctx.textBaseline = "middle";
|
||||
|
||||
ctx.fillStyle = randomColor(180, 240);
|
||||
ctx.fillRect(0, 0, this.options.width, this.options.height);
|
||||
|
||||
if(this.options.type == "blend") { //判断验证码类型
|
||||
var txtArr = this.options.numArr.concat(this.options.letterArr);
|
||||
} else if(this.options.type == "number") {
|
||||
var txtArr = this.options.numArr;
|
||||
} else {
|
||||
var txtArr = this.options.letterArr;
|
||||
}
|
||||
|
||||
for(var i = 1; i <=size; i++) {
|
||||
var txt = txtArr[randomNum(0, txtArr.length)];
|
||||
this.options.code += txt;
|
||||
ctx.font = randomNum(this.options.height/2, this.options.height) + 'px SimHei'; //随机生成字体大小
|
||||
ctx.fillStyle = randomColor(50, 160); //随机生成字体颜色
|
||||
ctx.shadowOffsetX = randomNum(-3, 3);
|
||||
ctx.shadowOffsetY = randomNum(-3, 3);
|
||||
ctx.shadowBlur = randomNum(-3, 3);
|
||||
ctx.shadowColor = "rgba(0, 0, 0, 0.3)";
|
||||
var x = this.options.width / (size+1) * i;
|
||||
var y = this.options.height / 2;
|
||||
var deg = randomNum(-30, 30);
|
||||
/**设置旋转角度和坐标原点**/
|
||||
ctx.translate(x, y);
|
||||
ctx.rotate(deg * Math.PI / 180);
|
||||
ctx.fillText(txt, 0, 0);
|
||||
/**恢复旋转角度和坐标原点**/
|
||||
ctx.rotate(-deg * Math.PI / 180);
|
||||
ctx.translate(-x, -y);
|
||||
}
|
||||
/**绘制干扰线**/
|
||||
for(var i = 0; i < 4; i++) {
|
||||
ctx.strokeStyle = randomColor(40, 180);
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(randomNum(0, this.options.width), randomNum(0, this.options.height));
|
||||
ctx.lineTo(randomNum(0, this.options.width), randomNum(0, this.options.height));
|
||||
ctx.stroke();
|
||||
}
|
||||
/**绘制干扰点**/
|
||||
for(var i = 0; i < this.options.width/4; i++) {
|
||||
ctx.fillStyle = randomColor(0, 255);
|
||||
ctx.beginPath();
|
||||
ctx.arc(randomNum(0, this.options.width), randomNum(0, this.options.height), 1, 0, 2 * Math.PI);
|
||||
ctx.fill();
|
||||
}
|
||||
},
|
||||
|
||||
/**验证验证码**/
|
||||
validate: function(code){
|
||||
var code = code.toLowerCase();
|
||||
var v_code = this.options.code.toLowerCase();
|
||||
if(code == v_code){
|
||||
return true;
|
||||
}else{
|
||||
this.refresh();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**生成字母数组**/
|
||||
function getAllLetter() {
|
||||
var letterStr = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
|
||||
return letterStr.split(",");
|
||||
}
|
||||
/**生成一个随机数**/
|
||||
function randomNum(min, max) {
|
||||
return Math.floor(Math.random() * (max - min) + min);
|
||||
}
|
||||
/**生成一个随机色**/
|
||||
function randomColor(min, max) {
|
||||
var r = randomNum(min, max);
|
||||
var g = randomNum(min, max);
|
||||
var b = randomNum(min, max);
|
||||
return "rgb(" + r + "," + g + "," + b + ")";
|
||||
}
|
||||
window.GVerify = GVerify;
|
||||
})(window, document);
|
||||
@@ -26,7 +26,10 @@
|
||||
<input type="password" id="user_pwd"/>
|
||||
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
||||
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
||||
<input type="button" value=" " id="btn_login"/>
|
||||
<div class="login_btn">
|
||||
<input type="button" value="登录" id="btn_login"/>
|
||||
<input type="button" value="立即注册" id="btn_register"/>
|
||||
</div>
|
||||
</div>
|
||||
<p id="copyright">
|
||||
Copyright © 2017-2020 季圣华(jishenghua)
|
||||
@@ -40,6 +43,7 @@
|
||||
//进入页面聚焦在username输入框,方便 用户输入
|
||||
$("#user_name").focus();
|
||||
browserFit();
|
||||
checkTenantStatus();
|
||||
});
|
||||
|
||||
//浏览器适配
|
||||
@@ -50,6 +54,32 @@
|
||||
$("#user_vcodepwd").empty().append("密 码:");
|
||||
}
|
||||
|
||||
//判断是否开启多租户
|
||||
function checkTenantStatus(){
|
||||
$("#btn_register").hide();
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/getTenantStatus",
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
if(res && res.code === 200) {
|
||||
if(res.data) {
|
||||
if(res.data.status == "open") {
|
||||
$("#btn_register").show();
|
||||
} else if(res.data.status == "close") {
|
||||
$("#btn_register").hide();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$("#btn_register").hide();
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
$("#btn_register").hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//初始化键盘enter事件
|
||||
$(document).keydown(function (event) {
|
||||
//兼容 IE和firefox 事件
|
||||
@@ -66,6 +96,10 @@
|
||||
$('#btn_login').off("click").on("click", function () {
|
||||
checkUserInput();
|
||||
});
|
||||
|
||||
$("#btn_register").off("click").on("click", function () {
|
||||
location.href = "register.html";
|
||||
});
|
||||
|
||||
//检测用户输入数据
|
||||
function checkUserInput() {
|
||||
|
||||
@@ -356,6 +356,7 @@
|
||||
//加载完以后重新初始化
|
||||
var opts = $("#tableData").datagrid('options');
|
||||
showDepotDetails(opts.pageNumber, opts.pageSize);
|
||||
$.messager.alert('提示', '保存成功,请给用户分配该仓库才能使用!', 'info');
|
||||
}
|
||||
},
|
||||
//此处添加错误处理
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
<table class="money-dlg">
|
||||
<tr class="money-head-tmp">
|
||||
<td style="width:30px;"></td>
|
||||
<td style="width:140px; padding:5px;">结算账户</td>
|
||||
<td style="width:140px; padding:5px;">支出项目</td>
|
||||
<td style="width:100px; padding:5px;">金额</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -259,7 +259,7 @@
|
||||
<table class="money-dlg">
|
||||
<tr class="money-head-tmp">
|
||||
<td style="width:30px;"></td>
|
||||
<td style="width:140px; padding:5px;">结算账户</td>
|
||||
<td style="width:140px; padding:5px;">支出项目</td>
|
||||
<td style="width:100px; padding:5px;">金额</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
<table class="money-dlg">
|
||||
<tr class="money-head-tmp">
|
||||
<td style="width:30px;"></td>
|
||||
<td style="width:140px; padding:5px;">结算账户</td>
|
||||
<td style="width:140px; padding:5px;">支出项目</td>
|
||||
<td style="width:100px; padding:5px;">金额</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
<table class="money-dlg">
|
||||
<tr class="money-head-tmp">
|
||||
<td style="width:30px;"></td>
|
||||
<td style="width:140px; padding:5px;">结算账户</td>
|
||||
<td style="width:140px; padding:5px;">支出项目</td>
|
||||
<td style="width:100px; padding:5px;">金额</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
<table class="money-dlg">
|
||||
<tr class="money-head-tmp">
|
||||
<td style="width:30px;"></td>
|
||||
<td style="width:140px; padding:5px;">结算账户</td>
|
||||
<td style="width:140px; padding:5px;">支出项目</td>
|
||||
<td style="width:100px; padding:5px;">金额</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
<table class="money-dlg">
|
||||
<tr class="money-head-tmp">
|
||||
<td style="width:30px;"></td>
|
||||
<td style="width:140px; padding:5px;">结算账户</td>
|
||||
<td style="width:140px; padding:5px;">支出项目</td>
|
||||
<td style="width:100px; padding:5px;">金额</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
100
erp_web/register.html
Normal file
100
erp_web/register.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>ERP系统</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=8" >
|
||||
<meta name="referrer" content="Webkit">
|
||||
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
|
||||
<link type="text/css" rel="stylesheet" href="/css/css.css"/>
|
||||
<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>
|
||||
<script type="text/javascript" src="/js/common/common.js"></script>
|
||||
<script type="text/javascript" src="/js/md5/md5.js"></script>
|
||||
<script type="text/javascript" src="/js/gVerify.js"></script>
|
||||
</head>
|
||||
<body id="login_body">
|
||||
<div id="login_main">
|
||||
<div id="login">
|
||||
<p id="login_signal"><img src="/images/register_tip.jpg" width="108" height="29" alt="login"/></p>
|
||||
<p id="txt_username">
|
||||
<label for="user_name">用户名:</label>
|
||||
</p>
|
||||
<p id="txt_userpwd">
|
||||
<label for="user_vcodepwd" id="user_vcodepwd">密 码:</label>
|
||||
</p>
|
||||
<p id="txt_userpwd_repeat">
|
||||
<label for="user_vcodepwd" id="user_vcodepwd_repeat">确认密码:</label>
|
||||
</p>
|
||||
<p id="txt_captcha">
|
||||
<label>验证码:</label>
|
||||
</p>
|
||||
<input type="text" id="user_name"/>
|
||||
<input type="password" id="user_pwd"/>
|
||||
<input type="password" id="user_pwd_repeat"/>
|
||||
<input type="text" id="user_captcha"/>
|
||||
<div id="imgCaptcha"></div>
|
||||
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
||||
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
||||
<div class="register_btn">
|
||||
<input type="button" value="注册" id="btn_register"/>
|
||||
<input type="button" value="立即登录" id="btn_login"/>
|
||||
</div>
|
||||
</div>
|
||||
<p id="copyright">
|
||||
Copyright © 2017-2020 季圣华(jishenghua)
|
||||
<a style="color:#00458a;" href="https://gitee.com/jishenghua/JSH_ERP" target="_blank">华夏ERP_v2.0</a>
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var verifyCode = new GVerify("imgCaptcha");
|
||||
//注册按钮绑定处理事件
|
||||
$("#btn_register").off("click").on("click", function () {
|
||||
if($("#user_captcha").val()) {
|
||||
var res = verifyCode.validate($("#user_captcha").val());
|
||||
if(res){
|
||||
if(!$("#user_name").val()) {
|
||||
alert("用户名不能为空!");
|
||||
} else if(!$("#user_pwd").val()) {
|
||||
alert("密码不能为空!");
|
||||
} else if(!$("#user_pwd_repeat").val()) {
|
||||
alert("确认密码不能为空!");
|
||||
} else if($("#user_pwd").val()!=$("#user_pwd_repeat").val()) {
|
||||
$("#user_pwd_repeat").val("");
|
||||
alert("确认密码不一致!");
|
||||
} else {
|
||||
//执行注册
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/user/registerUser",
|
||||
dataType: "json",
|
||||
data: ({
|
||||
loginame: $("#user_name").val(),
|
||||
password: $("#user_pwd").val()
|
||||
}),
|
||||
success: function (res) {
|
||||
if (res && res.code === 200) {
|
||||
alert("注册成功!");
|
||||
} else {
|
||||
alert("注册失败!");
|
||||
}
|
||||
},
|
||||
//此处添加错误处理
|
||||
error: function () {
|
||||
alert("后台访问错误,请联系管理员!");
|
||||
}
|
||||
});
|
||||
}
|
||||
} else{
|
||||
alert("验证码错误!");
|
||||
}
|
||||
} else {
|
||||
alert("验证码为空!");
|
||||
}
|
||||
});
|
||||
|
||||
$('#btn_login').off("click").on("click", function () {
|
||||
location.href = "login.html";
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user