first commit

This commit is contained in:
2025-02-20 15:14:38 +08:00
commit 70e3764011
1113 changed files with 107789 additions and 0 deletions
@@ -0,0 +1,214 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加用户</title>
<%@include file="/views/common.jsp" %>
<link rel="stylesheet" href="${path}/static/css/formSelects-v4.css">
<style>
.layui-input, .layui-input-inline {
width: 350px
}
</style>
</head>
<body>
<div class="layui-input-block layui-form" lay-filter="addUser"
style="margin-top: 30px">
<form class="layui-form " action="">
<input type="hidden" value="1" name="sysStatus"/>
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<input type="text" name="username" lay-verify="username"
placeholder="请输入用户名" class="layui-input" id="username">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-inline">
<input type="password" name="password" placeholder="请输入密码"
class="layui-input" id="userpwd" lay-verify="userpwd">
</div>
<!-- <div class="layui-form-mid layui-word-aux">请务必填写用户名</div> -->
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">真实姓名</label>
<div class="layui-input-inline">
<input type="text" name="realname" id="realname" placeholder="请输入真实姓名"
class="layui-input" lay-verify="required">
</div>
</div>
</div>
<label class="layui-form-label">角色</label>
<div class="layui-input-inline">
<div id="role" style="width: 350px;"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block" id="idSuper">
<input type="radio" name="userStatus" value="1" title="启用" checked="">
<input type="radio" name="userStatus" value="0" title="禁用">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="enadd">确认添加</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
<script>
//全局定义一次, 加载formSelects
layui.config({
base: '${path}/static/js/' //js文件的路径
}).extend({
formSelects: 'formSelects-v4',
xmSelect: 'xm-select'
});
layui.use(['form', 'layer', 'formSelects', 'xmSelect'], function () {
var $ = layui.$,
form = layui.form,
layer = layui.layer,
formSelects = layui.formSelects,
xmSelect = layui.xmSelect;
//自定义验证规则
form.verify({
username: function (value, item) { //value:表单的值、item:表单的DOM对象
if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
return '用户名不能有特殊字符';
}
},
userpwd: [/^[\S]{3,12}$/, '密码必须3到12位,且不能出现空格'],
realname: [/^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$/, '姓名不能有特殊字符']
});
$(document).ready(function () {
$('#username').blur(function () {
var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$/;
var con = $(this).val();
var result = reg.test(con);
if (result) {
var param = {
username: $("#username").val()
}
$.getJSON("${path}/checkUsername", param, function (data) {
if (data.code == 200) {
layer.tips('用户名符合规范', '#username', {tips: [2, '#009688'], time: 1500});
} else {
layer.tips('用户名被占用,请重新输入', '#username', {tips: [2, '#009688'], time: 0});
}
})
} else {
layer.tips('用户名不能有特殊字符', '#username', {tips: [2, '#009688'], time: 0});
}
});
$('#userpwd').blur(function () {
var reg = /^[\S]{3,12}$/;
var con = $(this).val();
var result = reg.test(con);
if (result) {
layer.tips('密码符合规范', '#userpwd', {tips: [2, '#009688'], time: 1500});
} else {
layer.tips('密码必须3到12位,且不能出现空格', '#userpwd', {tips: [2, '#009688'], time: 0});
}
});
$('#realname').blur(
function () {
var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$/;
var con = $(this).val();
var result = reg.test(con);
if (!result) {
layer.tips('姓名中不能有特殊字符', '#realname', {tips: [2, '#009688'], time: 0});
}
});
})
//监听指定开关
form.on('switch(switchTest)', function (data) {
layer.msg('启用管理员:'
+ (this.checked ? 'true' : 'false'), {
offset: '6px'
});
});
//监听提交
form.on('submit(enadd)', function (data) {
$.ajax({
url: '${path}/addUser',
dataType: 'json',
data: $(data.form).serialize(),
type: 'post',
success: function (data) {
if (data.code == 200) {
layer.msg('录入成功!', {
icon: 6,
offset: "auto",
time: 2000
});//提示框
} else {
layer.msg('录入失败!', {
icon: 5,
offset: "auto",
time: 2000
});//提示框
}
setTimeout(function () {
var index = parent.layer.getFrameIndex(window.name);//获取窗口索引
parent.layer.close(index);//关闭弹出层
parent.layui.table.reload("userTableAll"); //重新加载页面表格
}, 2100);
}
})
return false;
});
// 获取角色
$.ajax({
// 获取所有角色
// url : '${path}/getRoleList',
// 获取用户拥有的角色
url: '${path}/getUserRoles',
dataType: 'json',
data: {},
type: 'post',
success: function (data) {
// 获取所有角色
// var datas = data.data.allRoleList
// 获取用户拥有的角色
var datas = data.data.userRoleList
var dataArr = [];
$.each(datas, function (index, item) {
var data1 = {};
data1.name = item.roleName;
data1.value = item.roleId;
dataArr.push(data1)
});
var role = xmSelect.render({
el: '#role',
data: dataArr, //数据
name: 'role', //表单提交的name属性
repeat: true,
toolbar: {
show: true //开启头部工具栏
},
height: '200px', //高度
paging: true, //分页
filterable: true, //搜索
searchTips: '搜索店铺名称',
max: 10, //选择上限
autoRow: true, //自动换行
direction: 'down', //方向
})
}
});
})
</script>
</body>
</html>
@@ -0,0 +1,134 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%@include file="/views/common.jsp"%>
</head>
<body>
<br>
<div style="padding: 20px; background-color: #F2F2F2;">
<div class="layui-row layui-col-space15">
<div class="layui-col-md3"></div>
<div class="layui-col-md6">
<div class="layui-card"
style="border-radius: 20px; border: 2px solid buttonface; box-shadow: 5px 5px 5px #F2F2F2 inset;">
<div class="layui-card-body">
<div class="layui-input-block layui-form" lay-filter="addUser"
style="margin-top: 30px">
<form class="layui-form " action="">
<input type="hidden" name="userId" class="layui-input" id="userId">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<input type="text" name="username" lay-verify="username"
readonly="readonly" autocomplete="off" placeholder="请输入用户名"
class="layui-input" id="username">
</div>
<div class="layui-form-mid layui-word-aux">不可修改</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-inline">
<input type="password" name="password1" placeholder="请输入密码"
autocomplete="off" class="layui-input" id="password1"
lay-verify="pass">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">确认密码</label>
<div class="layui-input-inline">
<input type="password" name="password" placeholder="请输入密码"
autocomplete="off" class="layui-input" id="password"
lay-verify="pass" >
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">真实姓名</label>
<div class="layui-input-inline">
<input type="text" name="realname" id="realname"
autocomplete="off" class="layui-input" placeholder="请输入真实姓名"
lay-verify="required">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="enadd">确认修改</button>
</div>
</div>
</form>
<div style="height: 30px"></div>
</div>
</div>
</div>
<div style="height: 50px"></div>
</div>
<div class="layui-col-md3"></div>
</div>
</div>
<script type="text/javascript">
layui.use([ 'table', 'laydate', 'form', 'layer' ], function() {
var $ = layui.jquery;
var table = layui.table;
var laydate = layui.laydate;
var form = layui.form;
var layer = layui.layer;
$.getJSON("${path}/loginAttribute",function(d){
var data = d.data.user
$("#userId").val(data.userId);
$("#username").val(data.username);
$("#realname").val(data.realname);
//$("#password").val(data.password);
// $("#userpwd1").val(data.userpwd);
})
//修改用户信息
form.on('submit(enadd)', function(data) {
//console.log($("#userId").val());
//console.log($(data.form).serialize());
if($("#password1").val() === $("#password").val() && $("#password").val() !== ""){
$.ajax({
url : '${path}/updatePassword',
dataType : 'json',
data : $(data.form).serialize(),
type : 'post',
success : function(data) {
if(data.code == 200){
layer.msg('修改成功,请重新登录!', {
icon : 6,
offset : "auto",
time : 2000
});//提示框
setTimeout("javascript:top.location.href='${path}/SysUser/logout'", 3000);
}else{
layer.msg('修改失败!', {
icon : 5,
offset : "auto",
time : 2000
});//提示框
setTimeout(function(){
location.reload();//重新加载页面
}, 2100);
}
}
})
}else{
layer.msg('俩次密码不一致!', {
icon : 5,
offset : "auto",
time : 2000
});//提示框
return false;
}
return false;
});
})
</script>
</body>
</html>
@@ -0,0 +1,198 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加用户</title>
<%@include file="/views/common.jsp"%>
<link rel="stylesheet" href="${path}/static/css/formSelects-v4.css">
<style>
.layui-input,.layui-input-inline{
width:350px
}
.layui-form-select .layui-edge{
right:-150px;
}
</style>
</head>
<body>
<div class="layui-input-block layui-form" lay-filter="addUser"
style="margin-top: 30px">
<form class="layui-form " action="">
<input type="hidden" name="userId" id="userId">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<input type="text" name="username" lay-verify="username" readonly="readonly"
placeholder="请输入用户名" class="layui-input" id="username">
</div>
<div class="layui-form-mid layui-word-aux">不可修改</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-inline">
<input type="password" name="password" placeholder="请输入密码"
autocomplete="off" class="layui-input" id="password"
lay-verify="password">
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">真实姓名</label>
<div class="layui-input-inline">
<input type="text" name="realname" id="realnameUpdate"
autocomplete="off" class="layui-input" placeholder="请输入真实姓名" lay-verify="required">
</div>
</div>
</div>
<input type="hidden" id="ROLE" class="layui-input" >
<div class="layui-form-item">
<label class="layui-form-label">角色</label>
<div class="layui-input-inline">
<div id="roleUpdate" style="width: 350px;"></div>
</div>
</div>
<c:if test = "${ sessionScope.USER_SESSION.role eq '1' or sessionScope.USER_SESSION.role.contains('1,2') }">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">Ip状态</label>
<div class="layui-input-inline">
<select name="needIp" id="needIp">
<option value="0">否</option>
<option value="1">是</option>
<option value="2">不需要</option>
</select>
</div>
</div>
</div>
</c:if>
<!--<c:if test = "${ sessionScope.USER_SESSION.role eq '1' or sessionScope.USER_SESSION.role.contains('1,2')
or sessionScope.USER_SESSION.role.contains('888')}">
<div class="layui-form-item">
<label class="layui-form-label">系统状态</label>
<div class="layui-input-inline">
<select name="sysStatus" id="sysStatusUpdate">
<option value="0">新用户</option>
<option value="1">第一阶段</option>
<option value="2">测试通过</option>
</select>
</div>
</div>
</c:if>-->
<div class="layui-form-item">
<!-- <label class="layui-form-label">状态</label>
<div class="layui-input-block" >
<input type="radio" name="userStatus" value="1" title="启用" >
<input type="radio" name="userStatus" value="0" title="禁用">
</div> -->
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="enadd">确认修改</button>
</div>
</div>
</form>
</div>
<script type="text/javascript">
//全局定义一次, 加载formSelects
layui.config({
base: '${path}/static/js/' //js文件的路径
}).extend({
formSelects: 'formSelects-v4',
xmSelect: 'xm-select'
});
layui.use([ 'table', 'laydate', 'form','layer','formSelects','xmSelect' ], function() {
var $ = layui.jquery;
var table = layui.table;
var laydate = layui.laydate;
var form = layui.form;
var layer = layui.layer;
var formSelects = layui.formSelects;
var xmSelect = layui.xmSelect;
layui.form.render("select");
$('#password').blur(function() {
var reg = /^[\S]{3,12}$/;
var con = $(this).val();
var result = reg.test(con);
if (result) {
layer.tips('密码符合规范','#password',{tips : [2,'#009688' ],time : 1500});
} else {
layer.tips('密码必须3到12位,且不能出现空格','#password',{tips : [2,'#009688' ],time : 0});
}
});
form.on('submit(enadd)',function(data){
$.ajax({
url:'${path}/updateUser',
dataType : 'json',
data:$(data.form).serialize(),
type : 'post',
success:function(data){
if (data.code == 200) {
layer.msg('修改成功!',{icon:6,offset:"auto",time:2000});//提示框
}else {
layer.msg('修改失败!',{icon:5,offset:"auto",time:2000});//提示框
}
setTimeout(function(){
var index = parent.layer.getFrameIndex(window.name);//获取窗口索引
parent.layer.close(index);//关闭弹出层
parent.layui.table.reload("userTableAll"); //重新加载页面表格
}, 2100);
}
})
return false;
});
// 获取角色
$.ajax({
// 获取所有角色
// url : '${path}/getRoleList',
// 获取用户拥有的角色
url : '${path}/getUserRoles',
dataType : 'json',
data : {
},
type : 'post',
success : function(data) {
// 获取所有角色
// var datas = data.data.allRoleList
// 获取用户拥有的角色
var datas = data.data.userRoleList
var dataArr = [];
$.each(datas, function(index, item) {
var data1 = {};
data1.name = item.roleName;
data1.value = item.roleId;
dataArr.push(data1);
});
var role = xmSelect.render({
el: '#roleUpdate',
data: dataArr, //数据
name: 'role', //表单提交的name属性
repeat:true,
toolbar: {
show: true //开启头部工具栏
},
height: '200px', //高度
paging: true, //分页
filterable: true, //搜索
searchTips: '搜索角色名称',
max: 15, //选择上限
autoRow: true, //自动换行
direction: 'down', //方向
})
var snData = [];
for(let role of $("#ROLE").val().split(",")){
snData.push(role);
}
role.setValue(snData);
}
});
})
</script>
</body>
</html>
+194
View File
@@ -0,0 +1,194 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户列表</title>
<%@include file="/views/common.jsp"%>
<style type="text/css">
.layui-table-cell{
height:32px;
line-height:32px;
}
.layui-table td, .layui-table th,.layui-table-header, .layui-table-page,.layui-table-tool, .layui-table-total, .layui-table-view{
border-color:#6666;
font-size:16px;
}
.ztree *{
font-size: 20px;
}
.edge .layui-edge{
right:35px;
}
</style>
</head>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container demoTable">
<!-- 超管或者管理员能看到新增、修改IP按钮 -->
<button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon layui-icon-add-circle-fine" style="font-size:20px;font-weight:bold"></i> 新增用户</button>
<c:if test = "${ sessionScope.USER_SESSION.role eq '1' or sessionScope.USER_SESSION.role.contains('1,2') }">
<button class="layui-btn layui-btn-sm" lay-event="editAllIp"><i class="layui-icon layui-icon-add-circle-fine" style="font-size:20px;font-weight:bold"></i>判断IP</button>
</c:if>
</div>
</script>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"style="color:white;font-size:20px"></i>编辑</a>
<a class="layui-btn layui-btn-xs layui-btn-danger"" lay-event="del"><i class="layui-icon layui-icon-delete" ></i>删除</a>
</script>
<script type="text/html" id="userStatusTpl">
<input type="checkbox" name="userStatus" value="{{d.userId}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="userStatusDemo" {{ d.userStatus == '1'? 'checked' : '' }}>
</script>
<body>
<br>
<form class="layui-form" action="">
<div class="layui-inline">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<input type="text" id="username" name="username" placeholder="请输入用户名"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">真实姓名</label>
<div class="layui-input-inline">
<input type="text" id="realname" name="realname" placeholder="请输入真实姓名"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline edge">
<select name="userStatus" id="userStatus">
<option value=""></option>
<option value="1">启用</option>
<option value="0">禁用</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">所属店铺</label>
<div class="layui-input-inline edge">
<select name="roleSearch" id="roleSearch" lay-search></select>
</div>
<!-- <label class="layui-form-label">用户角色</label>
<div class="layui-input-inline">
<div id="roleSearch" style="width: 350px;"></div>
</div> -->
<input type="hidden" id="role" name="role" value="${sessionScope.USER_SESSION.role}" >
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<button class="layui-btn" id="searchBtn" lay-submit lay-filter="formDemo" style="margin-left: 15px">
<i class="layui-icon layui-icon-search"></i> 查询
</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<div class="layui-fluid">
<div class="layui-row">
<table class="layui-hide" id="userTable"lay-data="userTable" lay-filter="userTable"></table>
<div class="layui-col-md12" id="editPers" style="display:none;">
<h3>角色权限</h3>
<hr>
<ul id="treeDemo" class="ztree"></ul>
<hr>
<button onclick="assignPers();" class="layui-btn layui-btn-fluid">授权</button>
</div>
</div>
</div>
<script type="text/javascript">
//全局定义一次, 加载xm-select
layui.config({
base: '${path}/static/js/' //js文件的路径
}).extend({
xmSelect: 'xm-select'
});
//角色名称转换(放在layui.use里面js页面读取不到)
var roleData = {};
$.ajax({
url : '${path}/changeRoleName',
dataType : 'json',
data : {
},
type : 'post',
success : function(data) {
roleData = data;
}
});
// 下拉框第一列添加空的option
$('#roleSearch').append(new Option("",""));
layui.use([ 'form', 'layer','xmSelect' ],function() {
var $ = layui.$,
form = layui.form,
layer = layui.layer,
xmSelect = layui.xmSelect;
// 获取角色
$.ajax({
// 获取所有角色
// url : '${path}/getRoleList',
// 获取用户拥有的角色
url : '${path}/getUserRoles',
dataType : 'json',
data : {
},
type : 'post',
success : function(data) {
// 获取所有角色
//var datas = data.data.allRoleList
// 获取用户拥有的角色
var datas = data.data.userRoleList
$.each(datas, function(index, item) {
$('#roleSearch').append(
new Option(item.roleName, item.roleId));// 下拉菜单里添加元素
});
form.render("select");
}
})
/* $.ajax({
url : '${path}/getRoleList',
dataType : 'json',
data : {
},
type : 'post',
success : function(data) {
var datas = data.data.roleList.list
var dataArr = [];
$.each(datas, function(index, item) {
var data1 = {};
data1.name = item.roleName;
data1.value = item.roleId;
dataArr.push(data1)
});
var role = xmSelect.render({
el: '#roleSearch',
data: dataArr, //数据
name: 'role', //表单提交的name属性
repeat:true,
toolbar: {
show: true //开启头部工具栏
},
height: '200px', //高度
paging: true, //分页
filterable: true, //搜索
searchTips: '搜索店铺名称',
max: 10, //选择上限
autoRow: true, //自动换行
direction: 'down', //方向
})
}
}); */
})
</script>
<script src="${path}/js/user.js" charset="utf-8"></script>
</body>
</html>