roleMenu.html 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>权限分配</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/admin.css?v=318"/>
  10. <style>
  11. .layui-card-body {
  12. padding: 0;
  13. }
  14. ul.ztree li span.button.switch {
  15. margin-right: 5px
  16. }
  17. ul.ztree ul ul li {
  18. display: inline-block;
  19. white-space: normal;
  20. width: 20%;
  21. }
  22. ul.ztree > li > ul > li {
  23. padding: 5px
  24. }
  25. ul.ztree > li {
  26. /*background: #dae6f0*/
  27. }
  28. ul.ztree > li:nth-child(even) > ul > li:nth-child(even) {
  29. background: #eef5fa
  30. }
  31. ul.ztree > li:nth-child(even) > ul > li:nth-child(odd) {
  32. background: #f6fbff
  33. }
  34. ul.ztree > li:nth-child(odd) > ul > li:nth-child(even) {
  35. background: #eef5fa
  36. }
  37. ul.ztree > li:nth-child(odd) > ul > li:nth-child(odd) {
  38. background: #f6fbff
  39. }
  40. ul.ztree li {
  41. white-space: normal !important
  42. }
  43. ul.ztree > li > a > span {
  44. font-size: 15px;
  45. font-weight: 700
  46. }
  47. </style>
  48. </head>
  49. <body>
  50. <!-- 页面加载loading -->
  51. <div class="page-loading">
  52. <div class="ball-loader">
  53. <span></span><span></span><span></span><span></span>
  54. </div>
  55. </div>
  56. <!-- 正文开始 -->
  57. <div class="layui-fluid">
  58. <div class="layui-row">
  59. <div class="layui-card">
  60. <div class="layui-card-header">
  61. 权限分配
  62. <div style="float: right">
  63. <a href="javascript:;" id="saveMenu" class="layui-btn layui-btn-normal">保存选择</a>
  64. <a href="javascript:;" id="goBack" class="layui-btn layui-btn-normal">返回</a>
  65. </div>
  66. </div>
  67. <div class="layui-card-body">
  68. <blockquote class="layui-elem-quote">
  69. 通用菜单
  70. </blockquote>
  71. <ul id="menuTree" class="ztree"></ul>
  72. <blockquote class="layui-elem-quote" id="entTreeBlock">
  73. 企业菜单
  74. </blockquote>
  75. <ul id="entTree" class="ztree"></ul>
  76. <blockquote class="layui-elem-quote" id="orgTreeBlock">
  77. 集团菜单
  78. </blockquote>
  79. <ul id="orgTree" class="ztree"></ul>
  80. <blockquote class="layui-elem-quote" id="groupTreeBlock">
  81. 机构菜单
  82. </blockquote>
  83. <ul id="groupTree" class="ztree"></ul>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </body>
  89. <!-- js部分 -->
  90. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  91. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  92. <script>
  93. layui.use(['layer', 'form', 'util', 'zTree', 'admin', 'uParas', '_zTree'], function () {
  94. var $ = layui.jquery;
  95. var layer = layui.layer;
  96. var admin = layui.admin;
  97. var uParas = layui.uParas;
  98. var _zTree = layui._zTree;
  99. var rId = uParas.getUrlParam("rId");
  100. var pageHeight = admin.getPageHeight();
  101. $("#split-group").css("height", pageHeight - 80);
  102. $('#saveMenu').click(function () {
  103. var menus = [];
  104. var zTreeOjb = $.fn.zTree.getZTreeObj("menuTree");
  105. var checkedNodes = zTreeOjb.getCheckedNodes();
  106. if (checkedNodes != null && checkedNodes.length > 0) {
  107. for (let i = 0; i < checkedNodes.length; i++) {
  108. var one = checkedNodes[i];
  109. one.children = [];
  110. menus.push(one);
  111. }
  112. }
  113. var entTree = $.fn.zTree.getZTreeObj("entTree");
  114. if (entTree != null && entTree.getCheckedNodes().length > 0) {
  115. var entTreeNode = entTree.getCheckedNodes();
  116. for (let i = 0; i < entTreeNode.length; i++) {
  117. var one = entTreeNode[i];
  118. one.children = [];
  119. menus.push(one);
  120. }
  121. }
  122. var orgTree = $.fn.zTree.getZTreeObj("orgTree");
  123. if (orgTree != null && orgTree.getCheckedNodes().length > 0) {
  124. var entTreeNode = orgTree.getCheckedNodes();
  125. for (let i = 0; i < entTreeNode.length; i++) {
  126. var one = entTreeNode[i];
  127. one.children = [];
  128. menus.push(one);
  129. }
  130. }
  131. var groupTree = $.fn.zTree.getZTreeObj("groupTree");
  132. if (groupTree != null && groupTree.getCheckedNodes().length > 0) {
  133. var entTreeNode = groupTree.getCheckedNodes();
  134. for (let i = 0; i < entTreeNode.length; i++) {
  135. var one = entTreeNode[i];
  136. one.children = [];
  137. menus.push(one);
  138. }
  139. }
  140. admin.req(uParas.baseUrl + '/sys/role/addRoleMenu', {
  141. menus: JSON.stringify(menus),
  142. rId: rId
  143. }, function (res) {
  144. if (res.code == 1) {
  145. location.href = "./list.html";
  146. }
  147. }, 'post');
  148. });
  149. $('#goBack').click(function () {
  150. location.href = "./list.html";
  151. });
  152. var setting = {
  153. check: {
  154. enable: true,
  155. chkboxType: {"Y": "ps", "N": "ps"}
  156. },
  157. view: {
  158. showLine: false,
  159. },
  160. data: {
  161. simpleData: {
  162. enable: true,
  163. idKey: "menuId",
  164. pIdKey: "menuParent",
  165. rootPId: 0
  166. },
  167. key: {
  168. name: "menuText"
  169. }
  170. },
  171. callback: {}
  172. }
  173. $("#entTreeBlock").hide();
  174. $("#orgTreeBlock").hide();
  175. $("#groupTreeBlock").hide();
  176. if (rId == 1) {
  177. menu(1, "menuTree");
  178. } else if (rId == 2 || rId == 3) {
  179. menu(1, "menuTree");
  180. menu(2, "groupTree");
  181. $("#groupTreeBlock").show();
  182. } else if (rId == 4 || rId == 5) {
  183. menu(1, "menuTree");
  184. menu(3, "entTree");
  185. $("#entTreeBlock").show();
  186. } else if (rId == 6 || rId == 7) {
  187. menu(1, "menuTree");
  188. menu(4, "orgTree");
  189. $("#orgTreeBlock").show();
  190. } else {
  191. menu(1, "menuTree");
  192. menu(2, "groupTree");
  193. menu(3, "entTree");
  194. menu(4, "orgTree");
  195. $("#entTreeBlock").show();
  196. $("#orgTreeBlock").show();
  197. $("#groupTreeBlock").show();
  198. }
  199. function menu(id, divId) {
  200. admin.req(uParas.baseUrl + '/sys/menu/' + id, {type: rId}, function (res) {
  201. if (res.code == 1) {
  202. $.fn.zTree.init($('#' + divId), setting, res.data);
  203. // $.fn.zTree.getZTreeObj(divId).expandAll(true);
  204. layer.closeAll('loading');
  205. }
  206. }, 'get');
  207. }
  208. });
  209. </script>
  210. </html>