edit.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <!DOCTYPE html>
  2. <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
  3. <meta charset="utf-8">
  4. <head th:include="include :: header"></head>
  5. <link href="/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css" th:href="@{/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css}" rel="stylesheet"/>
  6. <body class="white-bg">
  7. <div class="wrapper wrapper-content animated fadeInRight ibox-content">
  8. <form class="form-horizontal m" id="form-role-edit" th:object="${role}">
  9. <input id="roleId" name="roleId" type="hidden" th:field="*{roleId}"/>
  10. <div class="form-group">
  11. <label class="col-sm-3 control-label ">角色名称:</label>
  12. <div class="col-sm-8">
  13. <input class="form-control" type="text" name="roleName" id="roleName" th:field="*{roleName}"/>
  14. </div>
  15. </div>
  16. <div class="form-group">
  17. <label class="col-sm-3 control-label">权限字符:</label>
  18. <div class="col-sm-8">
  19. <input class="form-control" type="text" name="roleKey" id="roleKey" th:field="*{roleKey}">
  20. </div>
  21. </div>
  22. <div class="form-group">
  23. <label class="col-sm-3 control-label">显示顺序:</label>
  24. <div class="col-sm-8">
  25. <input class="form-control" type="text" name="roleSort" id="roleSort" th:field="*{roleSort}">
  26. </div>
  27. </div>
  28. <div class="form-group">
  29. <label class="col-sm-3 control-label">状态:</label>
  30. <div class="col-sm-8">
  31. <div class="onoffswitch">
  32. <input type="checkbox" th:checked="${role.status == '0' ? true : false}" class="onoffswitch-checkbox" id="status" name="status">
  33. <label class="onoffswitch-label" for="status">
  34. <span class="onoffswitch-inner"></span>
  35. <span class="onoffswitch-switch"></span>
  36. </label>
  37. </div>
  38. </div>
  39. </div>
  40. <div class="form-group">
  41. <label class="col-sm-3 control-label">备注:</label>
  42. <div class="col-sm-8">
  43. <input id="remark" name="remark" class="form-control" type="text" th:field="*{remark}">
  44. </div>
  45. </div>
  46. <div class="form-group">
  47. <label class="col-sm-3 control-label">菜单权限</label>
  48. <div class="col-sm-8">
  49. <div id="menuTrees" class="ztree"></div>
  50. </div>
  51. </div>
  52. <div class="form-group">
  53. <label class="col-sm-3 control-label">数据权限</label>
  54. <div class="col-sm-8">
  55. <div id="deptTrees" class="ztree"></div>
  56. </div>
  57. </div>
  58. <div class="form-group">
  59. <div class="form-control-static col-sm-offset-9">
  60. <button type="submit" class="btn btn-primary">提交</button>
  61. <button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
  62. </div>
  63. </div>
  64. </form>
  65. </div>
  66. <div th:include="include::footer"></div>
  67. <script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js}"></script>
  68. <script type="text/javascript">
  69. // 树结构初始化加载
  70. var setting = {
  71. check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}},
  72. view:{selectedMulti:false,nameIsHTML: true},
  73. data:{simpleData:{enable:true},key:{title:"title"}},
  74. callback:{
  75. beforeClick: function (treeId, treeNode, clickFlag) {
  76. var menuTrees = $.fn.zTree.getZTreeObj(treeId);
  77. menuTrees.checkNode(treeNode, !treeNode.checked, true, true);
  78. return false;
  79. }
  80. }
  81. }, menuTrees, loadTree = function(){
  82. $.get(ctx + "system/menu/roleMenuTreeData?roleId=" + $("#roleId").val(), function(data) {
  83. menuTrees = $.fn.zTree.init($("#menuTrees"), setting, data); //.expandAll(true);
  84. }, null, null, "正在加载,请稍后...");
  85. };loadTree();
  86. // 部门(数据权限)树结构初始化加载
  87. var deptsetting = {
  88. check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}},
  89. view:{selectedMulti:false,nameIsHTML: true},
  90. data:{simpleData:{enable:true},key:{title:"title"}},
  91. callback:{
  92. beforeClick: function (treeId, treeNode, clickFlag) {
  93. var deptTrees = $.fn.zTree.getZTreeObj(treeId);
  94. deptTrees.checkNode(treeNode, !treeNode.checked, true, true);
  95. return false;
  96. }
  97. }
  98. }, deptTrees, loadTree = function(){
  99. $.get(ctx + "system/dept/roleDeptTreeData?roleId=" + $("#roleId").val(), function(data) {
  100. deptTrees = $.fn.zTree.init($("#deptTrees"), deptsetting, data); //.expandAll(true);
  101. }, null, null, "正在加载,请稍后...");
  102. };loadTree();
  103. $("#form-role-edit").validate({
  104. rules:{
  105. roleName:{
  106. required:true,
  107. remote: {
  108. url: ctx + "system/role/checkRoleNameUnique",
  109. type: "post",
  110. dataType: "json",
  111. data: {
  112. "roleId": function() {
  113. return $("input[name='roleId']").val();
  114. },
  115. "roleName": function() {
  116. return $("input[name='roleName']").val();
  117. }
  118. },
  119. dataFilter: function(data, type) {
  120. if (data == "0") return true;
  121. else return false;
  122. }
  123. }
  124. },
  125. roleKey:{
  126. required:true,
  127. },
  128. roleSort:{
  129. required:true,
  130. digits:true
  131. },
  132. },
  133. messages: {
  134. "roleName": {
  135. remote: "角色已经存在"
  136. }
  137. },
  138. submitHandler:function(form){
  139. edit();
  140. }
  141. });
  142. function selectCheckeds() {
  143. var menuIds = "";
  144. var treeNodes = menuTrees.getCheckedNodes(true);
  145. for (var i = 0; i < treeNodes.length; i++) {
  146. if (0 == i) {
  147. menuIds = treeNodes[i].id;
  148. } else {
  149. menuIds += ("," + treeNodes[i].id);
  150. }
  151. }
  152. return menuIds;
  153. }
  154. function selectDeptCheckeds() {
  155. var deptIds = "";
  156. var treeNodes = deptTrees.getCheckedNodes(true);
  157. for (var i = 0; i < treeNodes.length; i++) {
  158. if (0 == i) {
  159. deptIds = treeNodes[i].id;
  160. } else {
  161. deptIds += ("," + treeNodes[i].id);
  162. }
  163. }
  164. return deptIds;
  165. }
  166. function edit() {
  167. var roleId = $("input[name='roleId']").val();
  168. var roleName = $("input[name='roleName']").val();
  169. var roleKey = $("input[name='roleKey']").val();
  170. var roleSort = $("input[name='roleSort']").val();
  171. var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
  172. var remark = $("input[name='remark']").val();
  173. var menuIds = selectCheckeds();
  174. var deptIds = selectDeptCheckeds();
  175. $.ajax({
  176. cache : true,
  177. type : "POST",
  178. url : ctx + "system/role/edit",
  179. data : {
  180. "roleId": roleId,
  181. "roleName": roleName,
  182. "roleKey": roleKey,
  183. "roleSort": roleSort,
  184. "status": status,
  185. "remark": remark,
  186. "menuIds": menuIds,
  187. "deptIds": deptIds
  188. },
  189. async : false,
  190. error : function(request) {
  191. $.modal.alertError("系统错误");
  192. },
  193. success : function(data) {
  194. $.operate.saveSuccess(data);
  195. }
  196. });
  197. }
  198. </script>
  199. </body>
  200. </html>