基础管理

This commit is contained in:
fl 2025-04-22 16:29:55 +08:00
parent 0e974a5dd2
commit 77f95b3e6e
6 changed files with 232 additions and 229 deletions

View File

@ -24,7 +24,7 @@ public interface RoleDao {
* @return * @return
*/ */
@Options(useGeneratedKeys = true, keyProperty = "id") @Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into sys_role(role_name, role_code,remarks,org_id,state, create_time, update_time,del_flag,level) values(#{name},#{roleCode}, #{remarks},#{orgId},#{state}, now(),now(),0,#{level})") @Insert("insert into sys_role(role_name, role_code, remarks, org_id, create_time, update_time, del_flag) values(#{name}, #{roleCode}, #{remarks}, #{orgId}, now(), now(), 0)")
int save(Role role); int save(Role role);
@ -55,7 +55,7 @@ public interface RoleDao {
* @param role * @param role
* @return * @return
*/ */
@Update("update sys_role t set t.role_name = #{name},t.role_code = #{roleCode}, t.remarks = #{remarks},org_id=#{orgId},state=#{state}, update_time = now(),level=#{level} where t.role_id = #{id}") @Update("update sys_role t set t.role_name = #{name},t.role_code = #{roleCode}, t.remarks = #{remarks},org_id=#{orgId}, update_time = now() where t.role_id = #{id}")
int update(Role role); int update(Role role);
/** /**

View File

@ -65,7 +65,7 @@ public class RoleServiceImpl implements RoleService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
ServerResponse updateRole(Role role, List<Long> permissionIds) { public ServerResponse updateRole(Role role, List<Long> permissionIds) {
//查询角色名称是否存在 //查询角色名称是否存在
Role r = roleDao.getRole(role.getName()); Role r = roleDao.getRole(role.getName());
if (r != null && !Objects.equals(r.getId(), role.getId())) { if (r != null && !Objects.equals(r.getId(), role.getId())) {

View File

@ -18,10 +18,15 @@ mybatis.mapper-locations=classpath:mappers/*/*Mapper.xml
mybatis.type-aliases-package=com.bonus.digitalSignage.*.vo mybatis.type-aliases-package=com.bonus.digitalSignage.*.vo
#redis config #redis config
spring.redis.host=192.168.0.7 #spring.redis.host=192.168.0.7
spring.redis.port=16379 #spring.redis.port=16379
spring.redis.database=6 #spring.redis.database=6
spring.redis.password=Bonus@admin123! #spring.redis.password=Bonus@admin123!
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
# \u65E5\u5FD7 # \u65E5\u5FD7
logging.config=classpath:logback-boot.xml logging.config=classpath:logback-boot.xml
log.level.root=info log.level.root=info

View File

@ -6,28 +6,28 @@ layui.use(['form', 'layer', 'table', 'laydate'], function () {
table = layui.table; table = layui.table;
layui.form.render(); layui.form.render();
pages(1, 10, 1); pages(1, 10, 1);
form.on('switch(is-state)', function (obj) { // form.on('switch(is-state)', function (obj) {
console.log(obj); // console.log(obj);
let url = dataUrl + "/roles/updateEnableState"; // let url = dataUrl + "/roles/updateEnableState";
let params = { // let params = {
'id': this.value, // 'id': this.value,
'state': obj.elem.checked ? 1 : 0 // 'state': obj.elem.checked ? 1 : 0
} // }
params={ // params={
encryptedData:encryptCBC(JSON.stringify(params)) // encryptedData:encryptCBC(JSON.stringify(params))
} // }
ajaxRequest(url, "POST", params, true, function () {}, function (result) { // ajaxRequest(url, "POST", params, true, function () {}, function (result) {
console.log(result) // console.log(result)
reloadData(); // reloadData();
if (result.status === 200) { // if (result.status === 200) {
parent.layer.msg(result.data, {icon: 1}) // parent.layer.msg(result.data, {icon: 1})
} else if (result.status === 204) { // } else if (result.status === 204) {
parent.layer.alert(result.msg, {icon: 2}) // parent.layer.alert(result.msg, {icon: 2})
} // }
}, function (xhr) { // }, function (xhr) {
error(xhr) // error(xhr)
}); // });
}); // });
}) })
function pages(pageNum, pageSize, typeNum) { function pages(pageNum, pageSize, typeNum) {
@ -135,7 +135,7 @@ function initTable(dataList, limit, page) {
unresize: true, unresize: true,
align: "center" align: "center"
}, },
{field: "state", title: "状态", align: "center", templet: '#is-state'}, // {field: "state", title: "状态", align: "center", templet: '#is-state'},
/*{ /*{
field: "orgName", field: "orgName",
title: "上级组织", title: "上级组织",

View File

@ -1,182 +1,182 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/font-awesome/css/font-awesome.css"> <link rel="stylesheet" type="text/css" media="screen" href="../../css/font-awesome/css/font-awesome.css">
<link rel="stylesheet" href="../../js/layui-v2.6.8/css/layui.css" media="all"> <link rel="stylesheet" href="../../js/layui-v2.6.8/css/layui.css" media="all">
<link rel="stylesheet" href="../../css/dataForm.css"> <link rel="stylesheet" href="../../css/dataForm.css">
</head> </head>
<body> <body>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<form class="layui-form form-horizontal" onsubmit="return false" id="form"> <form class="layui-form form-horizontal" onsubmit="return false" id="form">
<fieldset> <fieldset>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label">上级菜单</label> <label class="layui-form-label">上级菜单</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select id="parentId" name="parentId" class="form-control input-sm layui-select" lay-verify="required"></select> <select id="parentId" name="parentId" class="form-control input-sm layui-select" lay-verify="required"></select>
</div> </div>
</div> </div>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>名称</label> <label class="layui-form-label"><i style="padding: 0 10px;">*</i>名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="form-control layui-input" placeholder="名称" type="text" name="name" id="name" maxlength="25" <input class="form-control layui-input" placeholder="名称" type="text" name="name" id="name" maxlength="25"
lay-verify="required"> lay-verify="required">
</div> </div>
</div> </div>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label">样式</label> <label class="layui-form-label">样式</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<button onclick="selectCss()" class="btn btn-primary">选择</button> <button onclick="selectCss()" class="btn btn-primary">选择</button>
<input type="hidden" class="form-control layui-input" name="css" id="css"/><i id="cssImg" class="fa"></i> <input type="hidden" class="form-control layui-input" name="css" id="css"/><i id="cssImg" class="fa"></i>
</div> </div>
</div> </div>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>类型</label> <label class="layui-form-label"><i style="padding: 0 10px;">*</i>类型</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select id="type" name="type" class="form-control input-sm layui-select" lay-verify="required" lay-filter="type"> <select id="type" name="type" class="form-control input-sm layui-select" lay-verify="required" lay-filter="type">
<option value="1">菜单</option> <option value="1">菜单</option>
<option value="2">按钮</option> <option value="2">按钮</option>
</select> </select>
</div> </div>
</div> </div>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label">链接</label> <label class="layui-form-label">链接</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="form-control layui-input" placeholder="名称" type="text" name="href" id="href" maxlength="80"> <input class="form-control layui-input" placeholder="名称" type="text" name="href" id="href" maxlength="80">
</div> </div>
</div> </div>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;" id="qx">*</i>权限</label> <label class="layui-form-label"><i style="padding: 0 10px;" id="qx">*</i>权限</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="form-contro layui-input" placeholder="权限" type="text" name="permission" id="permission" maxlength="50"> <input class="form-contro layui-input" placeholder="权限" type="text" name="permission" id="permission" maxlength="50">
</div> </div>
</div> </div>
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>排序</label> <label class="layui-form-label"><i style="padding: 0 10px;">*</i>排序</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input class="form-control layui-input" placeholder="排序" name="sort" id="sort" type="number" value="100" lay-verify="required"> <input class="form-control layui-input" placeholder="排序" name="sort" id="sort" type="number" value="100" lay-verify="required">
</div> </div>
</div> </div>
<button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData" <button type="submit" id="formSubmit" class="layui-btn" lay-submit="" lay-filter="formData"
style="display: none;"></button> style="display: none;"></button>
<div class="form-actions"> <div class="form-actions">
<div class="row" align="center"> <div class="row" align="center">
<div class="col-md-12"> <div class="col-md-12">
<button class="btn btn-primary" onclick="closePage()">返回</button> <button class="btn btn-primary" onclick="closePage()">返回</button>
<button class="btn btn-primary" type="submit" onclick="add()"> <button class="btn btn-primary" type="submit" onclick="add()">
<i class="fa fa-save"></i> 保存 <i class="fa fa-save"></i> 保存
</button> </button>
</div> </div>
</div> </div>
</div> </div>
</fieldset> </fieldset>
</form> </form>
</div> </div>
<script type="text/javascript" src="../../js/libs/jquery-3.7.0.min.js"></script> <script type="text/javascript" src="../../js/libs/jquery-3.7.0.min.js"></script>
<script type="text/javascript" src="../../js/jq.js"></script> <script type="text/javascript" src="../../js/jq.js"></script>
<script type="text/javascript" src="../../js/plugin/bootstrapvalidator/bootstrapValidator.min.js"></script> <script type="text/javascript" src="../../js/plugin/bootstrapvalidator/bootstrapValidator.min.js"></script>
<script type="text/javascript" src="../../js/common.js"></script> <script type="text/javascript" src="../../js/common.js"></script>
<script type="text/javascript" src="../../js/my/ztree-menu.js"></script> <script type="text/javascript" src="../../js/my/ztree-menu.js"></script>
<script type="text/javascript" src="../../layui/layui.js"></script> <script type="text/javascript" src="../../layui/layui.js"></script>
<script type="text/javascript" src="../../js/publicJs.js"></script> <script type="text/javascript" src="../../js/publicJs.js"></script>
<script src="../../js/my/aes.js"></script> <script src="../../js/my/aes.js"></script>
<script src="../../js/ajaxRequest.js"></script> <script src="../../js/ajaxRequest.js"></script>
<script type="text/javascript"> <script type="text/javascript">
layui.use(['form', 'layer', 'util'], function () { layui.use(['form', 'layer', 'util'], function () {
layer = layui.layer; layer = layui.layer;
form = layui.form; form = layui.form;
util = layui.util; util = layui.util;
form.render(); form.render();
form.verify(); form.verify();
form.on('submit(formData)', function (data) { form.on('submit(formData)', function (data) {
saveData(); saveData();
}); });
console.log($("#type").val()) console.log($("#type").val())
if ($("#type").val() === "1"){ if ($("#type").val() === "1"){
$("#href").removeAttr("lay-verify"); $("#href").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none"; document.getElementById("qx").style.display = "none";
}else if ($("#type").val() === "2") { }else if ($("#type").val() === "2") {
$("#permission").attr("lay-verify", "required"); $("#permission").attr("lay-verify", "required");
}else { }else {
$("#href").removeAttr("lay-verify"); $("#href").removeAttr("lay-verify");
$("#permission").removeAttr("lay-verify"); $("#permission").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none"; document.getElementById("qx").style.display = "none";
} }
form.on('select(type)', function(data){ form.on('select(type)', function(data){
console.log(data.value) console.log(data.value)
if (data.value === "1") { if (data.value === "1") {
$("#href").removeAttr("lay-verify"); $("#href").removeAttr("lay-verify");
$("#permission").removeAttr("lay-verify"); $("#permission").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none"; document.getElementById("qx").style.display = "none";
} else if (data.value === "2") { } else if (data.value === "2") {
$("#href").removeAttr("lay-verify"); $("#href").removeAttr("lay-verify");
$("#permission").attr("lay-verify", "required"); $("#permission").attr("lay-verify", "required");
document.getElementById("qx").style.display = "inline"; document.getElementById("qx").style.display = "inline";
} else { } else {
$("#href").removeAttr("lay-verify"); $("#href").removeAttr("lay-verify");
$("#permission").removeAttr("lay-verify"); $("#permission").removeAttr("lay-verify");
document.getElementById("qx").style.display = "none"; document.getElementById("qx").style.display = "none";
} }
}); });
}); });
initParentMenuSelect(); initParentMenuSelect();
function add() { function add() {
$('#formSubmit').trigger('click') $('#formSubmit').trigger('click')
} }
function saveData() { function saveData() {
$('#form').bootstrapValidator(); $('#form').bootstrapValidator();
var bootstrapValidator = $("#form").data('bootstrapValidator'); var bootstrapValidator = $("#form").data('bootstrapValidator');
bootstrapValidator.validate(); bootstrapValidator.validate();
if(!bootstrapValidator.isValid()){ if(!bootstrapValidator.isValid()){
return; return;
} }
var formdata = $("#form").serializeObject(); var formdata = $("#form").serializeObject();
console.log(formdata) console.log(formdata)
var params={ var params={
encryptedData:encryptCBC(JSON.stringify(formdata)) encryptedData:encryptCBC(JSON.stringify(formdata))
} }
let url = dataUrl + "/permissions/add"; let url = dataUrl + "/permissions/add";
ajaxRequest(url, "POST", params, true, function () {}, function (result) { ajaxRequest(url, "POST", params, true, function () {}, function (result) {
console.log(result) console.log(result)
if (result.status === 200) { if (result.status === 200) {
layer.msg("添加成功", {shift: -1, time: 1000}, function(){ layer.msg("添加成功", {shift: -1, time: 1000}, function(){
closePage(1) closePage(1)
}); });
} else { } else {
layer.alert(result.msg, {icon: 2}) layer.alert(result.msg, {icon: 2})
} }
}, function (xhr) { }, function (xhr) {
error(xhr) error(xhr)
}); });
} }
function selectCss(){ function selectCss(){
layer.open({ layer.open({
type: 2, type: 2,
title: "样式", title: "样式",
area: ['800px', '400px'], area: ['800px', '400px'],
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
content: ['icon.html'] content: ['icon.html']
}); });
} }
function closePage(type) { function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭 parent.layer.close(index); //再执行关闭
if (type === 1) { if (type === 1) {
parent.getMenuTree() parent.getMenuTree()
} }
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -24,21 +24,21 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <!-- <div class="layui-form-item">-->
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 状态:</label> <!-- <label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 状态:</label>-->
<div class="layui-input-block" > <!-- <div class="layui-input-block" >-->
<input type="radio" id="state_1" name="state" value="1" title="启用" checked> <!-- <input type="radio" id="state_1" name="state" value="1" title="启用" checked>-->
<input type="radio" id="state_0" name="state" value="0" title="关闭"> <!-- <input type="radio" id="state_0" name="state" value="0" title="关闭">-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="layui-form-item"> <!-- <div class="layui-form-item">-->
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 角色级别:</label> <!-- <label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 角色级别:</label>-->
<div class="layui-input-block" > <!-- <div class="layui-input-block" >-->
<input type="radio" id="level_1" name="level" value="1" title="公司级" checked> <!-- <input type="radio" id="level_1" name="level" value="1" title="公司级" checked>-->
<input type="radio" id="level_0" name="level" value="0" title="项目部级"> <!-- <input type="radio" id="level_0" name="level" value="0" title="项目部级">-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<!--<div class="layui-form-item" style="margin-top: 2%;"> <!--<div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>角色编码</label> <label class="layui-form-label"><i style="padding: 0 10px;">*</i>角色编码</label>
@ -61,8 +61,6 @@
</div> </div>
</div>--> </div>-->
<div class="layui-form-item" style="margin-top: 2%;"> <div class="layui-form-item" style="margin-top: 2%;">
<label class="layui-form-label">权限</label> <label class="layui-form-label">权限</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
@ -142,18 +140,18 @@
$("#roleCode").val(result.data.roleCode); $("#roleCode").val(result.data.roleCode);
$("#remarks").val(result.data.remarks); $("#remarks").val(result.data.remarks);
// $('#orgId').val(result.data.orgId); // $('#orgId').val(result.data.orgId);
console.log("result.data.state",result.data.state); // console.log("result.data.state",result.data.state);
if (result.data.state === 1) { // if (result.data.state === 1) {
document.getElementById('state_1').checked = true; // document.getElementById('state_1').checked = true;
} else if (result.data.state === 0) { // } else if (result.data.state === 0) {
document.getElementById('state_0').checked = true; // document.getElementById('state_0').checked = true;
} // }
console.log("result.data.level",result.data.level) // console.log("result.data.level",result.data.level)
if (result.data.level === 1) { // if (result.data.level === 1) {
document.getElementById('level_1').checked = true; // document.getElementById('level_1').checked = true;
} else if (result.data.level === 0) { // } else if (result.data.level === 0) {
document.getElementById('level_0').checked = true; // document.getElementById('level_0').checked = true;
} // }
layui.form.render(); layui.form.render();
} else if (result.status === 500) { } else if (result.status === 500) {
layer.alert(result.msg, {icon: 2}) layer.alert(result.msg, {icon: 2})