sysRoleDialog.jsp 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <%@page pageEncoding="UTF-8" %>
  2. <%@include file="/commons/include/html_doctype.html"%>
  3. <html>
  4. <head>
  5. <title>选择角色</title>
  6. <%@include file="/commons/include/form.jsp" %>
  7. <f:link href="tree/zTreeStyle.css"></f:link>
  8. <script type="text/javascript" src="${ctx}/js/tree/jquery.ztree.js"></script>
  9. <script type="text/javascript" src="${ctx}/js/lg/plugins/ligerLayout.js" ></script>
  10. <script type="text/javascript">
  11. /*KILLDIALOG*/
  12. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)
  13. var systemTree=null;
  14. var isSingle="${isSingle}";
  15. var isGrade="${isGrade}";
  16. var findStr = '';
  17. forbidF5("Chrome");//禁止刷新页面
  18. $(function(){
  19. $("#defLayout").ligerLayout({ leftWidth: 190,rightWidth: 170,allowRightResize:false,allowLeftResize:false,allowTopResize:false,allowBottomResize:false,height: '90%',minLeftWidth:170});
  20. //快速查找
  21. $("input.quick-find").bind('keyup',function(){
  22. var str = $(this).val();
  23. if(!str)return;
  24. if(str==findStr)return;
  25. findStr = str;
  26. var tbody = $("#roleList"),
  27. firstTr = $('tr.hidden',tbody);
  28. $("tr",tbody).each(function(){
  29. var me = $(this),
  30. span = $('span',me),
  31. spanStr = span.html();
  32. if(!spanStr)return true;
  33. if(spanStr.indexOf(findStr)>-1){
  34. $(this).insertAfter(firstTr);
  35. }
  36. });
  37. });
  38. initData();
  39. loadTree();
  40. $("#roleFrame").attr("src","${ctx}/platform/system/sysRole/selector.ht?isSingle=${isSingle}&isGrade=${isGrade}");
  41. });
  42. //展开收起
  43. function treeExpandAll(type){
  44. systemTree = $.fn.zTree.getZTreeObj("systemTree");
  45. systemTree.expandAll(type);
  46. };
  47. function loadTree(){
  48. var setting = {
  49. data: {
  50. key :
  51. {
  52. name: "sysName",
  53. title: "sysName"
  54. },
  55. simpleData: {
  56. enable: true,
  57. idKey: "systemId",
  58. pIdKey: "parentId",
  59. rootPId: 0
  60. }
  61. },
  62. callback:{onClick: treeClick}
  63. };
  64. var url="${ctx}/platform/system/subSystem/tree.ht";
  65. $.post(url,function(result){
  66. systemTree=$.fn.zTree.init($("#systemTree"), setting,eval(result));
  67. systemTree.expandAll(true);
  68. });
  69. }
  70. //初始化父级窗口传进来的数据
  71. function initData(){
  72. //var obj = window.dialogArguments;
  73. var obj = dialog.get("arrys");
  74. if(obj&&obj.length>0){
  75. for(var i=0,c;c=obj[i++];){
  76. var data = c.id+'#'+c.name;
  77. if(c.name!=undefined&&c.name!="undefined"&&c.name!=null&&c.name!=""){
  78. add(data);
  79. }
  80. }
  81. }
  82. };
  83. //选择分类
  84. function getSelectNode()
  85. {
  86. systemTree = $.fn.zTree.getZTreeObj("systemTree");
  87. var nodes = systemTree.getSelectedNodes();
  88. var node = nodes[0];
  89. if(node.systemId==0) return '';
  90. return node.systemId;
  91. }
  92. function treeClick(event, treeId, treeNode){
  93. var url="${ctx}/platform/system/sysRole/selector.ht?Q_systemId_L="+getSelectNode() +"&isSingle=${isSingle}&isGrade=${isGrade}";
  94. $("#roleFrame").attr("src",url);
  95. }
  96. function selectRole(){
  97. var pleaseSelect= "请选择角色!";
  98. //单选
  99. if(isSingle=="true"){
  100. var chIds = $('#roleFrame').contents().find("input[name='roleId']:checked");
  101. if(chIds.length==0){
  102. alert("请选择");
  103. return;
  104. }
  105. var data=chIds.val();
  106. var aryRole=data.split("#");
  107. var obj={};
  108. obj.roleId=aryRole[0];
  109. obj.roleName=aryRole[1];
  110. //window.returnValue=obj;
  111. dialog.get("sucCall")(obj);
  112. }
  113. //复选
  114. else{
  115. var aryRoles =$("input[name='role']", $("#roleList"));
  116. if(aryRoles.length==0){
  117. alert(pleaseSelect);
  118. return;
  119. }
  120. var aryId=[];
  121. var aryName=[];
  122. var json = [];
  123. aryRoles.each(function(){
  124. var data=$(this).val();
  125. var aryRole=data.split("#");
  126. aryId.push(aryRole[0]);
  127. aryName.push(aryRole[1]);
  128. json.push({id:aryRole[0],name:aryRole[1]});
  129. });
  130. var roleIds=aryId.join(",");
  131. var roleNames=aryName.join(",");
  132. var obj={};
  133. obj.roleId=roleIds;
  134. obj.roleName=roleNames;
  135. obj.roleJson = json;
  136. //window.returnValue=obj;
  137. dialog.get("sucCall")(obj);
  138. }
  139. dialog.close();
  140. }
  141. function add(data) {
  142. var aryTmp=data.split("#");
  143. var roleId=aryTmp[0];
  144. var len= $("#role_" + roleId).length;
  145. if(len>0) return;
  146. var roleTemplate= $("#roleTemplate").val();
  147. var html=roleTemplate.replace("#roleId",roleId)
  148. .replace("#data",data)
  149. .replace("#name",aryTmp[1]);
  150. $("#roleList").append(html);
  151. };
  152. function selectMulti(obj) {
  153. if ($(obj).attr("checked") == "checked"){
  154. var data = $(obj).val();
  155. add(data);
  156. }
  157. };
  158. function dellAll() {
  159. $("#roleList").empty();
  160. };
  161. function del(obj) {
  162. var tr = $(obj).closest("tr");
  163. $(tr).remove();
  164. };
  165. //清空角色
  166. function clearRole(){
  167. //window.returnValue={roleId:'',roleName:''};
  168. var rtn={roleId:'',roleName:''};
  169. dialog.get("sucCall")(rtn);
  170. dialog.close();
  171. }
  172. </script>
  173. <style type="text/css">
  174. .ztree {
  175. overflow: auto;
  176. }
  177. .label {
  178. color: #6F8DC6;
  179. text-align: right;
  180. padding-right: 6px;
  181. padding-left: 0px;
  182. font-weight: bold;
  183. }
  184. html { overflow-x: hidden;height:100%; }
  185. </style>
  186. </head>
  187. <body >
  188. <div id="defLayout" >
  189. <div position="center" >
  190. <iframe id="roleFrame" name="roleFrame" height="100%" width="100%" frameborder="0" ></iframe>
  191. </div>
  192. <c:if test="${isSingle=='false'}" >
  193. <div position="right" title="<span><a onclick='javascript:dellAll();' class='link del'>清空</a><input type='text' class='quick-find' title='查找'/></span>" style="overflow: auto;height:95%;width:170px;">
  194. <table width="145" class="table-grid table-list" cellpadding="1" cellspacing="1">
  195. <tbody id="roleList">
  196. <tr class="hidden"></tr>
  197. </tbody>
  198. </table>
  199. </div>
  200. </c:if>
  201. <div position="left" title="子系统" style="height:95%;">
  202. <div class="tree-toolbar">
  203. <span class="toolBar">
  204. <div class="group"><a class="link reload" id="treeFresh" href="javascript:loadTree();">刷新</a></div>
  205. <div class="l-bar-separator"></div>
  206. <div class="group"><a class="link expand" id="treeExpandAll" href="javascript:treeExpandAll(true)">展开</a></div>
  207. <div class="l-bar-separator"></div>
  208. <div class="group"><a class="link collapse" id="treeCollapseAll" href="javascript:treeExpandAll(false)">收起</a></div>
  209. </span>
  210. </div>
  211. <ul id="systemTree" class="ztree" style="overflow:auto;height:93%;" ></ul>
  212. </div>
  213. </div>
  214. <div position="bottom" class="bottom" style="margin-top:10px;" >
  215. <a href="javascript:;" class="button" onclick="selectRole()" style="margin-right:10px;" ><span class="icon ok"></span><span class="chosen">选择</span></a>
  216. <a href="javascript:;" class="button" onclick="clearRole()"><span class="icon cancel" ></span><span class="chosen" >清空</span></a>
  217. <a href="javascript:;" class="button" onclick="dialog.close()" style="margin-left:10px;" ><span class="icon cancel" ></span><span class="chosen" >取消</span></a>
  218. </div>
  219. <textarea id="roleTemplate" style="display: none;">
  220. <tr id="role_#roleId">
  221. <td>
  222. <input type="hidden" name="role" value="#data"><span>#name</span>
  223. </td>
  224. <td style="width: 30px;" nowrap="nowrap"><a onclick="javascript:del(this);" class="link del" title="删除" >&nbsp;</a></td>
  225. </tr>
  226. </textarea>
  227. </body>
  228. </html>