SelectDepartment1.jsp
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:10k
源码类别:

OA系统

开发平台:

Java

  1. <%@ page contentType="text/html; charset=gb2312"%>
  2. <%@ page import="com.gforce.gfoa.*,com.gforce.currency.*,java.util.*" %>
  3. <% Session m_session = new Session(session); %>
  4. <html>
  5.   <head>
  6.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta http-equiv="pragma" content="no-cache">
  7.     <title>部门选择页面 -- GForce OA 2.0</title>
  8.     <link href="/css/txt.jsp" rel="stylesheet" type="text/css">
  9.     <style type="text/css">
  10.       <!--
  11.       div {
  12.           font-size: 12px;
  13.           line-height: normal;
  14.       }
  15.       a {
  16.           font-size: 12px;
  17.           line-height: normal;
  18.           color: #000000;
  19.       }
  20.       td {
  21.           font-size: 12px;
  22.       }
  23.       -->
  24.     </style>
  25.   </head>
  26. <SCRIPT LANGUAGE="JavaScript">
  27. <!--
  28. var jsArray = new Array();
  29. <%
  30. Vector vt = DepartmentManager.getDepartmentTreeData();
  31. int i=0;
  32. for(int j=0;j<vt.size();j++,i++)
  33. {
  34.     String strFartherID = ((Vector)vt.get(j)).get(2).toString();
  35.     strFartherID = strFartherID.substring(0,strFartherID.length()-1);
  36.     strFartherID = strFartherID.substring(strFartherID.lastIndexOf("_")+1);
  37.     out.println("jsArray[" + i+ "] = new Array("" + ((Vector)vt.get(j)).get(0).toString() + "","" + ((Vector)vt.get(j)).get(1).toString() + "","" + strFartherID + "","" + ((Vector)vt.get(j)).get(2).toString() + "");");
  38. }
  39. out.println("var maxdept=" + i);
  40. %>
  41. function isfilesallchecked(shangjiid)
  42. {
  43.   var foundfile=false;
  44.   for(var i = 0;i<jsArray.length;i++)
  45.   {
  46.     if(jsArray[i][3].indexOf("_" + shangjiid.toString() + "_" )>=0)
  47.     {
  48.       foundfile=true;
  49.       if(eval("document.selectdepart.dept_" + jsArray[i][0] + ".checked==false"))
  50.       {
  51.         return false;
  52.       }
  53.     }
  54.   }
  55.   return foundfile;
  56. }
  57. function showtree(jibie,shangjiid,bline)
  58. {
  59.     if(jibie==0)
  60.     {
  61.         document.write("<div id="t" + jibie + "_" + shangjiid +"" style="display:">");
  62.     }
  63.     else
  64.     {
  65.         document.write("<div id="t" + jibie + "_" + shangjiid +"" style="display:none">");
  66.     }
  67.     var i,notislast,j,haschild;
  68.     notislast=false;
  69.     haschild=false;
  70.     for(i=0;i<jsArray.length;i++)
  71.     {
  72.         if(jsArray[i][2]==shangjiid.toString())
  73.         {
  74.             var j,maxorder=0;
  75.             haschild=false;
  76.             for(j=0;j<jsArray.length;j++)
  77.             {
  78.                 if((jsArray[j][2]==shangjiid.toString())&&maxorder<j)
  79.                 {
  80.                     maxorder=j;
  81.                 }
  82.             }
  83.             if(i<maxdept)
  84.             {
  85.               for(j=0;j<jsArray.length;j++)
  86.               {
  87.                 if(jsArray[j][2]==jsArray[i][0])
  88.                 {
  89.                     haschild=true;
  90.                     break;
  91.                 }
  92.               }
  93.             }
  94.             bline = bline.substr(0,jibie);
  95.             for(j=0;j<bline.length;j++)
  96.             if(bline.substr(j,1)=="1")
  97.                 document.write("<img align="absbottom" src="/images/tree/i.gif" border=0>");
  98.             else
  99.                 document.write("<img align="absbottom" src="/images/tree/white.gif" border=0>");
  100.             if(maxorder>i)
  101.             {
  102.                 if(haschild)
  103.                 {
  104.                     document.write("<a href="" onclick="javascript:clicktree(" + (jibie + 1).toString() +"," + jsArray[i][0] + ");return false;" target="_self"><img align="absbottom" src="/images/tree/tplus.gif" border=0 name="n" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""><img align="absbottom" src="/images/tree/folderclosed.gif" border=0 name="f" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""></a><input type="checkbox" name="dept_" + jsArray[i][0] +"" value="" onclick="clickdept(" + jsArray[i][0] + ",this.checked);unselect('" + jsArray[i][3] + "',this.checked);">" + jsArray[i][1] + "<br>");
  105.                     bline += "1".toString();
  106.                     showtree(jibie + 1,jsArray[i][0],bline);
  107.                 }
  108.                 else
  109.                 {
  110.                     document.write("<img align="absbottom" src="/images/tree/t.gif" border=0 name="n" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""><img align="absbottom" src="/images/tree/folderclosed.gif" border=0 name="f" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""><input type="checkbox" name="dept_" + jsArray[i][0] +"" value="" onclick="unselect('" + jsArray[i][3] + "',this.checked);">" + jsArray[i][1] + "<br>");
  111.                 }
  112.             }
  113.             else
  114.             {
  115.                 if(haschild)
  116.                 {
  117.                     document.write("<a href="" onclick="javascript:clicktree(" + (jibie + 1).toString() +"," + jsArray[i][0] + ");return false;" target="_self"><img align="absbottom" src="/images/tree/lplus.gif" border=0 name="n" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""><img align="absbottom" src="/images/tree/folderclosed.gif" border=0 name="f" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""></a><input type="checkbox" name="dept_" + jsArray[i][0] +"" value="" onclick="clickdept(" + jsArray[i][0] + ",this.checked);unselect('" + jsArray[i][3] + "',this.checked);">" + jsArray[i][1] + "<br>");
  118.                     bline += "1".toString();
  119.                     showtree(jibie + 1,jsArray[i][0],bline);
  120.                 }
  121.                 else
  122.                 {
  123.                     document.write("<img align="absbottom" src="/images/tree/l.gif" border=0 name="n" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""><img align="absbottom" src="/images/tree/folderclosed.gif" border=0 name="f" + (jibie + 1).toString() +"_" + jsArray[i][0] + ""><input type="checkbox" name="dept_" + jsArray[i][0] +"" value="" onclick="unselect('" + jsArray[i][3] + "',this.checked);">" + jsArray[i][1] + "<br>");
  124.                 }
  125.             }
  126.         }
  127.     }
  128.     document.write("</div>");
  129. }
  130. function clicktree(jibie,shangjiID)
  131. {
  132.     if(shangjiID>0)
  133.     if(eval("t" + jibie + "_" + shangjiID).style.display=="none")
  134.     {
  135.         eval("t" + jibie + "_" + shangjiID).style.display="";
  136.         if(eval("document.n" + jibie + "_" + shangjiID).src.toLowerCase().indexOf("/images/tree/tplus.gif")>=0)
  137.             eval("document.n" + jibie + "_" + shangjiID).src="/images/tree/tminus.gif";
  138.         else
  139.             eval("document.n" + jibie + "_" + shangjiID).src="/images/tree/lminus.gif";
  140.         eval("document.f" + jibie + "_" + shangjiID).src="/images/tree/folderopen.gif";
  141.     }
  142.     else
  143.     {
  144.         eval("t" + jibie + "_" + shangjiID).style.display="none";
  145.         if(eval("document.n" + jibie + "_" + shangjiID).src.toLowerCase().indexOf("/images/tree/tminus.gif")>=0)
  146.             eval("document.n" + jibie + "_" + shangjiID).src="/images/tree/tplus.gif";
  147.         else
  148.             eval("document.n" + jibie + "_" + shangjiID).src="/images/tree/lplus.gif";
  149.         eval("document.f" + jibie + "_" + shangjiID).src="/images/tree/folderclosed.gif";
  150.     }
  151. }
  152. function clickdept(deptid,isselected)
  153. {
  154.     with(document.selectdepart)
  155.     {
  156.         for(var i=0;i<jsArray.length;i++)
  157.         {
  158.             if(jsArray[i][3].indexOf("_"+deptid.toString()+"_")>=0)
  159.             {
  160.         eval("dept_" + jsArray[i][0] + "").checked = isselected;
  161.             }
  162.         }
  163.     }
  164. }
  165. function selectcurrentdept(deptidstring)
  166. {
  167.   with(document.selectdepart)
  168.   {
  169.     for(var i=0;i<jsArray.length;i++)
  170.     {
  171.       if(deptidstring.indexOf(","+jsArray[i][0]+",")>=0)
  172.       {
  173.         eval("dept_" + jsArray[i][0]).checked=true;
  174.         clickdept(jsArray[i][0],true);
  175.       }
  176.     }
  177.     selectall.checked = isfilesallchecked(0);
  178.   }
  179. }
  180. function unselect(fatherids,isselected)
  181. {
  182.   var fatherArray = new Array();
  183.   fatherArray = (fatherids+"").split("_");
  184.   document.selectdepart.selectall.checked = isfilesallchecked("0");
  185.   for(var i=1;i<fatherArray.length-1;i++)
  186.   {
  187.     if(i==1)
  188.     {
  189.       document.selectdepart.selectall.checked = isfilesallchecked(fatherArray[i]);
  190.     }
  191.     else
  192.     {
  193.       eval("document.selectdepart.dept_" + fatherArray[i]).checked = isfilesallchecked(fatherArray[i]);
  194.     }
  195.   }
  196. }
  197. function ckeckall()
  198. {
  199.     clickdept(0,document.selectdepart.selectall.checked);
  200. }
  201. function getFatherNames(fatherIDsString)
  202. {
  203.   var fatherNames = "";
  204.   if(fatherIDsString.length>3)
  205.   {
  206.     fatherNames = fatherIDsString.replace("_0_","_");
  207.     for(var i = 0;i<maxdept;i++)
  208.     {
  209.       if(fatherNames.indexOf("_" + jsArray[i][0] + "_")>=0)
  210.         fatherNames=fatherNames.replace("_" + jsArray[i][0] + "_" ,"_" + jsArray[i][1] + "→" + "_");
  211.     }
  212.     while(fatherNames.indexOf("_")>=0)
  213.       fatherNames=fatherNames.replace("_","");
  214.   }
  215.   return fatherNames;
  216. }
  217. function returnvalue()
  218. {
  219.   var deptids="",deptnames="";
  220.   for(var i = 0;i<maxdept;i++)
  221.   {
  222.     if(eval("document.selectdepart.dept_" + jsArray[i][0] + ".checked==true"))
  223.     {
  224.       if(jsArray[i][2]=="0" || !isfilesallchecked(jsArray[i][2]))
  225.       {
  226.         deptids+="," + jsArray[i][0];
  227.         deptnames += "n" + getFatherNames(jsArray[i][3]) + jsArray[i][1];
  228.       }
  229.     }
  230.   }
  231.   if(deptids.length>0)
  232.   {
  233.     deptids=deptids.substr(1);
  234.     deptnames=deptnames.substr(1);
  235.     window.returnValue=deptids + "|!|" + deptnames;
  236.     window.close();
  237.     return false;
  238.   }
  239.   else
  240.   {
  241.     alert("请选择部门!");
  242.     return false;
  243.   }
  244. }
  245. //-->
  246. </SCRIPT>
  247. <BODY BGCOLOR='<%=m_session.GetString("BackColor")%>' LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
  248. <table width="100%"  border="0" cellspacing="0" cellpadding="0">
  249.   <form name="selectdepart" method="post" action="" onsubmit="return returnvalue();">
  250.     <tr>
  251.       <td>
  252.         <img src="/images/tree/folderopen.gif" width="18" height="18" align="absbottom"><input type="checkbox" name="selectall" value="" onclick="ckeckall();">全部选择/取消<br>
  253.         <script language="JavaScript">
  254.         showtree(0,0,"");
  255.         selectcurrentdept(window.dialogArguments);
  256.         </script>
  257.       </td>
  258.     </tr>
  259.     <tr>
  260.       <td align="center">
  261.         <input type="submit" value="确定">&nbsp;&nbsp;&nbsp;<input type="reset" value="重选">&nbsp;&nbsp;&nbsp;<input type="button" value="清空" onclick="window.returnValue='';window.close();">&nbsp;&nbsp;&nbsp;<input type="button" value="取消" onclick="window.close();">
  262.       </td>
  263.     </tr>
  264.   </form>
  265. </table>
  266. </body>
  267. </html>