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

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8" %>
  2. <%@ page import="com.redmoon.oa.dept.*" %>
  3. <HTML><HEAD><TITLE>选择用户</TITLE>
  4. <link rel="stylesheet" href="common.css">
  5. <jsp:useBean id="fchar" scope="page" class="cn.js.fan.util.StrUtil"/>
  6. <META content="Microsoft FrontPage 4.0" name=GENERATOR><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <style type="text/css">
  8. <!--
  9. .style1 {
  10. font-size: 12pt;
  11. font-weight: bold;
  12. }
  13. -->
  14. </style>
  15.   <script src='dwr/interface/DeptUserDb.js'></script>
  16.   <script src='dwr/engine.js'></script>
  17.   <script src='dwr/util.js'></script>
  18.   <script>
  19.   var allUserOfDept="";
  20.   var allUserRealNameOfDept = "";
  21.   function updateResults(deptCode) {
  22.     DWRUtil.removeAllRows("postsbody");
  23. allUserOfDept="";
  24. allUserRealNameOfDept = "";
  25.     DeptUserDb.list2DWR(fillTable, deptCode);
  26.     $("resultTable").style.display = '';
  27.   }
  28.   
  29.   var getCode = function(unit) { return unit.deptCode };
  30.   var getName = function(unit) { return unit.deptName };
  31.   var getUserName = function(unit) { 
  32.   if (unit.userName!=null) {
  33.   if (allUserOfDept=="") {
  34. allUserOfDept = unit.userName;
  35. allUserRealNameOfDept = unit.userRealName;
  36.   }
  37.   else {
  38. allUserOfDept += "," + unit.userName;
  39. allUserRealNameOfDept += ","  + unit.userRealName;
  40.   }
  41.   }
  42.      var u = unit.userRealName;
  43.   if (u!=null && u!="")
  44. return "<a href=# onClick="selPerson('" + unit.deptCode + "', '" + unit.deptName + "', '" + unit.userName + "','" + unit.userRealName + "')">" + u + "</a>" 
  45.   else
  46.    return "无";
  47.   };
  48.   
  49.   var getCancelSelUser = function(unit) { 
  50.      var u = unit.userName;
  51.   if (u!=null && u!="")
  52. return "[<a href=# onClick="cancelSelPerson('" + unit.deptCode + "', '" + unit.deptName + "', '" + unit.userName + "','" + unit.userRealName + "')">取消选择</a>]" 
  53.   else
  54.    return "无";
  55.   }
  56.   
  57.   function fillTable(apartment) {
  58.     DWRUtil.addRows("postsbody", apartment, [ getName, getUserName, getCancelSelUser ]);
  59.   }
  60.   
  61.   function setUsers() {
  62. // window.returnValue = users.innerText;
  63. dialogArguments.setUsers(users.innerText, userRealNames.innerText);
  64.    window.close();
  65.   }
  66.   function initUsers() {
  67.    users.innerText = dialogArguments.getSelUserNames();
  68.    userRealNames.innerText = dialogArguments.getSelUserRealNames();
  69.    // 初始化可以选择的部门
  70.    try {
  71.    var depts = dialogArguments.getDept();
  72.    if (depts!="") {
  73.    var ary = depts.split(",");
  74.    var isFinded = true;
  75.        isFinded = false;
  76.    var len = document.all.tags('A').length;
  77.    for(var i=0; i<len; i++) {
  78.     try {
  79. var aObj = document.all.tags('A')[i];
  80. var canSel = false;
  81. for (var j=0; j<ary.length; j++) {
  82. if (aObj.outerHTML.indexOf("'" + ary[j] + "'")!=-1) {
  83. canSel = true;
  84. // alert(canSel);
  85. break;
  86. }
  87. }
  88. if (!canSel) {
  89. aObj.innerHTML = "<font color='#888888'>" + aObj.innerText + "</font>";
  90. aObj.outerHTML = aObj.outerHTML.replace(/onClick/gi, "''");
  91. }
  92. isFinded = true;
  93. }
  94. catch (e) {}
  95.    }
  96.    }
  97.    }
  98.    catch (e) {}
  99.   }
  100.   function selPerson(deptCode, deptName, userName, userRealName) {
  101. // 检查用户是否已被选择
  102. if (users.innerText.indexOf(userName)!=-1) {
  103. alert("用户" + userRealName + "已被选择!");
  104. return;
  105. }
  106. if (users.innerText=="") {
  107. users.innerText += userName;
  108. userRealNames.innerText += userRealName;
  109. }
  110. else {
  111. users.innerText += "," + userName;
  112. userRealNames.innerText += "," + userRealName;
  113. }
  114.   }
  115.   
  116.   function cancelSelPerson(deptCode, deptName, userName) {
  117. // 检查用户是否已被选择
  118. var strUsers = users.innerText;
  119. if (strUsers=="")
  120. return;
  121. if (strUsers.indexOf(userName)==-1) {
  122. return;
  123. }
  124. var strUserRealNames = userRealNames.innerText;
  125.    var ary = strUsers.split(",");
  126. var aryRealName = strUserRealNames.split(",");
  127. var len = ary.length;
  128. var ary1 = new Array();
  129. var aryRealName1 = new Array();
  130. var k = 0;
  131. for (i=0; i<len; i++) {
  132. if (ary[i]!=userName) {
  133. ary1[k] = ary[i];
  134. aryRealName1[k] = aryRealName[i];
  135. k++;
  136. }
  137. }
  138. var str = "";
  139. var str1 = "";
  140. for (i=0; i<k; i++) {
  141. if (str=="") {
  142. str = ary1[i];
  143. str1 = aryRealName1[i];
  144. }
  145. else {
  146. str += "," + ary1[i];
  147. str1 += "," + aryRealName1[i];
  148. }
  149. }
  150. users.innerText = str;
  151. userRealNames.innerText = str1;
  152.   }
  153.   
  154.   function selAllUserOfDept() {
  155.    if (allUserOfDept=="")
  156. return;
  157. var allusers = users.innerText;
  158. var allUserRealNames = userRealNames.innerText;
  159. if (allusers=="") {
  160. allusers += allUserOfDept;
  161. allUserRealNames += allUserRealNameOfDept;
  162. }
  163. else {
  164. allusers += "," + allUserOfDept;
  165. allUserRealNames += "," + allUserRealNameOfDept;
  166. }
  167. // alert(allUserRealNames);
  168. var r = clearRepleatUser(allusers, allUserRealNames);
  169.    users.innerText = r[0];
  170. userRealNames.innerText = r[1];
  171.   }
  172.    
  173.   function clearRepleatUser(strUsers, strUserRealNames) {
  174.    var ary = strUsers.split(",");
  175. var aryRealName = strUserRealNames.split(",");
  176. var len = ary.length;
  177. // 创建二维数组
  178. var ary1 = new Array();
  179. for (i=0; i<len; i++) {
  180. ary1[i] = new Array(2);
  181. ary1[i][0] = ary[i];
  182. ary1[i][1] = 0; // 1 表示重复
  183. }
  184. // 标记重复的用户
  185. for (i=0; i<len; i++) {
  186. var user = ary[i];
  187. for (j=i+1; j<len; j++) {
  188. if (ary1[j][1]==1)
  189. continue;
  190. if (ary[j]==user)
  191. ary1[j][1] = 1;
  192. }
  193. }
  194. // 重组为字符串
  195. var str = "";
  196. var str1 = "";
  197. for (i=0; i<len; i++) {
  198. if (ary1[i][1]==0) {
  199. u = ary1[i][0];
  200. if (str=="") {
  201. str = u;
  202. str1 = aryRealName[i];
  203. }
  204. else {
  205. str += "," + u;
  206. str1 += "," + aryRealName[i];
  207. }
  208. }
  209. }
  210. var retary = new Array();
  211. retary[0] = str;
  212. retary[1] = str1;
  213. return retary;
  214.   }
  215.  
  216.   </script>
  217.   <script>
  218. function findObj(theObj, theDoc)
  219. {
  220.   var p, i, foundObj;
  221.   
  222.   if(!theDoc) theDoc = document;
  223.   if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  224.   {
  225.     theDoc = parent.frames[theObj.substring(p+1)].document;
  226.     theObj = theObj.substring(0,p);
  227.   }
  228.   if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  229.   for (i=0; !foundObj && i < theDoc.forms.length; i++) 
  230.     foundObj = theDoc.forms[i][theObj];
  231.   for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
  232.     foundObj = findObj(theObj,theDoc.layers[i].document);
  233.   if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  234.   
  235.   return foundObj;
  236. }
  237. function ShowChild(imgobj, name)
  238. {
  239. var tableobj = findObj("childof"+name);
  240. if (tableobj.style.display=="none")
  241. {
  242. tableobj.style.display = "";
  243. if (imgobj.src.indexOf("i_puls-root-1.gif")!=-1)
  244. imgobj.src = "images/i_puls-root.gif";
  245. if (imgobj.src.indexOf("i_plus-1-1.gif")!=-1)
  246. imgobj.src = "images/i_plus2-2.gif";
  247. if (imgobj.src.indexOf("i_plus-1.gif")!=-1)
  248. imgobj.src = "images/i_plus2-1.gif";
  249. }
  250. else
  251. {
  252. tableobj.style.display = "none";
  253. if (imgobj.src.indexOf("i_puls-root.gif")!=-1)
  254. imgobj.src = "images/i_puls-root-1.gif";
  255. if (imgobj.src.indexOf("i_plus2-2.gif")!=-1)
  256. imgobj.src = "images/i_plus-1-1.gif";
  257. if (imgobj.src.indexOf("i_plus2-1.gif")!=-1)
  258. imgobj.src = "images/i_plus-1.gif";
  259. }
  260. }  
  261. // 折叠目录
  262. function shrink() {
  263.    for(var i=0; i<document.images.length; i++) {
  264. var imgObj = document.images[i];
  265. try {
  266. if (imgObj.tableRelate!="") {
  267. ShowChild(imgObj, imgObj.tableRelate);
  268. }
  269. }
  270. catch (e) {
  271. }
  272.    }
  273. }
  274.   </script>
  275. </HEAD>
  276. <BODY bgColor=#FBFAF0 leftMargin=4 topMargin=8 rightMargin=0 class=menubar onLoad="shrink();initUsers();">
  277. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  278. <%
  279. String priv="read";
  280. if (!privilege.isUserPrivValid(request,priv))
  281. {
  282. // out.println(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  283. // return;
  284. }
  285. %>
  286. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="tableframe">
  287.   <tr> 
  288.     <td height="24" colspan="4" align="center" class="right-title"><span>选 择 用 户</span></td>
  289.   </tr>
  290.   <tr> 
  291.     <td width="8%" height="87">&nbsp;</td>
  292.     <td colspan="2"><%
  293. DeptMgr dm = new DeptMgr();
  294. DeptDb dd = dm.getDeptDb(DeptDb.ROOTCODE);
  295. DeptView tv = new DeptView(dd);
  296. tv.ListFunc(out, "_self", "updateResults", "", "" );
  297. %></td>
  298.     <td width="63%" align="center" valign="top" bgcolor="#F3F3F3">
  299. <div id="resultTable">
  300.   <table width="100%" border="0" cellpadding="4" cellspacing="0">
  301.       <thead>
  302.         <tr>
  303.           <th width="98" align="left" bgcolor="#B4D3F1">部门</th>
  304.           <th width="91" align="left" bgcolor="#B4D3F1">职员</th>
  305.           <th width="74" align="left" bgcolor="#B4D3F1">&nbsp;</th>
  306.         </tr>
  307.       </thead>
  308.       <tbody id="postsbody">
  309.   <tr>
  310.     <td colspan="3">请选择部门</td>
  311.   </tr>
  312.       </tbody>
  313.     </table>
  314. </div><table width="100%" border="0" cellspacing="0" cellpadding="0">
  315.   <tr>
  316.     <td height="30" align="center"><input type="button" value="选择该部门所有用户" onClick="selAllUserOfDept()"></td>
  317.   </tr>
  318. </table>
  319. </td>
  320.   </tr>
  321.   
  322.   <tr align="center">
  323.     <td height="63" colspan="2">已选职员</td>
  324.     <td height="63" colspan="2" align="left">
  325.   <div id="users" name="users" style="display:none"></div>
  326.   <div id="userRealNames" name="userRealNames"></div>
  327. </td>
  328.   </tr>
  329.   <tr align="center">
  330.     <td height="28" colspan="4">
  331. <input type="button" name="okbtn" value=" 确 定 " onClick="setUsers()">
  332. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  333.       <input type="button" name="cancelbtn" value=" 取 消 " onClick="window.close()">    </td>
  334.   </tr>
  335. </table>
  336. </BODY></HTML>