《权限控制系列1》-----Ztree菜单的动态拼接
2017-02-14 21:11
169 查看
前言
在OA系统中,权限的控制是很常见的,最普通的权限关系就是用户-角色-权限之间的关系,用户拥有什么样的角色,角色拥有什么样的权限,今天小编简单的用Jquery的Ztree来粗粒度的控制一下用户的权限,其实主要就是将Ztree的使用。必要的插件引用
jquery-1.4.2.jsjquery-ztree-2.5.js
zTreeStyle.css
HTML引用
<TABLE border=0 width="20"> <TR> <TD width=340px align=center valign=top> <div class="zTreeDemoBackground"> <ul id="menuTree" class="tree" ></ul> </div> </TD> </TR> </TABLE>
JS控制
var menu = { setting: { isSimpleData: true, treeNodeKey: "mid", treeNodeParentKey: "pid", showLine: true, root: { isRoot: true, nodes: [] } }, loadMenuTree:function(){ $.post("elecMenuAction_showMenu.do",{},function(privilegeDate){ //privilegeDate数据一定是一个json的数组 $("#menuTree").zTree(menu.setting, privilegeDate); }); } }; $(document).ready(function(){ menu.loadMenuTree(); });
上面这段代码主要是利用JQuery的Ajax技术查询权限集合,将查询出来的数据动态的拼接成树。
原理
privilegeDate是Ajax请求成功后后台返回来的权限集合数据,我们根据用户角色ID去权限表中查询该角色拥有的权限集合,然后Ztree利用这写数据动态的拼接处权限菜单。注意事项
值得注意的是,如果我们用JQuery的Ztree,数据库中的字段必须符合Ztree的要求,这些字段必须与Ztree的一些属性对应,比如说:treeNodeKey(节点id)、treeNodeParentKey(节点的父ID),url(节点指向的链接)、name(节点的名字)、icon(节点的图片)、isParent(是否为父节点)等等,如果我们需要这些属性,那么我们就应该在权限表中创建这些字段。如果大家还想继续研究一下Ztree的其它功能,可以查一下JQueryZtree的API,那里面有Demo,小编用的不全面,敬请谅解。下面是小编动态拼接出来的权限菜单。小结
这只是粗粒度的权限控制,如果一般用户登录,我们虽然将Ztree的节点隐藏,但是用户还可以通过在浏览器中直接输入Url来访问某些页面,正所谓防君子不妨小人啊。下一篇博客小编会继续介绍关于权限的控制。相关文章推荐
- 前框 (一个)zTree 从数据库树形菜单动态加载
- DWZ横向导航实现动态左菜单树(基于zTree插件)
- 动态树形多选菜单——ztree初始化加载和延迟加载
- ztree的菜单显示与easyUI动态选项卡
- 前端框架 (一)zTree 从数据库中动态加载树形菜单
- 前端框架 (一)zTree 从数据库中动态加载树形菜单
- 前端框架 zTree 从数据库中动态加载树形菜单
- 动态拼接select的option(菜单级联)
- 设计组织树 通过java拼接xml组织树 实现界面组织树 通过数据库配置动态决定菜单树显示与否、排列优先
- Ztree树形菜单实现动态初始化、添加、删除、修改节点
- 前端框架 (一)zTree 从数据库中动态加载树形菜单
- Mybatis的动态拼接条件
- 【荐】JS实现类似星球仿flash效果的动态菜单
- 动态生成静态菜单
- 动态节点树 多级分类 php jquery ajax json mysql 点击进入菜单
- RCP动态菜单添加
- MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)
- Ztree 树形菜单前后台演示
- AngularJS之动态菜单操作指令
- WTL中动态菜单的实现