auth.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <!DOCTYPE html>
  2. <html lang="en" style="background-color: #f2f2f2;">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>功能权限</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  10. <meta name="apple-mobile-web-app-capable" content="yes">
  11. <meta name="format-detection" content="telephone=no">
  12. <link rel="stylesheet" type="text/css" href="../../layui/css/layui.css" />
  13. <link rel="stylesheet" type="text/css" href="../../layui/css/eleTree.css" />
  14. <link rel="stylesheet" type="text/css" href="../../css/common.css" />
  15. <link rel="stylesheet" type="text/css" href="../../css/systemTree.css" />
  16. <link rel="stylesheet" type="text/css" href="../../iconfont/iconfont.css" />
  17. <style>
  18. .role-forbid {
  19. margin-left: 15px;
  20. }
  21. .role-forbid i {
  22. font-size: 16px;
  23. color: red;
  24. font-weight: bold
  25. }
  26. </style>
  27. </head>
  28. <body class="main-container">
  29. <div class="layui-fluid">
  30. <div class="layui-row layui-col-space1">
  31. <div class="layui-col-xs12 layui-col-sm12 layui-col-md7">
  32. <div class="system layui-card">
  33. <div class="layui-card-body">
  34. <div class="eleTree" id="menuTree" lay-filter="menuTree"></div>
  35. </div>
  36. </div>
  37. <div class="layui-form-item layui-layer-btn">
  38. <div class="layui-input-block">
  39. <button type="reset" class="layui-btn layui-btn-primary" id="closeWin">取消</button>
  40. <button class="layui-btn" id="saveData">保存</button>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <script type="text/javascript">
  47. function loadJS(url) {
  48. document.write("<script src='" + url + "?ver=" + new Date().getTime() + "'><\/script>")
  49. }
  50. loadJS("../../layui/layui.js");
  51. loadJS("../../js/ajaxhook.min.js");
  52. loadJS("../../js/config.js");
  53. </script>
  54. <script>
  55. layui.config({
  56. base: "../../js/layuiPlugins/"
  57. }).use(['form', 'jquery', 'eleTree'], function () {
  58. var form = layui.form,
  59. $ = layui.jquery,
  60. eleTree = layui.eleTree;
  61. var treeObj, oData = [];
  62. //保存权限
  63. $('#saveData').on("click", function (obj) {
  64. var checkedData = treeObj.getChecked(false, true);//获取已选节点(只取叶子节点,选取半选节点)
  65. var postData = { guid: guid, menuList: [] };
  66. for (var j = 0; j < oData.length; j++) {
  67. oData[j].subMenuList = null;
  68. }
  69. for (var i = 0; i < checkedData.length; i++) {
  70. for (var j = 0; j < oData.length; j++) {
  71. if (checkedData[i].id == oData[j].id) {
  72. postData.menuList.push(oData[j]);
  73. break;
  74. }
  75. }
  76. }
  77. $.ajax({
  78. type: 'POST',
  79. url: "role_saveAuth",
  80. data: JSON.stringify(postData),
  81. contentType: 'application/json',
  82. success: function (res) {
  83. if (!(res.code - 0)) {
  84. parent.layer.msg(res.msg, {
  85. icon: 1
  86. });
  87. parent.layer.close(parent.layer.getFrameIndex(window.name));
  88. } else {
  89. layer.msg(res.msg, {
  90. icon: 2
  91. });
  92. }
  93. }
  94. });
  95. });
  96. //关闭窗口
  97. $("#closeWin").on("click", function () {
  98. parent.layer.close(parent.layer.getFrameIndex(window.name));
  99. });
  100. var guid = location.searchObj().guid;
  101. $.ajax({
  102. type: "get",
  103. url: 'role_getAuth?roleId=' + guid,
  104. success: function (data) {
  105. if (data.code === 0) {
  106. var menuData = [];
  107. var setMenuData = function (submenu, obj, lev) {//组装tree需要的数据
  108. for (var i = 0; i < submenu.length; i++) {
  109. oData.push(submenu[i]);
  110. obj.push({
  111. id: submenu[i].id,
  112. label: submenu[i].funName,
  113. spread: true,
  114. checked: submenu[i].isChecked == 1 && lev > 2
  115. });
  116. if (submenu[i].subMenuList && submenu[i].subMenuList.length > 0) {
  117. obj[i].children = [];
  118. setMenuData(submenu[i].subMenuList, obj[i].children, lev + 1);
  119. }
  120. }
  121. };
  122. setMenuData(data.data, menuData, 0);
  123. treeObj = eleTree.render({
  124. elem: '#menuTree',
  125. data: menuData,
  126. showCheckbox: true,
  127. defaultExpandAll: true,
  128. expandOnClickNode: false
  129. });
  130. } else {
  131. parent.layer.msg(res.msg, {
  132. icon: 1
  133. });
  134. }
  135. }
  136. });
  137. form.render();
  138. });
  139. </script>
  140. </body>
  141. </html>