platform.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. var PlatformConfigerObject = {
  2. codeId: 0,
  3. RoleId: -1,
  4. functionId: 0,
  5. CurentMenuData: {},
  6. "tableList": {},
  7. zTreeParameter: {
  8. curAsyncCount: 0
  9. },
  10. MenuMgr: function() {
  11. Curd.MasterData = {
  12. "parentcode": "sysmenu",
  13. "parentname": "系统菜单"
  14. };
  15. Global.Ztree.Init($("#menu_area #menu_tree"), {
  16. url: Global.AccessUrl + "/api/getGlobalChildrenCode",
  17. idKey: "code",
  18. pidKey: "parentcode",
  19. nameKey: "name",
  20. rootid: "sysmenu",
  21. rootpid: "sysmenu",
  22. callback: {
  23. onClick: function(event, treeId, treeNode) {
  24. $("#menu_area .layui-elem-quote").html(treeNode.name);
  25. Curd.MasterData = {
  26. "parentcode": treeNode.code,
  27. "parentname": treeNode.name
  28. };
  29. Curd.List({
  30. "pcode": treeNode.code
  31. });
  32. }
  33. }
  34. });
  35. Curd.Init({
  36. module_name: "menu_curd", //与主div的ID一致,并且在static/module下需要有同名文件夹
  37. window_size: ["50rem", "25rem"],
  38. "height": $("#menu_tree").height() - $("#menu_curd .layui-elem-quote").height() - 50,
  39. apiUrl: {
  40. "list_url": "/api/getGlobalCode",
  41. "save_url": "/api/saveGlobalcode",
  42. "delete_url": "/api/deleteGlobalcode",
  43. "read_url": "/api/getGlobalCode/byid"
  44. },
  45. columns: [
  46. [{
  47. field: 'id',
  48. title: 'ID',
  49. sort: true
  50. }, {
  51. field: 'name',
  52. title: '菜单名称'
  53. }, {
  54. field: 'code',
  55. title: "权限编码"
  56. }, {
  57. fixed: 'right',
  58. title: "操作",
  59. width: 150,
  60. align: 'center',
  61. toolbar: '#menu_curd_row_operator'
  62. }]
  63. ]
  64. });
  65. Curd.List({
  66. "pcode": "sysmenu"
  67. });
  68. },
  69. ShowAddMenu: function(id) {
  70. PlatformConfigerObject.codeId = id;
  71. var title = id == 0 ? "添加菜单" : "修改菜单";
  72. layui.use(['layer', 'form'], function() {
  73. layui.layer.open({
  74. type: 2,
  75. resize: false,
  76. scrollbar: false,
  77. title: title,
  78. area: ['500px', '300px'],
  79. content: "/static/module/childmodule/add_menu.html"
  80. });
  81. });
  82. },
  83. ShowFuction: function(id) {
  84. PlatformConfigerObject.codeId = id;
  85. layui.use(['layer', 'form'], function() {
  86. layui.layer.open({
  87. type: 2,
  88. resize: false,
  89. scrollbar: false,
  90. title: "编辑控制项功能",
  91. area: ['850px', '650px'],
  92. content: "/static/module/childmodule/add_function.html"
  93. });
  94. });
  95. },
  96. SaveMenu: function(parameter, type) {
  97. $.post(Global.AccessUrl + "/api/saveGlobalcode", parameter, function(returnData) {
  98. if (returnData["returncode"] == 200 || returnData.returncode == 0) {
  99. if (type == "menu")
  100. parent.layer.closeAll();
  101. } else {
  102. layer.alert(returnData["msg"]);
  103. return false;
  104. }
  105. if (type == "menu") {
  106. parent.PlatformConfigerObject.SearchMenuList();
  107. } else {
  108. parent.PlatformConfigerObject.SearchFunctionList(parameter["parentcode"]);
  109. }
  110. });
  111. },
  112. DelMenu: function(tableid) {
  113. $.post(Global.AccessUrl + "/api/record/delete", {
  114. "tablename": "global_const_code",
  115. "id": tableid
  116. }, function(returnData) {
  117. if (returnData["code"] == 0) {
  118. PlatformConfigerObject.SearchMenuList();
  119. } else {
  120. layer.alert(returnData["msg"]);
  121. }
  122. });
  123. },
  124. SearchMenuList: function() {
  125. var columns = [
  126. [{
  127. field: 'id',
  128. title: 'ID',
  129. sort: true
  130. }, {
  131. field: 'name',
  132. title: '菜单名称'
  133. }, {
  134. field: 'code',
  135. title: "权限编码"
  136. }, {
  137. fixed: 'right',
  138. title: "操作",
  139. width: 150,
  140. align: 'center',
  141. toolbar: '#data_operator'
  142. }]
  143. ];
  144. var parameter = {
  145. elem: "#table_menu",
  146. url: Global.AccessUrl + "/api/getGlobalCode",
  147. toolbar: "#table-tools-bar",
  148. id: "node-search",
  149. cols: columns,
  150. method: "GET",
  151. where: {
  152. "pcode": "sysmenu"
  153. }
  154. }
  155. Tools.BindTable(parameter);
  156. },
  157. SearchFunctionList: function(code) {
  158. var columns = [
  159. [{
  160. field: 'id',
  161. title: 'ID'
  162. }, {
  163. field: 'name',
  164. title: '功能项名称'
  165. }, {
  166. field: 'code',
  167. title: "权限编码"
  168. }, {
  169. fixed: 'right',
  170. title: "操作",
  171. width: 150,
  172. align: 'center',
  173. toolbar: '#function_operator'
  174. }]
  175. ];
  176. var parameter = {
  177. elem: "#table_function",
  178. url: Global.AccessUrl + "/api/getGlobalCode",
  179. cols: columns,
  180. where: {
  181. "pcode": code
  182. },
  183. height: 470
  184. }
  185. Tools.BindTable(parameter);
  186. },
  187. RoleMgr: function() {
  188. //加载角色列表
  189. $.getJSON(Global.AccessUrl + "/api/getGlobalCode", {
  190. "pcode": "pl_role_code"
  191. }, function(result) {
  192. if (result.code != 0 || result.returncode == 500) {
  193. layer.msg(result.msg);
  194. return false;
  195. }
  196. var $rolelist = $("#role_area #rolelist #ul_role"),
  197. roles = [];
  198. var tpl = '<li class="" onclick="PlatformConfigerObject.LoadMenuTree({ID});">' +
  199. ' <div class="layui-menu-body-title">{NAME}</div>' +
  200. ' </li>';
  201. for (var i = 0; i < result.data.length; i++) {
  202. var item = result.data[i];
  203. roles.push(tpl.replace("{ID}", item.id).replace("{NAME}", item.name));
  204. }
  205. $rolelist.html(roles.join(""));
  206. });
  207. //加载菜单管理项
  208. if ($("#role_tree #function_tree").children().length == 0) { //如果未加载加载tree
  209. Global.Ztree.Init($("#role_tree #function_tree"), {
  210. url: Global.AccessUrl + "/api/getGlobalChildrenCode",
  211. idKey: "code",
  212. pidKey: "parentcode",
  213. nameKey: "name",
  214. rootid: "sysmenu",
  215. rootpid: "sysmenu",
  216. check: {
  217. enable: true,
  218. chkStyle: "checkbox"
  219. },
  220. callback: {
  221. beforeAsync: PlatformConfigerObject.beforeAsync,
  222. onAsyncSuccess: PlatformConfigerObject.onAsyncSuccess,
  223. onInitLoad: PlatformConfigerObject.asyncAll
  224. },
  225. async: {
  226. type: "get"
  227. }
  228. });
  229. } else {
  230. PlatformConfigerObject.checkNoAll();
  231. }
  232. },
  233. checkNoAll: function() {
  234. var treeObj = $.fn.zTree.getZTreeObj("function_tree");
  235. treeObj.checkAllNodes(false);
  236. },
  237. asyncAll: function() {
  238. var zTree = $.fn.zTree.getZTreeObj("function_tree");
  239. PlatformConfigerObject.asyncNodes(zTree.getNodes());
  240. },
  241. beforeAsync: function() {
  242. PlatformConfigerObject.zTreeParameter.curAsyncCount++;
  243. },
  244. onAsyncSuccess: function(event, treeId, treeNode, msg) {
  245. PlatformConfigerObject.zTreeParameter.curAsyncCount--;
  246. if (curStatus == "expand") {
  247. PlatformConfigerObject.expandNodes(treeNode.children);
  248. } else if (curStatus == "async") {
  249. PlatformConfigerObject.asyncNodes(treeNode.children);
  250. }
  251. if (PlatformConfigerObject.zTreeParameter.curAsyncCount <= 0) {
  252. var treeObj = $.fn.zTree.getZTreeObj("function_tree");
  253. treeObj.expandAll(true);
  254. $("#role_area #rolelist #ul_role").find("li:first").trigger("click");
  255. }
  256. },
  257. expandNodes: function(nodes) {
  258. if (!nodes) return false;
  259. var zTree = $.fn.zTree.getZTreeObj("function_tree");
  260. for (var i = 0, l = nodes.length; i < l; i++) {
  261. zTree.expandNode(nodes[i], true, false, false);
  262. if (nodes[i].isParent && nodes[i].zAsync) {
  263. PlatformConfigerObject.expandNodes(nodes[i].children);
  264. }
  265. }
  266. },
  267. asyncNodes: function(nodes) {
  268. if (!nodes) return;
  269. curStatus = "async";
  270. var zTree = $.fn.zTree.getZTreeObj("function_tree");
  271. for (var i = 0, l = nodes.length; i < l; i++) {
  272. if (nodes[i].isParent && nodes[i].zAsync) {
  273. PlatformConfigerObject.asyncNodes(nodes[i].children);
  274. } else {
  275. zTree.reAsyncChildNodes(nodes[i], "refresh", true);
  276. }
  277. }
  278. },
  279. CategoryTree: function(Code) {
  280. Global.Ztree.Init($("#category_area #tree"), {
  281. url: Global.AccessUrl + "/api/getGlobalChildrenCode",
  282. idKey: "code",
  283. pidKey: "parentcode",
  284. nameKey: "name",
  285. rootid: "systemconstcode",
  286. rootpid: "systemconstcode",
  287. callback: {
  288. onClick: function(event, treeId, treeNode) {
  289. $("#systemconstcode_list .layui-elem-quote").html(treeNode.name);
  290. Curd.MasterData = {
  291. "parentcode": treeNode.code,
  292. "parentname": treeNode.name
  293. };
  294. Curd.List({
  295. "pcode": treeNode.code
  296. });
  297. }
  298. }
  299. });
  300. Curd.Init({
  301. module_name: "systemconstcode_list", //与主div的ID一致,并且在static/module下需要有同名文件夹
  302. window_size: ["50rem", "25rem"],
  303. apiUrl: {
  304. "list_url": "/api/getGlobalCode",
  305. "save_url": "/api/saveGlobalcode",
  306. "delete_url": "/api/deleteGlobalcode",
  307. "read_url": "/api/getGlobalCode/byid"
  308. },
  309. columns: [
  310. [{
  311. field: 'code',
  312. title: '字典代码',
  313. width: 185,
  314. align: "center"
  315. }, {
  316. field: 'name',
  317. title: "字典名称"
  318. }, {
  319. field: 'parentcode',
  320. title: "上级字典代码"
  321. }, {
  322. fixed: 'right',
  323. title: "操作",
  324. width: 150,
  325. align: 'center',
  326. toolbar: '#systemconstcode_list_row_operator'
  327. }]
  328. ]
  329. });
  330. Curd.List({
  331. "pcode": "systemconstcode"
  332. });
  333. },
  334. LoadMenuTree: function(roleId) {
  335. Global.Ztree.zTreeObj.checkAllNodes(false);
  336. PlatformConfigerObject.RoleId = roleId;
  337. //获取菜单
  338. $.getJSON(Global.AccessUrl + "/api/get_menu_tree", {
  339. "roleid": roleId
  340. }, function(data) {
  341. if (data["code"] == 0) {
  342. var roleData = data["data"];
  343. if (roleData == null)
  344. return false;
  345. for (var i = 0; i < roleData.length; i++) {
  346. var node = Global.Ztree.zTreeObj.getNodesByParam("id", roleData[i]["id"], null);
  347. if (node != null && node.length > 0) {
  348. node[0]["checked"] = true;
  349. Global.Ztree.zTreeObj.updateNode(node[0]);
  350. }
  351. }
  352. }
  353. });
  354. },
  355. SaveFunction: function(functionId) {
  356. functionId = functionId.join(",");
  357. $.post(Global.AccessUrl + "/api/saveRoleFunc", {
  358. "roleid": PlatformConfigerObject.RoleId,
  359. "funcids": functionId
  360. }, function(data) {
  361. if (data["returncode"] == 200 || data.returncode == 0) {
  362. layui.layer.alert("添加成功", {
  363. shade: 0
  364. });
  365. } else {
  366. layui.layer.alert("添加失败:" + data.msg, {
  367. shade: 0
  368. });
  369. }
  370. });
  371. },
  372. SystemParam: function() {
  373. system_param_crud.Init({
  374. module_name: "system_param",
  375. nameColKey: "param_memo",
  376. idColKey: "param_name",
  377. apiUrl: {
  378. list_url: "/api/getSysParamList",
  379. read_url: "/api/getSysParamList",
  380. save_url: "/api/saveSysParam"
  381. },
  382. columns: [
  383. [{
  384. field: 'param_name',
  385. title: '参数名称'
  386. }, {
  387. field: 'param_value',
  388. title: "参数值"
  389. }, {
  390. field: 'param_memo',
  391. title: "参数说明"
  392. }, {
  393. fixed: 'right',
  394. title: "操作",
  395. width: 150,
  396. align: 'center',
  397. toolbar: '#system_param_curd_row_operator'
  398. }]
  399. ]
  400. });
  401. system_param_crud.List({});
  402. }
  403. };