!18 数据权限基础

Merge pull request !18 from yangzhengze/master
This commit is contained in:
yangzhengze
2018-07-29 15:48:31 +08:00
committed by 若依
parent 743caa2911
commit 2401c5552e
16 changed files with 589 additions and 275 deletions

View File

@ -24,6 +24,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select t.dept_id, t.parent_id, t.dept_name, t.order_num, t.leader, t.phone, t.email, t.status, t.create_by, t.create_time from sys_dept t
</sql>
<select id="selectRoleDeptTree" parameterType="Long" resultType="String">
select concat(d.dept_id, d.dept_name) as dept_name
from sys_dept d
left join sys_role_dept rd on d.dept_id = rd.dept_id
where rd.role_id = #{roleId}
order by d.parent_id, d.order_num
</select>
<select id="selectDeptAll" resultMap="DeptResult">
<include refid="selectDeptVo"/>
</select>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.system.role.mapper.RoleDeptMapper">
<resultMap type="RoleDept" id="RoleDeptResult">
<result property="roleId" column="role_id" />
<result property="deptId" column="dept_id" />
</resultMap>
<delete id="deleteRoleDeptByRoleId" parameterType="Long">
delete from sys_role_dept where role_id=#{roleId}
</delete>
<select id="selectCountRoleDeptByDetpId" resultType="Integer">
select count(*) from sys_role_dept where dept_id=#{detpId}
</select>
<delete id="deleteRoleDept" parameterType="Long">
delete from sys_role_dept where role_id in
<foreach collection="array" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</delete>
<insert id="batchRoleDept">
insert into sys_role_dept(role_id, dept_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.roleId},#{item.deptId})
</foreach>
</insert>
</mapper>

View File

@ -48,6 +48,12 @@
<div id="menuTrees" class="ztree"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数据权限</label>
<div class="col-sm-8">
<div id="deptTrees" class="ztree"></div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
@ -76,6 +82,24 @@
menuTrees = $.fn.zTree.init($("#menuTrees"), setting, data); //.expandAll(true);
}, null, null, "正在加载,请稍后...");
};loadTree();
// 权限树结构初始化加载
var deptsetting = {
check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}},
view:{selectedMulti:false,nameIsHTML: true},
data:{simpleData:{enable:true},key:{title:"title"}},
callback:{
beforeClick: function (treeId, treeNode, clickFlag) {
var deptTrees = $.fn.zTree.getZTreeObj(treeId);
deptTrees.checkNode(treeNode, !treeNode.checked, true, true);
return false;
}
}
}, deptTrees, loadTree = function(){
$.get(ctx + "system/dept/treeData", function(data) {
deptTrees = $.fn.zTree.init($("#deptTrees"), deptsetting, data); //.expandAll(true);
}, null, null, "正在加载,请稍后...");
};loadTree();
$("#form-role-add").validate({
rules:{
@ -115,17 +139,29 @@
});
function selectCheckeds() {
var menuIds = "";
var treeNodes = menuTrees.getCheckedNodes(true);
for (var i = 0; i < treeNodes.length; i++) {
if (0 == i) {
menuIds = treeNodes[i].id;
} else {
menuIds += ("," + treeNodes[i].id);
}
}
return menuIds;
}
var menuIds = "";
var treeNodes = menuTrees.getCheckedNodes(true);
for (var i = 0; i < treeNodes.length; i++) {
if (0 == i) {
menuIds = treeNodes[i].id;
} else {
menuIds += ("," + treeNodes[i].id);
}
}
return menuIds;
}
function selectDeptCheckeds() {
var deptIds = "";
var treeNodes = deptTrees.getCheckedNodes(true);
for (var i = 0; i < treeNodes.length; i++) {
if (0 == i) {
deptIds = treeNodes[i].id;
} else {
deptIds += ("," + treeNodes[i].id);
}
}
return deptIds;
}
function add() {
var roleName = $("input[name='roleName']").val();
@ -134,6 +170,7 @@
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
var remark = $("input[name='remark']").val();
var menuIds = selectCheckeds();
var deptIds = selectDeptCheckeds();
$.ajax({
cache : true,
type : "POST",
@ -144,7 +181,8 @@
"roleSort": roleSort,
"status": status,
"remark": remark,
"menuIds": menuIds
"menuIds": menuIds,
"deptIds":deptIds
},
async : false,
error : function(request) {

View File

@ -49,6 +49,12 @@
<div id="menuTrees" class="ztree"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数据权限</label>
<div class="col-sm-8">
<div id="deptTrees" class="ztree"></div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
@ -77,7 +83,25 @@
menuTrees = $.fn.zTree.init($("#menuTrees"), setting, data); //.expandAll(true);
}, null, null, "正在加载,请稍后...");
};loadTree();
// 部门(数据权限)树结构初始化加载
var deptsetting = {
check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}},
view:{selectedMulti:false,nameIsHTML: true},
data:{simpleData:{enable:true},key:{title:"title"}},
callback:{
beforeClick: function (treeId, treeNode, clickFlag) {
var deptTrees = $.fn.zTree.getZTreeObj(treeId);
deptTrees.checkNode(treeNode, !treeNode.checked, true, true);
return false;
}
}
}, deptTrees, loadTree = function(){
$.get(ctx + "system/dept/roleDeptTreeData?roleId=" + $("#roleId").val(), function(data) {
deptTrees = $.fn.zTree.init($("#deptTrees"), deptsetting, data); //.expandAll(true);
}, null, null, "正在加载,请稍后...");
};loadTree();
$("#form-role-edit").validate({
rules:{
roleName:{
@ -130,7 +154,20 @@
}
return menuIds;
}
function selectDeptCheckeds() {
var deptIds = "";
var treeNodes = deptTrees.getCheckedNodes(true);
for (var i = 0; i < treeNodes.length; i++) {
if (0 == i) {
deptIds = treeNodes[i].id;
} else {
deptIds += ("," + treeNodes[i].id);
}
}
return deptIds;
}
function edit() {
var roleId = $("input[name='roleId']").val();
var roleName = $("input[name='roleName']").val();
@ -139,6 +176,7 @@
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
var remark = $("input[name='remark']").val();
var menuIds = selectCheckeds();
var deptIds = selectDeptCheckeds();
$.ajax({
cache : true,
type : "POST",
@ -150,7 +188,8 @@
"roleSort": roleSort,
"status": status,
"remark": remark,
"menuIds": menuIds
"menuIds": menuIds,
"deptIds": deptIds
},
async : false,
error : function(request) {