锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鏈嶅姟绔暟鎹? 浠呮煡璇㈡牴緇撶偣.
html浠g爜:
<viewlist id="e587ead4-daa3-431e-a0ed-fac40e013850">
<h:form name="page_form" action="com.bos.mp.taskStatistics.TaskStatistics.flow" method="post">
<input type="hidden" name="_eosFlowAction" value="pageQuery" >
<h:hiddendata property="criteria" />
<h:hidden property="page/begin"/>
<h:hidden property="page/length"/>
<h:hidden property="page/count"/>
<h:hidden property="page/isCount"/>
<w:panel id="list_panel" width="100%" title="浠誨姟鍒楄〃">
<table align="center" border="0" width="100%" class="EOS_table">
<tr id="table_header">
<th>
浠誨姟鍚嶇О
</th>
<th>
欏圭洰鍚嶇О
</th>
<th>
欏圭洰妯″潡
</th>
<th>
宸ヤ綔鍗犻」鐩瘮鐜?br />
</th>
<th>
璐熻矗浜?br />
</th>
<th>
瀹℃牳浜?br />
</th>
<th>
璁″垝寮濮嬫棩
</th>
<th>
璁″垝瀹屾垚鏃?br />
</th>
<th>
浠誨姟鐘舵?br />
</th>
<th>
瀹屾垚鐜?%)
</th>
<th>
鏇存柊鏃ユ湡
</th>
<th>
鍘熷洜
</th>
<th>
瀹為檯瀹屾垚鐜?%)
</th>
<th>
瀹為檯瀹屾垚鏃?br />
</th>
<th>
鎻愬墠/婊炲悗瀹屾垚澶╂暟
</th>
</tr>
<w:checkGroup id="group1">
<l:iterate property="mpprojectfollows" id="id1">
<%
long temp = 0;
if(null != ((DataObject)pageContext.getAttribute("id1")).getString("proEndDate")){
DataObject t=(DataObject)pageContext.getAttribute("id1");
String d1 = ((DataObject)pageContext.getAttribute("id1")).getString("comDate") == null ? new SimpleDateFormat("yyyy-MM-dd").format(new Date()):((DataObject)pageContext.getAttribute("id1")).getString("comDate");
String d2 = ((DataObject)pageContext.getAttribute("id1")).getString("proEndDate");
temp = RetOrgInfo.daysDifference(d1,d2);
}
if(temp<0 && !((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("瀹屾垚")){
out.print("<tr class='EOS_table_row' style='background-color:red;' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'>");
}else if(temp<0 && ((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("瀹屾垚")){
out.print("<tr class='EOS_table_row' style='background-color:orange;' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'>");
}else if(temp>0 && ((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("瀹屾垚")){
out.print("<tr class='EOS_table_row' style='background-color:green;' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'>");
}else{
out.print("<tr class='EOS_table_row' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'>");
}
%>
<td align="left" >
<l:present property="childTasks" iterateId="id1">
<img src="<%=request.getContextPath() %>/common/skins/default/images/grouppanel/grouppanel_open.gif" onclick="node_click('<b:write iterateId="id1" property="taskno"/>');"/>
</l:present>
<h:hidden iterateId="id1" property="paraTaskno"/>
<a href="#" onclick="javascript:showTaskDet('<b:write iterateId="id1" property="taskno"/>');"><b:write iterateId="id1" property="taskName"/></a>
</td>
<td align="center">
<b:write iterateId="id1" property="projectName"/>
</td>
<td align="center">
<b:write iterateId="id1" property="modName"/>
</td>
<td align="center">
<b:write iterateId="id1" property="taskRate"/>
<l:notEmpty iterateId="id1" property="taskRate">
%
</l:notEmpty>
</td>
<td align="center">
<b:write iterateId="id1" property="planPres"/>
</td>
<td align="center">
<b:write iterateId="id1" property="auditorName"/>
</td>
<td align="center">
<b:write iterateId="id1" property="proStarDate" formatPattern="yyyy-MM-dd"/>
</td>
<td align="center">
<b:write iterateId="id1" property="proEndDate" formatPattern="yyyy-MM-dd"/>
</td>
<td align="center">
<b:write iterateId="id1" property="taskStatus"/>
</td>
<td align="center">
<b:write iterateId="id1" property="actorRated"/>
</td>
<td align="center">
<b:write iterateId="id1" property="actorDate" formatPattern="yyyy-MM-dd"/>
</td>
<td align="center">
<b:write iterateId="id1" property="reason"/>
</td>
<td align="center">
<b:write iterateId="id1" property="auditRate"/>
</td>
<td align="center">
<b:write iterateId="id1" property="comDate" formatPattern="yyyy-MM-dd"/>
</td>
<td align="center">
<%
if(temp<0){
out.print("婊炲悗"+Math.abs(temp)+"澶?);
}else if(temp>0 && ((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("瀹屾垚")){
out.print("鎻愬墠"+temp+"澶?);
}
%>
</td>
</tr>
</l:iterate>
</w:checkGroup>
<tr>
<td colspan="16" class="command_sort_area">
<div id="pageroot" align="right">
<l:equal property="page/isCount" targetValue="true">
鍏?br />
<b:write property="page/count"/>
鏉¤褰?絎?br />
<b:write property="page/currentPage"/>
欏?
<b:write property="page/totalPage"/>
欏?br />
</l:equal>
<l:equal property="page/isCount" targetValue="false">
絎?br />
<b:write property="page/currentPage"/>
欏?br />
</l:equal>
<input type="button" onclick="firstPage('page', 'pageQuery', null, null, 'page_form');" value="棣栭〉" <l:equal property="page/isFirst" targetValue="true">disabled</l:equal> >
<input type="button" onclick="prevPage('page', 'pageQuery', null, null, 'page_form');" value="涓婇〉" <l:equal property="page/isFirst" targetValue="true">disabled</l:equal> >
<input type="button" onclick="nextPage('page', 'pageQuery', null, null, 'page_form');" value="涓嬮〉" <l:equal property="page/isLast" targetValue="true">disabled</l:equal> >
<l:equal property="page/isCount" targetValue="true">
<input type="button" onclick="lastPage('page', 'pageQuery', null, null, 'page_form');" value="灝鵑〉" <l:equal property="page/isLast" targetValue="true">disabled</l:equal> >
</l:equal>
</div>
</td>
</tr>
</table>
</w:panel>
</h:form>
</viewlist>
<script>
var jquery = jQuery.noConflict();
//涓葷粨鐐瑰睍寮/鏀惰搗
function node_click(taskid){
var el=jquery("#"+taskid).find("img")[0]//event.srcElement
var path=el.src.substr(el.src.lastIndexOf("/")+1)
var prifix=el.src.substr(0,el.src.lastIndexOf("/"))
if(path=="grouppanel_open.gif"){
//鏄劇ず緇撶偣
var tr=jquery(el).closest("tr");
if(jquery(el).closest("tr").next().css("display")=="none"){
el.src=prifix+"/grouppanel_close.gif";
tr.nextAll("tr[paraTaskno='"+tr.attr("id")+"']").show();
}else{
readchildnodeByAjax(taskid);
jquery(el).trigger("click");
}
}else{
//闅愯棌緇撶偣
el.src=prifix+"/grouppanel_open.gif";
var tr=jquery(el).closest("tr");
recursion_node(tr,false);
}
}
//ajax璇誨彇瀛愮粨鐐?br />
function readchildnodeByAjax(taskid){
var myAjax=new Ajax("com.bos.mp.projectfollow.mpprojectfollowbiz.QueryTask.biz");
myAjax.addParam("criteria/_entity","com.bos.mp.projectfollow.dataset.ProTaskQryEntity");
myAjax.addParam("criteria/_expr[0]/paraTaskno",taskid);
myAjax.submit();
//鑾峰彇"root/data/mpprojectfollows"緇撶偣鏁扮粍
var nodes=myAjax.getXMLDom().selectNodes("root/data/mpprojectfollows");
for(var i=0;i<nodes.length;i++){
addElement(jquery("#"+taskid),nodes[i]);
}
}
/**
*鍔ㄦ佸鍔爐r緇撶偣,浠ヨ姹傜殑鏈嶅姟绔暟鎹潵閬嶅巻娣誨姞緇撶偣
*template:html欏甸潰鍏冪礌;node:鏈嶅姟绔暟鎹瓙瀹炰綋
*/
function addElement(template,node){
var xml=jquery(node);
var template=addnode(template,xml)
var childnodes=xml.children("childTasks");
for(var i=0;i<childnodes.length&&jquery(xml.children("childTasks")[i]).text()!="";i++){
addElement(template,xml.children("childTasks")[i]);
}
}
/**
*浠ユ湇鍔$鐨勫瓙瀹炰綋瀵硅薄(xml)鏋勯犱竴涓粨鐐規坊鍔犲埌html鍏冪礌(template)
*/
function addnode(template,xml){
var open_gif='<%=request.getContextPath() %>/common/skins/default/images/grouppanel/grouppanel_open.gif';
var close_gif="<%=request.getContextPath() %>/common/skins/default/images/grouppanel/grouppanel_close.gif"
//浠庢ā鏉跨粨鐐規瀯閫犲嚭鐩爣緇撶偣tr
var curtr=template.clone().insertAfter(template).hide()
.attr("id",jquery(xml.find("taskno")[0]).text())
.attr("paraTaskno",jquery(xml.find("paraTaskno")[0]).text());
//棣栦釜TD緇撶偣
var firsttd=jquery(curtr.children("td")[0]);
var td=jquery(curtr.children("td")[0]).css("padding-left",parseInt(firsttd.css("padding-left"))+10+"px")
.empty();
jquery("<a href='#'></a>").text(jquery(xml.find("taskName")[0]).text())
.bind("click",function(){
showTaskDet(jquery(xml.find("taskno")[0]).text());
}).appendTo(td);
var img=jquery("<img/>").prependTo(td);
if(jquery(xml.children("childTasks")[0]).text()!=""){
//闈炲彾瀛愮粨鐐?緇戝畾浜嬩歡
img.attr("src",open_gif);
img.bind("click",function(){
var path=jquery(this).attr("src");
var tr=jquery(this).closest("tr");
if(path==open_gif){
jquery(this).attr("src",close_gif);
recursion_node(tr,true);
}else{
jquery(this).attr("src",open_gif);
recursion_node(tr,false);
}
})
}else{
//鍙跺瓙緇撶偣
img.attr("src",close_gif);
}
td.next().empty()//text(jquery(xml.find("projectName")[0]).text())
.next().empty()//text(jquery(xml.find("modName")[0]).text())
.next().text(jquery(xml.find("taskRate")[0]).text())
.next().text(jquery(xml.find("planPres")[0]).text())
.next().text(jquery(xml.find("auditorName")[0]).text())
.next().text(jquery(xml.find("proStarDate")[0]).text())
.next().text(jquery(xml.find("proEndDate")[0]).text())
.next().text(jquery(xml.find("taskStatus")[0]).text())
.next().text(jquery(xml.find("actorRated")[0]).text())
.next().text(jquery(xml.find("actorDate")[0]).text())
.next().text(jquery(xml.find("reason")[0]).text())
.next().text(jquery(xml.find("auditRate")[0]).text())
.next().text(jquery(xml.find("comDate")[0]).text())
.next().text("");
return curtr;
}
/**
*灞傚彔閫掑綊鏂瑰紡鏄劇ず鎴栭殣钘忕粨鐐?br />
* node:jquery瀵硅薄;isshow:boolean鍊?br />
*/
function recursion_node(node,isshow){
var open_gif='<%=request.getContextPath() %>/common/skins/default/images/grouppanel/grouppanel_open.gif';
var close_gif="<%=request.getContextPath() %>/common/skins/default/images/grouppanel/grouppanel_close.gif"
var nodes=node.nextAll("tr[paraTaskno='"+node.attr("id")+"']")
for(var i=0;i<nodes.length;i++){
recursion_node(jquery(nodes[i]),isshow);
if(!isshow){
jquery(nodes[i]).hide();
}else{
jquery(nodes[i]).show();
}
}
if(nodes.length>0){
jquery(node.find("img")[0]).attr("src",!isshow?open_gif:close_gif)
}
}
</script>妯℃佺獥鍙h緭鍏ュ弬鏁幫細dialogArguments錛涚被鍨嬫暟緇勶紝鏍煎紡錛歔value錛宒isplayValue]銆?br />
$id("displayValue").value = dialogArguments[1];
$id("submitValue").value = dialogArguments[0];
妯℃佺獥鍙h緭鍑哄弬鏁幫細returnValue錛涜繑鍥炲肩被鍨嬩負鏁扮粍錛屾牸寮忎負錛歔鎻愪氦鍊鹼紝鏄劇ず鍊糫銆?br />
returnValue = [$id('submitValue').value,$id('displayValue').value];
鎺ュ彈lookup鎺т歡鏄劇ず鍊煎拰鎻愪氦鍊肩殑浠g爜銆?
1銆傛帴鏀墮氳繃妯℃佸璇濇鐨刣ialogArguments 鍙傛暟錛堜笉鍙殢鎰忓彉鏇村悕縐幫級錛?br />
$id("displayValue").value = dialogArguments[1];
$id("submitValue").value = dialogArguments[0];
2銆傛帴鏀墮氳繃url浼犻掔殑鍙傛暟錛?br />
涓婚〉闈細<h:param name="param1" value="url浼犻掔殑鍙傛暟"/>
鎺ユ敹欏甸潰錛?lt;%=URLDecoder.decode(request.getParameter("param1"),"UTF-8") %>
灞炴ф潵鎸囧畾銆?br /> <%= ((DataObject)pageContext.getAttribute("id1")).getString("paramDictname") %>
>' iterateId="id1" property='<%=((DataObject)pageContext.getAttribute("id1")).getString("paramDbname") %>'
dictTypeId='<%=((DataObject)pageContext.getAttribute("id1")).getString("paramDictname") %>' />
</l:in>