edit_permission.ftl 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  7. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  8. <meta http-equiv="Cache-Control" content="no-siteapp" />
  9. <LINK rel="Bookmark" href="/favicon.ico" >
  10. <LINK rel="Shortcut Icon" href="/favicon.ico" />
  11. <#include "/base/list_base.ftl">
  12. <title>管理员权限编辑</title>
  13. </head>
  14. <body>
  15. <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i>首页 <span class="c-gray en">&gt;</span>管理员管理 <span class="c-gray en">&gt;</span> 管理员权限编辑 <a class="btn btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" id="re-fresh" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
  16. <div class="pd-20">
  17. <input type="hidden" id="hidden-adminid-input" value="${adminId}">
  18. <form action="${path}/admin/admin/edit_permission" id="form-admin-add">
  19. <input type="hidden" value="${adminId}" name="adminId">
  20. <div class="cl pd-5 bg-1 bk-gray mt-20">
  21. <span class="l"><button id="btn-sub" class="btn btn-primary radius"><i class="Hui-iconfont">&#xe632;</i> 保存</button></span>
  22. </div>
  23. <ul id="Huifold1" class="Huifold">
  24. <#list list as o>
  25. <li class="item">
  26. <h4><label class="permission-class"><input type="checkbox" len="${o.subMenus?size}" value="${o.menuId}" id="permission-${o.menuId}">${o.menuName}</label><b>+</b></h4>
  27. <div class="info">
  28. <table class="table table-border table-bordered">
  29. <thead>
  30. <tr><th width="20%">是否拥有操作此菜单的权限</th><th>菜单名称</th><th>权限集合</th></tr>
  31. </thead>
  32. <tbody>
  33. <#list o.subMenus as subs>
  34. <tr>
  35. <th>
  36. <label><input len="${subs.menuPermisssions?size}" id="permission-input-${subs.subId}" class="ermissions ermissions-${o.menuId}" name="haveId" type="checkbox" value="${subs.subId}">选中</label>
  37. </th>
  38. <td>${subs.subName}</td>
  39. <td>
  40. <#list subs.menuPermisssions as p>
  41. <p>
  42. <label>
  43. <input class="check-permission check-permission${subs.subId}" type="checkbox" name="check-perm" val="${o.menuId}-${subs.subId}-${p.permId}-${p.permSymbol}" <#if (p.permSubId)??>checked</#if> />
  44. ${p.permName}
  45. </label>
  46. </p>
  47. </#list>
  48. </td>
  49. </tr>
  50. </#list>
  51. </tbody>
  52. </table>
  53. </div>
  54. </li>
  55. </#list>
  56. </ul>
  57. </form>
  58. </div>
  59. </body>
  60. <script type="text/javascript">
  61. /**
  62. * 二级管理员 权限编辑 JS
  63. */
  64. $(function() {
  65. $.Huifold("#Huifold1 .item h4","#Huifold1 .item .info","fast",1,"click"); /*5个参数顺序不可打乱,分别是:相应区,隐藏显示的内容,速度,类型,事件*/
  66. defaultSelect();
  67. // 监听一级分类的事件
  68. $(".permission-class").click(function(event) {
  69. var $check = $($(this).children("input")[0]);
  70. select_state($check.val(), event, $check[0]);
  71. });
  72. // 监听二级分类的事件
  73. $(".ermissions").click(function(){
  74. select_child_state($(this)[0]);
  75. });
  76. // 监听三级分类事件
  77. $(".check-permission").click(function() {
  78. select_permission_state($(this)[0]);
  79. });
  80. // 表单提交
  81. $("#btn-sub").click(function(){
  82. var array = new Array();
  83. var ps = $(".check-permission");
  84. var j = 0;
  85. for (var i = 0; i < ps.length; i++) {
  86. if (ps[i].checked) {
  87. array[j] = $(ps[i]).attr("val");
  88. j ++;
  89. }
  90. }
  91. if (array.length == 0) {
  92. layer.msg('您没有提管理员选择权限,如果想管理员看不见菜单,请禁用管理员用户!',{icon: 5,time:4500});
  93. return false;
  94. }
  95. $.post(root_path + "/admin/sys/edit_permission",{"adminId":$("#hidden-adminid-input").val(), "perms":array},function(result){
  96. if (result.returnCode != 200 || result.returnCode != 200) {
  97. layer.msg('重置失败,请重试!',{icon: 5,time:3000});
  98. } else {
  99. layer.msg('修改成功,即将前往管理员页面!',{icon: 1,time:2000}, function () {
  100. window.history.go(-1);
  101. });
  102. }
  103. });
  104. return false;
  105. });
  106. });
  107. /* 默认选中事件 */
  108. function defaultSelect() {
  109. // 三级菜单
  110. var ps = $(".check-permission");
  111. for (var j = 0; j < ps.length; j++) {
  112. select_permission_state(ps[j]);
  113. }
  114. /*var es = $(".ermissions");
  115. for(var i = 0; i < es.length; i++) {
  116. select_child_state(es[i]);
  117. }*/
  118. }
  119. /* 二级菜单选择事件 */
  120. function select_child_state(obj) {
  121. var pid = ($(obj).attr("class")).replace("ermissions ermissions-", "");
  122. // 已经选择的二级菜单
  123. var selectLength = $(".ermissions-" + pid + ":checked").length;
  124. // 一级菜单总的二级菜单
  125. var total = parseInt($("#permission-" + pid).attr("len"));
  126. // 选中
  127. if (total == selectLength) {
  128. $("#permission-" + pid).prop("checked", "true");
  129. } else {
  130. $("#permission-" + pid).prop("checked", "");
  131. }
  132. // 联动三级
  133. var ps = $(".check-permission" + ($(obj).val()));
  134. if (obj.checked) {
  135. for (var i = 0; i < ps.length; i++) {
  136. $(ps[i]).prop("checked", "true");
  137. }
  138. } else {
  139. for (var i = 0; i < ps.length; i++) {
  140. $(ps[i]).prop("checked", "");
  141. }
  142. }
  143. }
  144. /* 三级菜单选择时间 */
  145. function select_permission_state(obj) {
  146. var eid = ($(obj).attr("class")).replace("check-permission check-permission", "");
  147. // 获取二级所属二级菜单
  148. var $input = $("#permission-input-" + eid);
  149. var inputTotal = parseInt($input.attr("len"));
  150. // 当前选择的数量
  151. var selectLength = $(".check-permission" + eid + ":checked").length;
  152. if (inputTotal == selectLength) {
  153. $input.prop("checked", "true");
  154. } else {
  155. $input.prop("checked", "");
  156. }
  157. // 每一个三级菜单选择完成,联动二级菜单
  158. var es = $(".ermissions");
  159. for(var i = 0; i < es.length; i++) {
  160. var objElement = es[i];
  161. var pid = ($(objElement).attr("class")).replace("ermissions ermissions-", "");
  162. // 已经选择的二级菜单
  163. var selectSubMenuTotal = $(".ermissions-" + pid + ":checked").length;
  164. // 一级菜单总的二级菜单
  165. var total = parseInt($("#permission-" + pid).attr("len"));
  166. // 选中
  167. if (total == selectSubMenuTotal) {
  168. $("#permission-" + pid).prop("checked", "true");
  169. } else {
  170. $("#permission-" + pid).prop("checked", "");
  171. }
  172. }
  173. }
  174. /* 一级菜单权限改变事件 */
  175. function select_state(id, event, obj) {
  176. if (obj.checked) {
  177. // 全选所有
  178. $(".ermissions-" + id).prop("checked", "true");
  179. $(".ermissions-" + id).each(function () {
  180. var val = $(this).val();
  181. $(".check-permission"+ val).prop("checked", "true");
  182. })
  183. } else {
  184. // 取消全选所有
  185. $(".ermissions-" + id).removeAttr("checked");
  186. $(".ermissions-" + id).each(function () {
  187. var val = $(this).val();
  188. $(".check-permission"+ val).removeAttr("checked");
  189. })
  190. }
  191. // 停止事件冒泡
  192. event.stopPropagation();
  193. }
  194. </script>
  195. </html>