role.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Cache-Control" content="no-store" />
  5. <meta http-equiv="Pragma" content="no-cache" />
  6. <meta http-equiv="Expires" content="-1" />
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  9. <title>角色维护</title>
  10. <script type="text/javascript" src="../../scripts/jquery-1.8.3.js"></script>
  11. <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
  12. <script type="text/javascript" src="../../scripts/jquery.easyui.js"></script>
  13. <script type="text/javascript" src="../../scripts/easyui-lang-zh_CN.js"></script>
  14. <script type="text/javascript"
  15. src="../../scripts/jquery.validate.rules.generate.js"></script>
  16. <script type="text/javascript" src="../../scripts/config.js"></script>
  17. <script type="text/javascript" src="../../scripts/comment.js"></script>
  18. <script type="text/javascript" src="../../scripts/utils.js"></script>
  19. <script type="text/javascript" src="../../scripts/init.js"></script>
  20. <script type="text/javascript" src="../../scripts/jquery.edatagrid.js"></script>
  21. <link rel="stylesheet" href="../../themes/zTreeStyle/zTreeStyle.css"
  22. type="text/css">
  23. <script type="text/javascript"
  24. src="../../scripts/jquery.ztree.core.js"></script>
  25. <script type="text/javascript"
  26. src="../../scripts/jquery.ztree.excheck.js"></script>
  27. </head>
  28. <body>
  29. <table id="dg" style="width: 98%; height: 512px" toolbar="#toolbar"
  30. pagination="true" idField="roleid" rownumbers="true"
  31. fitColumns="false" singleSelect="true">
  32. <thead>
  33. <tr>
  34. <th field="ck" data-options="checkbox:true" width="5"></th>
  35. <th field="roleid" align="left"
  36. data-options="editor:valiBoxEtr(true,'vBaseEN',4,64)"
  37. sortable="true" width="180">角色编码</th>
  38. <th field="name" align="left"
  39. data-options="editor:valiBoxEtr(true,'',2,64)" sortable="true"
  40. width="200">角色名称</th>
  41. <th field="menuids" editor="text" hidden="true" width="90">菜单列表1</th>
  42. <th field="funcids" editor="text" hidden="true" width="90">功能列表1</th>
  43. <th field="menuids1" align="center"
  44. data-options="formatter:linkMenuFmt()" width="100">菜单列表</th>
  45. <th field="funcids1" align="center"
  46. data-options="formatter:linkFunFmt()" width="100">功能列表</th>
  47. <th field="roledesc" align="center" sortable="true" width="250"
  48. editor="text">角色描述</th>
  49. </tr>
  50. </thead>
  51. </table>
  52. <div id="toolbar">
  53. <!--<span>系统类型:</span> <input id="systembox" class="easyui-combobox"-->
  54. <!--name="language"-->
  55. <!--data-options="-->
  56. <!--data:getListData('systemClass'),-->
  57. <!--valueField:'id',-->
  58. <!--textField:'text',-->
  59. <!--panelHeight:'auto',-->
  60. <!--required:false,-->
  61. <!--editable:false,-->
  62. <!--value:'manager'-->
  63. <!---->
  64. <!--">-->
  65. <a href="#"
  66. class="easyui-linkbutton" plain="true"
  67. data-options="iconCls:'icon-search',plain:true"
  68. onclick="doSearch()">查询</a>
  69. <a href="javascript:void(0)" class="easyui-linkbutton"
  70. iconCls="icon-add" plain="true"
  71. onclick="javascript:$('#dg').edatagrid('addRow')">新增</a> <a
  72. href="javascript:void(0)" class="easyui-linkbutton"
  73. iconCls="icon-save" plain="true"
  74. onclick="javascript:$('#dg').edatagrid('saveRow')">保存</a> <a
  75. href="javascript:void(0)" class="easyui-linkbutton"
  76. iconCls="icon-undo" plain="true"
  77. onclick="javascript:$('#dg').edatagrid('cancelRow')">恢复</a> <a
  78. href="javascript:void(0)" class="easyui-linkbutton"
  79. iconCls="icon-remove" plain="true"
  80. onclick="javascript:$('#dg').edatagrid('destroyRow')">删除</a> <a
  81. href="javascript:void(0)" class="easyui-linkbutton"
  82. iconCls="icon-reload" plain="true"
  83. onclick="javascript:$('#dg').datagrid('reload')">刷新</a> <a href="#"
  84. class="easyui-linkbutton" plain="true"
  85. data-options="iconCls:'icon-excel',plain:true" onclick="doSearch(1)">导出</a>
  86. </div>
  87. <!-- 菜单权限 -->
  88. <div id="menuWin" iconCls="icon-edit" class="easyui-dialog"
  89. title="菜单权限"
  90. style="width: 410px; height: 295px; padding: 10px; align: 'center'; top: 120px;"
  91. style="width:300px;height:180px;"
  92. data-options="modal:true,closed:true">
  93. <ul id="menuTree" class="ztree"
  94. style="padding: 0 40px; text-align: center; width: 296px; height: 211px; overflow: auto; border: 1px solid #ddd"></ul>
  95. <div style="padding: 5px; text-align: center;">
  96. <a href="#" class="easyui-linkbutton" icon="icon-ok"
  97. onclick="javascript:{setMenuIds();}">确定</a> <a href="#"
  98. class="easyui-linkbutton" icon="icon-cancel"
  99. onclick="javascript:{closemenuWin();}">取消</a>
  100. </div>
  101. </div>
  102. <!-- 功能权限 -->
  103. <div id="funWin" iconCls="icon-edit" class="easyui-dialog" title="功能权限"
  104. style="width: 410px; height: 295px; padding: 10px; align: 'center'; top: 120px;"
  105. style="width:300px;height:180px;"
  106. data-options="modal:true,closed:true">
  107. <ul id="funTree" class="ztree"
  108. style="padding: 0 40px; text-align: center; width: 296px; height: 211px; overflow: auto; border: 1px solid #ddd"></ul>
  109. <div style="padding: 5px; text-align: center;">
  110. <a href="#" class="easyui-linkbutton" icon="icon-ok"
  111. onclick="javascript:{setFunIds();}">确定</a> <a href="#"
  112. class="easyui-linkbutton" icon="icon-cancel"
  113. onclick="javascript:{closefunWin();}">取消</a>
  114. </div>
  115. </div>
  116. <script type="text/javascript">
  117. //页面加载调用
  118. $(function(){
  119. doSearch();
  120. });
  121. function doSearch(download){
  122. var systemType = "service";//$('#systembox').combobox('getValue');
  123. var params ="proNames=roleid"+"&channelNo="+systemType;
  124. //区别于查询还是下载
  125. if(download==1){
  126. downloadExcel('#dg','角色信息查询','SYSROLE01','rows=-1&proNames=roleid');
  127. }else{
  128. $('#dg').edatagrid({
  129. url: getUrl('SYSROLE01',params),
  130. saveUrl: getUrl('SYSROLE02',params),
  131. updateUrl: getUrl('SYSROLE03',params),
  132. destroyUrl: getUrl('SYSROLE04',params),
  133. striped:true,
  134. pagination: true,
  135. pageSize: 15,//每页显示的记录条数,默认为10
  136. pageList: [10, 15,25, 50,100],//可以设置每页记录条数的列表
  137. loadFilter: function (data){
  138. loadFilterError(data);
  139. return data;
  140. }
  141. });
  142. }
  143. };
  144. //菜单窗口
  145. function showMenuWin(selectIndex){
  146. $("#dg").datagrid('acceptChanges');
  147. //获取选择的id值
  148. var row = $("#dg").datagrid("getSelected");
  149. if(row){
  150. var index = $('#dg').datagrid('getRowIndex', row);
  151. if(selectIndex!=index){
  152. $.messager.alert('系统提示','请勾选当前行后,再进行菜单修改!','info');
  153. return;
  154. }
  155. $('#dg').datagrid('beginEdit',index);
  156. $('#menuWin').dialog('open');
  157. syncAjaxCall('SYSMENU01','rows=-1&orderBy=menuindex',function(data){
  158. if(data){
  159. var menuids_ = row.menuids;
  160. var menusList = data.rows;
  161. var menusNodes =[];
  162. for(index in menusList){
  163. if(menusList[index].menuid){
  164. var node ={};
  165. node.id = menusList[index].menuid;
  166. if(menusList[index].menupid){
  167. node.pId = menusList[index].menupid;
  168. }
  169. node.name = menusList[index].menuname;
  170. if(menuids_.indexOf(node.id)>=0){
  171. node.checked = true;
  172. }else{
  173. node.checked = false;
  174. }
  175. node.open = true;
  176. menusNodes.push(node);
  177. }
  178. }
  179. $.fn.zTree.init($("#menuTree"), ztreeSetting, menusNodes);
  180. }
  181. });
  182. }
  183. }
  184. //设置菜单,并且关闭窗体
  185. function setMenuIds(){
  186. var treeObj = $.fn.zTree.getZTreeObj("menuTree");
  187. var nodes = treeObj.getCheckedNodes(true);
  188. var menuids_ ='';
  189. for(var i=0;i<nodes.length;i++){
  190. menuids_ = menuids_+nodes[i].id;
  191. if(i<(nodes.length-1)){
  192. menuids_ = menuids_+',';
  193. }
  194. }
  195. var row = $("#dg").datagrid("getSelected");
  196. if(row){
  197. //触发行修改
  198. var index = $('#dg').datagrid('getRowIndex', row);
  199. var editors = $('#dg').datagrid('getEditors',index);
  200. editors[2].target.val(menuids_);
  201. $("#dg").datagrid('acceptChanges');
  202. }
  203. $('#menuWin').dialog('close');
  204. }
  205. //关闭窗体
  206. function closemenuWin(){
  207. var row = $("#dg").datagrid("getSelected");
  208. if(row){
  209. var index = $('#dg').datagrid('getRowIndex', row);
  210. var editors = $('#dg').datagrid('getEditors',index);
  211. $("#dg").datagrid('acceptChanges');
  212. }
  213. $('#menuWin').dialog('close');
  214. }
  215. function linkMenuFmt() {
  216. return function(value,row,index) {
  217. return '<a href="javascript:void(0)" onclick="showMenuWin('+index+')">修改</a>';
  218. };
  219. };
  220. //功能窗口
  221. function showFunWin(selectIndex){
  222. //获取选择的id值
  223. $("#dg").datagrid('acceptChanges');
  224. var row = $("#dg").datagrid("getSelected");
  225. if(row){
  226. var index = $('#dg').datagrid('getRowIndex', row);
  227. if(selectIndex!=index){
  228. $.messager.alert('系统提示','请勾选当前行后,再进行功能修改!','info');
  229. return;
  230. }
  231. $('#dg').datagrid('beginEdit',index);
  232. $('#funWin').dialog('open');
  233. //以下不直接返回List,不需要isList=1参数,直接加载使用,以下方式可以检测通讯故障
  234. syncAjaxCall('SYSFUNCT01','rows=-1&orderBy=functionid',function(data){
  235. if(data){
  236. var funcids_ = row.funcids;
  237. var funcsList = data.rows;
  238. var funcsNodes =[];
  239. //将分类作为主功能做加载,选择后将主功能的选项再次剔除,所以增加'pfunc_'作为前缀
  240. var map = new MapUtils();
  241. for(index in funcsList){
  242. var node ={};
  243. node.id = 'pfunc_'+funcsList[index].classname;
  244. node.name = funcsList[index].classname;
  245. node.checked = false;
  246. node.open = true;
  247. var tmp = map.get(node.id);
  248. if(tmp){
  249. continue;
  250. }else{
  251. map.put(node.id,node);
  252. funcsNodes.push(node);
  253. }
  254. }
  255. //增加主分类下的子功能
  256. for(index in funcsList){
  257. var node ={};
  258. node.id = funcsList[index].functionid;
  259. node.pId = 'pfunc_'+funcsList[index].classname;
  260. node.name = funcsList[index].functionname;
  261. if(funcids_.indexOf(node.id)>=0){
  262. node.checked = true;
  263. }else{
  264. node.checked = false;
  265. }
  266. node.open = true;
  267. funcsNodes.push(node);
  268. }
  269. $.fn.zTree.init($("#funTree"), ztreeSetting, funcsNodes);
  270. }
  271. });
  272. }
  273. }
  274. //设置菜单,并且关闭窗体
  275. function setFunIds(){
  276. var treeObj = $.fn.zTree.getZTreeObj("funTree");
  277. var nodes = treeObj.getCheckedNodes(true);
  278. var funcids_ ='';
  279. for(var i=0;i<nodes.length;i++){
  280. //剔除增加的分类节点
  281. if(nodes[i].id.indexOf('pfunc_')<0){
  282. funcids_ = funcids_+nodes[i].id;
  283. if(i<(nodes.length-1)){
  284. funcids_ = funcids_+',';
  285. }
  286. }
  287. }
  288. var row = $("#dg").datagrid("getSelected");
  289. if(row){
  290. var index = $('#dg').datagrid('getRowIndex', row);
  291. var editors = $('#dg').datagrid('getEditors',index);
  292. editors[3].target.val(funcids_);
  293. $("#dg").datagrid('acceptChanges');
  294. }
  295. $('#funWin').dialog('close');
  296. };
  297. //关闭窗体
  298. function closefunWin(){
  299. var row = $("#dg").datagrid("getSelected");
  300. if(row){
  301. var index = $('#dg').datagrid('getRowIndex', row);
  302. var editors = $('#dg').datagrid('getEditors',index);
  303. $("#dg").datagrid('acceptChanges');
  304. }
  305. $('#funWin').dialog('close');
  306. }
  307. function linkFunFmt() {
  308. return function(value,row,index) {
  309. return '<a href="javascript:void(0)" onclick="showFunWin('+index+')">修改</a>';
  310. };
  311. };
  312. </script>
  313. </body>
  314. </html>