permision.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. var RoleMap = new HashMap()
  2. var PermisionMap = new HashMap()
  3. var edittype = "add"
  4. var zdata = [];
  5. var cols = [{
  6. width: 10,
  7. text: '序号',
  8. type: 'number',
  9. flex: true,
  10. colClass: 'text-center'
  11. }, {
  12. width: 30,
  13. text: '角色',
  14. type: 'string',
  15. flex: true,
  16. colClass: 'text-center'
  17. }, {
  18. width: 30,
  19. text: '操作权限',
  20. type: 'string',
  21. flex: true,
  22. sort: 'down',
  23. colClass: 'text-center'
  24. }, {
  25. width: 140,
  26. text: '操作',
  27. type: 'string',
  28. flex: true,
  29. colClass: 'text-center'
  30. }];
  31. $(document).ready(function () {
  32. // $("#main_content_title").html("权限管理")
  33. $('#dashboard').dashboard({ draggable: true });
  34. var zTreeObj;
  35. var zNodes = [];
  36. dept_tree = $.fn.zTree.init($("#permision_tree"), {}, zNodes);
  37. getPermission()
  38. $("#permision_add").on("click", function () {
  39. var nodedata = dept_tree.getSelectedNodes();
  40. edittype = "add"
  41. loadPermisionData(nodedata)
  42. $('#addModal').modal('show')
  43. })
  44. $("#permision_edit").on("click", function () {
  45. //获取选中的节点
  46. var nodedata = dept_tree.getSelectedNodes();
  47. if (nodedata.length < 1) {
  48. layer.msg('请先选择权限!', {
  49. time: 2000, //20s后自动关闭
  50. });
  51. return;
  52. }
  53. edittype = "edit"
  54. loadPermisionData(nodedata)
  55. $('#addModal').modal('show');
  56. });
  57. $("#permision_delete").on("click", function () {
  58. //获取选中的节点
  59. var nodedata = dept_tree.getSelectedNodes();
  60. if (nodedata.length < 1) {
  61. layer.msg('请先选择权限!', {
  62. time: 2000, //20s后自动关闭
  63. });
  64. return;
  65. }
  66. PermisionDelete(nodedata[0].id, function (data) {
  67. layer.msg('删除成功!', {
  68. time: 2000, //20s后自动关闭
  69. });
  70. dept_tree.removeNode(nodedata[0]);
  71. }, function (error) {
  72. });
  73. });
  74. $("#role_add").on("click", function () {
  75. var nodedata = dept_tree.getSelectedNodes();
  76. edittype = "add"
  77. if (nodedata.length < 1) {
  78. layer.msg('请先选择权限!', {
  79. time: 2000, //20s后自动关闭
  80. });
  81. return;
  82. }
  83. loadPermisionRoleData(nodedata, 0)
  84. $('#addRoleModal').modal('show');
  85. });
  86. $('.datatable').datatable({
  87. checkable: false,
  88. sortable: false,
  89. data: {
  90. cols: cols,
  91. rows: []
  92. }
  93. });
  94. $('.datatable').on('click', 'button', function () {
  95. if (this.name == "user_edit") {
  96. var nodedata = dept_tree.getSelectedNodes();
  97. edittype = "edit"
  98. var user = nodedata
  99. loadPermisionRoleData(user, this.id)
  100. $('#addRoleModal').modal('show')
  101. }
  102. if (this.name == "user_delete") {
  103. var nodedata = dept_tree.getSelectedNodes();
  104. var data = {
  105. "role_id": this.id,
  106. "permission_id": nodedata[0].id
  107. }
  108. PermisionRoleDELETE(data, function (data) {
  109. layer.msg('角色删除成功!', {
  110. time: 2000, //20s后自动关闭
  111. }, function () {
  112. var nodedata = dept_tree.getSelectedNodes();
  113. updateRole(nodedata[0].id)
  114. });
  115. },
  116. function (error) {
  117. })
  118. }
  119. });
  120. });
  121. function getPermission() {
  122. function zTreeOnRename(event, treeId, treeNode, isCancel) {
  123. alert(treeNode.tId + ", " + treeNode.name);
  124. }
  125. // function zTreeBeforeDrop(treeId, treeNodes, targetNode, moveType) {
  126. // return !(targetNode == null || (moveType != "inner" && !targetNode.parentTId));
  127. // };
  128. function zTreeOnRemove(event, treeId, treeNode) {
  129. alert(treeNode.tId + ", " + treeNode.name);
  130. }
  131. function zTreeOnClick(event, treeId, treeNode) {
  132. updateRole(treeNode.id)
  133. };
  134. var setting = {
  135. data: {
  136. simpleData: {
  137. enable: true,
  138. idKey: "id",
  139. pIdKey: "pId",
  140. rootPId: null
  141. }
  142. },
  143. view: { //表示tree的显示状态
  144. selectMulti: false //表示禁止多选
  145. },
  146. check: { //表示tree的节点在点击时的相关设置
  147. enable: false, //是否显示radio/checkbox
  148. chkStyle: "checkbox", //值为checkbox或者radio表示
  149. checkboxType: { p: "", s: "" }, //表示父子节点的联动效果
  150. radioType: "level" //设置tree的分组
  151. },
  152. callback: {
  153. onRename: zTreeOnRename,
  154. // beforeDrop: zTreeBeforeDrop,
  155. onRemove: zTreeOnRemove,
  156. onClick: zTreeOnClick
  157. },
  158. edit: {
  159. enable: true,
  160. drag: {
  161. autoExpandTrigger: true,
  162. isMove: true,
  163. prev: false,
  164. next: true,
  165. inner: true,
  166. autoOpenTime: 0
  167. },
  168. showRenameBtn: false,
  169. showRemoveBtn: false
  170. }
  171. };
  172. PermisionGetAll(function (data) {
  173. zdata = [];
  174. for (var i = 0; i < data.length; i++) {
  175. var m = data[i];
  176. var zdataItem = {};
  177. zdataItem["id"] = m.id;
  178. zdataItem["value"] = m.id;
  179. zdataItem["pId"] = null;
  180. zdataItem["name"] = m.name;
  181. zdataItem["open"] = true;
  182. zdataItem["children"] = addobj(m);
  183. zdata.push(zdataItem);
  184. PermisionMap.set(m.id, m);
  185. }
  186. dept_tree = $.fn.zTree.init($("#permision_tree"), setting, zdata)
  187. }, function (error) {
  188. });
  189. }
  190. function addobj(data) {
  191. var zdata = [];
  192. if (typeof (data.childs) != "undefined" && data.childs != null &&
  193. data.childs.length > 0) {
  194. for (var i = 0; i < data.childs.length; i++) {
  195. var m = data.childs[i];
  196. var zdataItem = {};
  197. zdataItem["id"] = m.id;
  198. zdataItem["value"] = m.id;
  199. zdataItem["pId"] = data.id;
  200. zdataItem["icon"] = "";
  201. zdataItem["open"] = true;
  202. zdataItem["name"] = m.name;
  203. zdataItem["children"] = addobj(m);
  204. zdata.push(zdataItem);
  205. PermisionMap.set(m.id, m);
  206. }
  207. return zdata;
  208. } else {
  209. return [];
  210. }
  211. }
  212. function updateRole(permisionid) {
  213. RoleGetByPermision(permisionid, function (data) {
  214. //跟新table
  215. var rowdata = [];
  216. if (data != null && data.length > 0) {
  217. for (var i = 0; i < data.length; i++) {
  218. var role = data[i];
  219. RoleMap.set(role.id, role)
  220. var roledata = {};
  221. roledata["checked"] = false;
  222. roledata["data"] = [i + 1, typeof (role.des) == "undefined" ? "" : role.des, typeof (role.mod) == "undefined" ? getpertype(1) : getpertype(role.mod), '<button class="btn btn-primary" name="user_edit" id=' + role.id + '><i class="icon icon-edit"></i>修改</button> <button class="btn btn-primary" name="user_delete" id=' + role.id + ' ><i class="icon icon-remove-circle"></i>删除</button>'];
  223. rowdata.push(roledata);
  224. RoleMap.set(role.id, role);
  225. }
  226. }
  227. // 使用data参数更新数据:
  228. $('.datatable').datatable('load', {
  229. cols: cols,
  230. rows: rowdata
  231. });
  232. },
  233. function (error) {
  234. });
  235. }
  236. function getpertype(mod) {
  237. switch (mod) {
  238. case 1:
  239. return "读写";
  240. case 2:
  241. return "写";
  242. case 3:
  243. return "读";
  244. case 4:
  245. return "删除";
  246. default: return "读";
  247. }
  248. }