user_role_multi_sel.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:8k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8" %>
  2. <%@ page import="com.redmoon.oa.pvg.*" %>
  3. <%@ page import="com.redmoon.oa.person.*" %>
  4. <%@ page import="com.redmoon.oa.dept.*" %>
  5. <%@ page import="cn.js.fan.util.*" %>
  6. <%@ page import="java.util.*" %>
  7. <HTML><HEAD><TITLE>选择用户</TITLE>
  8. <link rel="stylesheet" href="common.css">
  9. <jsp:useBean id="fchar" scope="page" class="cn.js.fan.util.StrUtil"/>
  10. <META content="Microsoft FrontPage 4.0" name=GENERATOR><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  11. <style type="text/css">
  12. <!--
  13. .style1 {
  14. font-size: 12pt;
  15. font-weight: bold;
  16. }
  17. -->
  18. </style>
  19.   <script>
  20.   var allUserOfDept="";
  21.   var allUserRealNameOfDept = "";
  22.   
  23.   function setUsers() {
  24. // window.returnValue = users.innerText;
  25. window.opener.setUsers(users.innerText, userRealNames.innerText);
  26.    window.close();
  27.   }
  28.   function initUsers() {
  29.    users.innerText = window.opener.getSelUserNames();
  30.    userRealNames.innerText = window.opener.getSelUserRealNames();
  31.    // 初始化可以选择的用户角色
  32.    try {
  33.    var depts = window.opener.getValidUserRole();
  34.    if (depts!="") {
  35.    var ary = depts.split(",");
  36.    var isFinded = true;
  37.        isFinded = false;
  38.    var len = document.all.tags('A').length;
  39.    for(var i=0; i<len; i++) {
  40.     try {
  41. var aObj = document.all.tags('A')[i];
  42. var canSel = false;
  43. for (var j=0; j<ary.length; j++) {
  44. if (aObj.outerHTML.indexOf(ary[j])!=-1) {
  45. canSel = true;
  46. // alert(canSel);
  47. break;
  48. }
  49. }
  50. if (!canSel && aObj.menu=="true") {
  51. aObj.outerHTML = "<font color='#888888'>" + aObj.innerText + "</font>";
  52. // aObj.outerHTML = aObj.outerHTML.replace(/onClick/gi, "''");
  53. }
  54. isFinded = true;
  55. }
  56. catch (e) {}
  57.    }
  58.    }
  59.    }
  60.    catch (e) {}
  61.   }
  62.   function selPerson(deptCode, deptName, userName, userRealName) {
  63. // 检查用户是否已被选择
  64. if (users.innerText.indexOf(userName)!=-1) {
  65. alert("用户" + userRealName + "已被选择!");
  66. return;
  67. }
  68. if (users.innerText=="") {
  69. users.innerText += userName
  70. userRealNames.innerText += userRealName;
  71. }
  72. else {
  73. users.innerText += "," + userName;
  74. userRealNames.innerText += "," + userRealName;
  75. }
  76.   }
  77.   
  78.   function cancelSelPerson(deptCode, deptName, userName) {
  79. // 检查用户是否已被选择
  80. var strUsers = users.innerText;
  81. if (strUsers=="")
  82. return;
  83. if (strUsers.indexOf(userName)==-1) {
  84. return;
  85. }
  86. var strUserRealNames = userRealNames.innerText;
  87.    var ary = strUsers.split(",");
  88. var aryRealName = strUserRealNames.split(",");
  89. var len = ary.length;
  90. var ary1 = new Array();
  91. var aryRealName1 = new Array();
  92. var k = 0;
  93. for (i=0; i<len; i++) {
  94. if (ary[i]!=userName) {
  95. ary1[k] = ary[i];
  96. aryRealName1[k] = aryRealName[i];
  97. k++;
  98. }
  99. }
  100. var str = "";
  101. var str1 = "";
  102. for (i=0; i<k; i++) {
  103. if (str=="") {
  104. str = ary1[i];
  105. str1 = aryRealName1[i];
  106. }
  107. else {
  108. str += "," + ary1[i];
  109. str1 += "," + aryRealName1[i];
  110. }
  111. }
  112. users.innerText = str;
  113. userRealNames.innerText = str1;
  114.   }
  115.   
  116.   function selAllUserOfDept() {
  117.    if (allUserOfDept=="")
  118. return;
  119. var allusers = users.innerText;
  120. var allUserRealNames = userRealNames.innerText;
  121. if (allusers=="") {
  122. allusers += allUserOfDept;
  123. allUserRealNames += allUserRealNameOfDept;
  124. }
  125. else {
  126. allusers += "," + allUserOfDept;
  127. allUserRealNames += "," + allUserRealNameOfDept;
  128. }
  129. // alert(allUserRealNames);
  130. var r = clearRepleatUser(allusers, allUserRealNames);
  131.    users.innerText = r[0];
  132. userRealNames.innerText = r[1];
  133.   }
  134.    
  135.   function clearRepleatUser(strUsers, strUserRealNames) {
  136.    var ary = strUsers.split(",");
  137. var aryRealName = strUserRealNames.split(",");
  138. var len = ary.length;
  139. // 创建二维数组
  140. var ary1 = new Array();
  141. for (i=0; i<len; i++) {
  142. ary1[i] = new Array(2);
  143. ary1[i][0] = ary[i];
  144. ary1[i][1] = 0; // 1 表示重复
  145. }
  146. // 标记重复的用户
  147. for (i=0; i<len; i++) {
  148. var user = ary[i];
  149. for (j=i+1; j<len; j++) {
  150. if (ary1[j][1]==1)
  151. continue;
  152. if (ary[j]==user)
  153. ary1[j][1] = 1;
  154. }
  155. }
  156. // 重组为字符串
  157. var str = "";
  158. var str1 = "";
  159. for (i=0; i<len; i++) {
  160. if (ary1[i][1]==0) {
  161. u = ary1[i][0];
  162. if (str=="") {
  163. str = u;
  164. str1 = aryRealName[i];
  165. }
  166. else {
  167. str += "," + u;
  168. str1 += "," + aryRealName[i];
  169. }
  170. }
  171. }
  172. var retary = new Array();
  173. retary[0] = str;
  174. retary[1] = str1;
  175. return retary;
  176.   }
  177. </script>
  178. </HEAD>
  179. <BODY bgColor=#FBFAF0 leftMargin=4 topMargin=8 rightMargin=0 class=menubar onLoad="initUsers()">
  180. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  181. <%
  182. String priv="read";
  183. if (!privilege.isUserPrivValid(request,priv))
  184. {
  185. out.println(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  186. return;
  187. }
  188. %>
  189. <table width="460" border="0" align="center" cellpadding="0" cellspacing="0" class="tableframe">
  190.   <tr> 
  191.     <td height="24" colspan="4" align="center" class="right-title"><span>用户角色</span></td>
  192.   </tr>
  193.   <tr> 
  194.     <td width="13" height="87">&nbsp;</td>
  195.     <td colspan="2" valign="top">
  196. <%
  197. String showCode = ParamUtil.get(request, "showCode");
  198. String code;
  199. String desc;
  200. RoleDb urole = new RoleDb();
  201. Iterator userir = null;
  202. if (!showCode.equals("")) {
  203. urole = urole.getRoleDb(showCode);
  204. userir = urole.getAllUserOfRole().iterator();
  205. }
  206. else
  207. userir = (new Vector()).iterator();
  208. Vector result = urole.list();
  209. Iterator ir = result.iterator();
  210. %>
  211.       <br>
  212.       <table width="95%" align="center">
  213.         <tbody>
  214. <%
  215. while (ir.hasNext()) {
  216.   RoleDb ug = (RoleDb)ir.next();
  217. code = ug.getCode();
  218. desc = ug.getDesc();
  219. %>
  220.           <tr class="row" style="BACKGROUND-COLOR: #ffffff">
  221.             <td width="31%">
  222.   <a href="?showCode=<%=StrUtil.UrlEncode(code)%>" menu="true"><%=desc%></a>
  223. </td>
  224.           </tr>
  225. <%}%>
  226.         </tbody>
  227.       </table> </td>
  228.     <td width="287" align="center" valign="top" bgcolor="#F3F3F3">
  229. <div id="resultTable">
  230.   <table width="100%" border="0" cellpadding="4" cellspacing="0">
  231.       <thead>
  232.         <tr>
  233.           <th width="98" align="left" bgcolor="#B4D3F1">职级</th>
  234.           <th width="91" align="left" bgcolor="#B4D3F1">职员</th>
  235.           <th width="74" align="left" bgcolor="#B4D3F1">&nbsp;</th>
  236.         </tr>
  237.       </thead>
  238.       <tbody id="postsbody">
  239.   <%
  240.   while (userir.hasNext()) {
  241.    UserDb ud = (UserDb)userir.next();
  242.   %>
  243.   <script>
  244.   if (allUserOfDept=="") {
  245.    allUserOfDept = "<%=ud.getName()%>";
  246. allUserRealNameOfDept = "<%=ud.getRealName()%>";
  247.   }
  248.   else {
  249.    allUserOfDept += "," + "<%=ud.getName()%>";
  250. allUserRealNameOfDept += "," + "<%=ud.getRealName()%>";
  251.   }
  252.   </script>
  253.   <tr>
  254.     <td><%=com.redmoon.oa.basic.RankDb.getRankName(ud.getRankCode())%></td>
  255.     <td><a onClick="selPerson('', '', '<%=ud.getName()%>', '<%=ud.getRealName()%>')" href="#"><%=ud.getRealName()%></a></td>
  256.     <td>[<a onClick="cancelSelPerson('', '', '<%=ud.getName()%>')" href="#">取消选择</a>]</td>
  257.   </tr>
  258.   <%}%>
  259.       </tbody>
  260.     </table>
  261. </div><table width="100%" border="0" cellspacing="0" cellpadding="0">
  262.   <tr>
  263.     <td height="30" align="center"><input name="button" type="button" onClick="selAllUserOfDept()" value="选择该角色所有用户"></td>
  264.   </tr>
  265. </table>
  266. </td>
  267.   </tr>
  268.   <tr align="center">
  269.     <td height="63" colspan="2">已选职员</td>
  270.     <td height="63" colspan="2" align="left">
  271.   <div id="users" name="users" style="display:none"></div>
  272.   <div id="userRealNames" name="userRealNames"></div>
  273. </td>
  274.   </tr>
  275.   <tr align="center">
  276.     <td height="28" colspan="4">
  277. <input type="button" name="okbtn" value="确定" onClick="setUsers()">
  278. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  279.       <input type="button" name="cancelbtn" value="取消" onClick="window.close()">    </td>
  280.   </tr>
  281. </table>
  282. </BODY></HTML>