roleSet.jsp 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <script type="text/javascript">
  4. //update-begin--Author:xuelin Date:20170331 for:[#1714]【功能】角色分配菜单权限的时候,权限树采用ztree重写,不再采用easyui的树--------------------
  5. var setting = {
  6. check: {
  7. enable: true
  8. },
  9. data: {
  10. simpleData: {
  11. enable: true
  12. }
  13. },
  14. async: {
  15. enable: true,
  16. url:"roleController.do?setAuthority&roleId=${roleId}",
  17. dataFilter: filter
  18. },
  19. callback: {
  20. beforeAsync: function(){},
  21. onAsyncSuccess: function(event, treeId, treeNode, msg){
  22. //将已选中子节点的父节点设置为选中状态,即级联父级
  23. /*var zTree = $.fn.zTree.getZTreeObj("functionid");
  24. var node = zTree.getCheckedNodes(true);
  25. var pnode = null;
  26. for ( var i = 0; i < node.length; i++) {
  27. pnode = node[i].getParentNode();
  28. while (pnode != null) {
  29. pnode.checked = true;
  30. zTree.updateNode(pnode);
  31. pnode = pnode.getParentNode();
  32. }
  33. }*/
  34. expandAll();
  35. },
  36. onAsyncError: function(){},
  37. onClick: function (event, treeId, treeNode){
  38. //console.info(treeNode.id + ", " + treeNode.tId + ", " + treeNode.name + ", " + treeNode.children);
  39. if (null == treeNode.children) {
  40. var roleId = $("#rid").val();
  41. $('#operationListpanel').panel(
  42. "refresh",
  43. "roleController.do?operationListForFunction&functionId="+ treeNode.id + "&roleId=" + roleId);
  44. $('#dataRuleListpanel').panel(
  45. "refresh",
  46. "roleController.do?dataRuleListForFunction&functionId="+ treeNode.id + "&roleId=" + roleId);
  47. } else {
  48. }
  49. }
  50. }
  51. };
  52. function filter(treeId, parentNode, childNodes) {
  53. if (!childNodes) return null;
  54. for (var i=0, l=childNodes.length; i<l; i++) {
  55. childNodes[i].name = childNodes[i].text;
  56. //childNodes[i].open = (childNodes[i].state === "open");//异步加载,该项无效
  57. if (childNodes[i].children != null) {
  58. childNodes[i].nodes = childNodes[i].children;
  59. filter(null, childNodes[i], childNodes[i].nodes);//递归设置子节点
  60. }
  61. }
  62. return childNodes;
  63. }
  64. $(function() {
  65. $.fn.zTree.init($("#functionid"), setting);
  66. $("#functionListPanel").panel({
  67. title : '<t:mutiLang langKey="menu.list"/>',
  68. tools : [ {
  69. iconCls : 'icon-save1',
  70. handler : function() {
  71. mysubmit();
  72. }
  73. } ]
  74. });
  75. $("#operationListpanel").panel({
  76. title : '<t:mutiLang langKey="operate.manage"/>',
  77. tools : [ {
  78. iconCls : 'icon-save1',
  79. handler : function() {
  80. submitOperation();
  81. }
  82. } ]
  83. });
  84. $("#dataRuleListpanel").panel({
  85. title : '数据规则权限',
  86. tools : [ {
  87. iconCls : 'icon-save1',
  88. handler : function() {
  89. submitDataRule();
  90. }
  91. } ]
  92. });
  93. });
  94. function mysubmit() {
  95. var roleId = $("#rid").val();
  96. var s = GetNode();
  97. doSubmit("roleController.do?updateAuthority&rolefunctions=" + s + "&roleId=" + roleId);
  98. }
  99. function GetNode() {
  100. var zTree = $.fn.zTree.getZTreeObj("functionid");
  101. var node = zTree.getCheckedNodes(true);
  102. //加入实际被选中的节点
  103. var cnodes = '';
  104. for ( var i = 0; i < node.length; i++) {
  105. cnodes += node[i].id + ',';
  106. }
  107. cnodes = cnodes.substring(0, cnodes.length - 1);
  108. return cnodes;
  109. //加入实际被选中的节点,以及该节点的所有上级节点,即级联父级
  110. /*var cnodes = '';
  111. var pnodes = '';
  112. var pnode = null; //保存上一步所选父节点
  113. for ( var i = 0; i < node.length; i++) {
  114. if(!node[i].isParent){
  115. cnodes += node[i].id + ',';
  116. pnode = node[i].getParentNode();//获取当前节点的父节点
  117. while (pnode != null) {//添加全部父节点
  118. pnodes += pnode.id + ',';
  119. pnode = pnode.getParentNode();
  120. }
  121. }
  122. }
  123. cnodes = cnodes.substring(0, cnodes.length - 1);
  124. pnodes = pnodes.substring(0, pnodes.length - 1);
  125. return cnodes + "," + pnodes;*/
  126. }
  127. function expandAll() {
  128. var zTree = $.fn.zTree.getZTreeObj("functionid");
  129. zTree.expandAll(true);
  130. }
  131. function selecrAll() {
  132. var zTree = $.fn.zTree.getZTreeObj("functionid");
  133. zTree.checkAllNodes(true);
  134. }
  135. function reset() {
  136. $.fn.zTree.init($("#functionid"), setting);
  137. }
  138. function changeMode(){
  139. var zTree = $.fn.zTree.getZTreeObj("functionid");
  140. var typeMode = $("#typeMode").val();
  141. var type = typeMode == 1 ? {"Y" : "", "N" : ""} : {"Y" : "ps", "N" : "ps"};
  142. zTree.setting.check.chkboxType = type;
  143. $("#typeMode").val(typeMode % 2 + 1);
  144. }
  145. // update-end--Author:xuelin Date:20170331 for:[#1714]【功能】角色分配菜单权限的时候,权限树采用ztree重写,不再采用easyui的树----------------------
  146. $('#selecrAllBtn').linkbutton({});
  147. $('#resetBtn').linkbutton({});
  148. $('#changeBtn').linkbutton({});
  149. </script>
  150. <div class="easyui-layout" fit="true">
  151. <div region="center" style="padding: 1px;">
  152. <div class="easyui-panel" style="padding: 1px;" fit="true" border="false" id="functionListPanel">
  153. <input type="hidden" name="roleId" value="${roleId}" id="rid">
  154. <input type="hidden" id="typeMode" value="1"/>
  155. <a id="selecrAllBtn" onclick="selecrAll();"><t:mutiLang langKey="select.all" /></a>
  156. <a id="resetBtn" onclick="reset();"><t:mutiLang langKey="common.reset" /></a>
  157. <!-- update-begin--Author:xuelin Date:20170331 for:[#1714]【功能】角色分配菜单权限的时候,权限树采用ztree重写,不再采用easyui的树-------------------- -->
  158. <a id="changeBtn" onclick="changeMode();"><t:mutiLang langKey="common.typemode" /></a>
  159. <ul id="functionid" class="ztree"></ul>
  160. <!-- update-end--Author:xuelin Date:20170331 for:[#1714]【功能】角色分配菜单权限的时候,权限树采用ztree重写,不再采用easyui的树---------------------- -->
  161. </div>
  162. </div>
  163. <div region="east" style="width: 300px; overflow: hidden;" split="true">
  164. <div class="easyui-layout" fit="true">
  165. <div region="center" style="padding: 1px; border: 0px;">
  166. <div class="easyui-panel" style="padding: 1px;" fit="true" border="false" id="operationListpanel"></div>
  167. </div>
  168. <div region="east" style="width: 150px; overflow: hidden;" split="true">
  169. <div class="easyui-panel" style="padding: 1px;" fit="true" border="false" id="dataRuleListpanel"></div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>