使用ztree构建权限菜单
来源:互联网 发布:程序员一般工作几小时 编辑:程序博客网 时间:2024/04/29 06:56
1.下载ztree插件并把其导入到项目文件
https://github.com/zTree/zTree_v3
注:在所需页面引入css,js
<link rel="stylesheet" href="<%=basePath%>/zTree_v3-master/css/demo.css" type="text/css">
<link rel="stylesheet" href="<%=basePath%>/zTree_v3-master/css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="<%=basePath%>/zTree_v3-master/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="<%=basePath%>/zTree_v3-master/js/jquery.ztree.core.js"></script>
<script type="text/javascript" src="<%=basePath%>/zTree_v3-master/js/jquery.ztree.excheck.js"></script>
2.前端html中标记要放入菜单权限的位置,这里 3.添加js代码控制
$(documnet).ready(function(){
//3.1最原始的情况,只有三个参数:绑定位置元素,设置,数据源
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
var type = { "Y":"ps", "N":"s"};
zTree.setting.check.chkboxType = type;
});
//3.2补上这两个参数setting ,zNodes
var setting = {
check: {enable: true},
data: {simpleData: {enable: true}},
callback: { beforeCheck: beforeCheck, onCheck: onCheck }
};
//3.3补上上面两个回调函数
function beforeCheck(treeId, treeNode)
{
return (treeNode.doCheck !== false);
}
var arrayObj = new Array();
function onCheck(e, treeId, treeNode) {
if (treeNode.check_Child_State > 0) {
arrayObj.push(treeNode.id);
for (var i = 0; i < treeNode.children.length; i++) {
// alert(treeNode.children[i].menuid + treeNode.children[i].menuname);
arrayObj.push(treeNode.children[i].id);
}
}
else {
//选中则添加
if (treeNode.checked == true) {
arrayObj.push(treeNode.id);
// alert(treeNode.menuid + treeNode.menuname);
}
//去掉勾选则从数组中删除
else {
//判断一个父节点取消则相应的子节点全部取消
if (treeNode.check_Child_State == 0)
{
//先清除掉父节点然后循环去掉字节点的选中ID
arrayObj.splice(jQuery.inArray(treeNode.id, arrayObj), 1);
for(var i=0;i<treeNode.children.length;i++)
{
arrayObj.splice(jQuery.inArray(treeNode[i], arrayObj), 1);
}
}else
arrayObj.splice(jQuery.inArray(treeNode.id, arrayObj), 1);
}
}
//alert(arrayObj.sort().toString());
$("#hfRole").val(arrayObj.sort().toString());//存放隐藏域中以便插入数据
}
//3.4用ajax从后台获取数据源
var zNodes ;
var path="<%=basePath%>";
$(document).ready(function(){
$.ajax({
url:path+"/role/getroles",
data:null,
async:false,
type:"post",
dataType:"json",
success:function(data){
var jsonArray = JSON.parse(data);
var length=jsonArray.length;
zNodes = new Array([length]);
if(length>0)
{
for(var i=0;i<length;i++)
{
var each=jsonArray[i];
//console.log(each);
var pcode=each.permissionCode;
var flag=pcode.length==3?true:false;
var object=createObject(each.id,each.pid,each.permissionName,null,flag);
zNodes[i]=object;
}
}
}
});
//用方法构造一个对象
function createObject(id, pId,name,checked,open)
{
var object = new Object();
object.id = id;
object.pId = pId;
object.name = name;
object.checked = checked;
object.open = open;
return object;
}
- 使用ztree构建权限菜单
- springmvc ztree 实现权限菜单的展示
- SpringMVC+ZTree实现树形菜单权限配置
- ztree树形菜单简单使用
- 使用zTree生成属性菜单
- zTree树形菜单使用实例
- 使用ZTree树创建树形菜单
- 《权限控制系列1》-----Ztree菜单的动态拼接
- 使用zTree和json构建简单树节点
- 使用 JavaScript 构建下拉菜单
- 使用dTree构建树形菜单
- ztree 的构建
- 使用Jquery zTree实现后台数据权限的添加
- zTree -- 下拉菜单
- Jquery UI ztree菜单
- zTree树形菜单案例
- Ztree实现树形菜单
- zTree的菜单筛选
- 2012蓝桥杯试题第五题
- Spring注解@Component、@Repository、@Service、@Controller区别
- 通过pid获取进程名和通过进程名获取pid
- C++之嵌套类和局部类
- Hu不变矩的提取以及输出到Excel或txt文件中
- 使用ztree构建权限菜单
- day10-rr
- Spring MVC 实现文件的上传和下载
- symfony2学习笔记-路由
- LabViewFor循环(例1)事件结构应用举例(例7)
- 文章标题
- gem5 options
- LabVIEW的事件结构应用
- 文章标题