deptTaskDecompositionList.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. var projectTable;
  2. function initProjectTable(params){
  3. if(params == undefined){
  4. params = "";
  5. }
  6. if(projectTable == undefined){
  7. projectTable = $("#projectTable").ligerGrid({
  8. columns: [
  9. { display: '项目名称', name: 'proj_name', align: 'left', width: 350
  10. ,render: function (row, index)
  11. {
  12. var html = '<a href="javascript:;" onclick="projectTable.extendDetail(' + index + ')">'+ row.proj_name +'</a>';
  13. return html;
  14. }
  15. },
  16. { display: '已分解任务总数', name: 'task_count', align: 'center', width: 200},
  17. { display: '待派发任务总数', name: 'prov_task_count', width: 200, align: 'center'
  18. ,render: function (row)
  19. {
  20. return row.task_count - row.prov_task_count + "";
  21. }
  22. },
  23. { display: '最后更新时间', name: 'last_update_date', width:180,align: 'center' , format:'yyyy-MM-dd hh:mm:ss' }
  24. ],
  25. pageSize:20,
  26. url: 'DeptTaskDecompositionAction.do?task=getProjectList&time=' + new Date().getTime(),
  27. parms : params,
  28. pageParmName: 'curPage',
  29. pagesizeParmName: 'pageSize',
  30. width: '99.8%',
  31. height: '99%',
  32. checkbox: false,
  33. rownumbers:false,
  34. enabledSort:false,
  35. method:"post",
  36. usePager:true,
  37. detail:{
  38. onShowDetail:function(row, detailPanel, callback){
  39. getProjectNodeList(row.universalid ,detailPanel,"930","238");
  40. },
  41. height:"250",
  42. showTitle:true
  43. },
  44. onError:function(err){
  45. alert("获取数据失败,请刷新页面后重试!");
  46. }
  47. });
  48. }else{
  49. projectTable.set("parms",params);
  50. projectTable.loadData();
  51. }
  52. }
  53. function getProject(){
  54. var deptId = $("#deptId").val();
  55. if(deptId){
  56. $.ajax({
  57. type:"post",
  58. url:"DeptTaskDecompositionAction.do?task=getProject&time=" + new Date().getTime(),
  59. data:{"deptId":deptId},
  60. timeout:30000,
  61. cache:false,
  62. dataType:"json",
  63. beforeSend:function(){
  64. },
  65. success:initProjectSelect,
  66. error:showAjaxError,
  67. complete:function(){
  68. }
  69. });
  70. }
  71. }
  72. function getProjectNodeList(projectId, detailPanel,width,height){
  73. if(projectId && projectId != "-1"){
  74. $.ajax({
  75. type:"post",
  76. url:"TaskDecompositionAction.do?task=getTmsProjectNodeList4Progress&time=" + new Date().getTime(),
  77. data:{"projectId":projectId},
  78. timeout:30000,
  79. cache:false,
  80. dataType:"json",
  81. success:function(data){
  82. if(data.error){
  83. showAjaxError(data.error);
  84. return;
  85. }
  86. var tableWidth = data[0].tableWidth;
  87. var dayOfPixel = data[0].dayOfPixel;
  88. //if((tableWidth*dayOfPixel) < width){
  89. // width = (tableWidth*dayOfPixel);
  90. //}
  91. var list = eval(data[0].list);
  92. var s = '<div style="margin:5px auto; border: 1px solid #a3c0e8; width:'+width+'px;overflow:auto;height:'+height+'px;clear: both;">';
  93. s +='<div style="clear: both;margin-bottom:0px;margin-left:0px;margin-top:0px; padding: 0;width:'+(tableWidth*dayOfPixel)+'px;border-right:1px solid #a3c0e8; border-top:1px solid #a3c0e8">';
  94. s +='<div class="l-grid-header l-grid-header1" style="min-width:100%;width:'+(tableWidth*dayOfPixel)+'px">';
  95. s +='<div class="l-grid-header-inner" style="min-width:100%;width:'+(tableWidth*dayOfPixel)+'px">';
  96. s +='<table class="l-grid-header-table" cellSpacing="0" cellPadding="0" style="width:'+(tableWidth*dayOfPixel)+'px; ">';
  97. s +='<tr class="l-grid-hd-row">';
  98. for(var i = 0 ; i<list.length;i++){
  99. var node = list[i];
  100. s +='<td style="width: '+(node.tdWidth*dayOfPixel)+'px; height: 23px;" id="taskList|hcell|c102" class="l-grid-hd-cell" columnindex="1" columnname="task_name_text">';
  101. s +='<div class="l-grid-hd-cell-inner" style="width: '+(node.tdWidth*dayOfPixel)+'px; "><span class="l-grid-hd-cell-text">'+node.node_name + '('+ node.nodeProgress +'%)'+'</span></div>';
  102. s +='</td>';
  103. }
  104. s +='</tr>';
  105. s +='</tbody>';
  106. s +='</table>';
  107. s +='</div>';
  108. s +='</div>';
  109. s +='<div style="overflow:hidden" class="l-grid-body1" >';
  110. s +='<div class="l-grid-body-inner" style="">';
  111. s +='<table class="l-grid-body-table" cellspacing="0" cellpadding="0">';
  112. s +='<tbody>';
  113. for(var i = 0 ; i<list.length;i++){
  114. var node = list[i];
  115. s +='<td style="width:'+(node.tdWidth*dayOfPixel)+'px; " id="tasklist|1|r1001|c103" class="l-grid-row-cell " title="'+(node.start_date).substring(0,10) +'~'+(node.end_date).substring(0,10)+'">';
  116. s +='<div style="text-align: center; min-height: 22px; width:'+(node.tdWidth*dayOfPixel)+'px; height: 22px;margin:0px; " class="l-grid-row-cell-inner">';
  117. s +='<span style="color: #0000ff;">'+(node.start_date).substring(0,10)+'~'+(node.end_date).substring(0,10)+'</span>';
  118. s +='</div>';
  119. s +='</td>';
  120. }
  121. s +='</tbody>';
  122. s +='</table>';
  123. s +='</div>';
  124. s +='</div></div>';
  125. for(var i = 0 ; i<list.length;i++){
  126. var node = list[i];
  127. if(node.procTdWidth != 0){
  128. s +='<div class="div2" onmouseover="showme(\''+node.node_name+'('+node.nodeProgress+'%)\',\''+(node.procStartDate).substring(0,10)+'\',\''+(node.procEndDate).substring(0,10)+'\');" onmouseout="hidme()" onmousemove="showme(\''+node.node_name+'('+node.nodeProgress+'%)\',\''+(node.procStartDate).substring(0,10)+'\',\''+(node.procEndDate).substring(0,10)+'\');" style="cursor:pointer;width: '+(node.procTdWidth*dayOfPixel)+'px;margin-left:'+(node.marginLeft*dayOfPixel)+'px; margin-top: 5px;">';
  129. s += '</div>';
  130. }
  131. }
  132. s +='</div>';
  133. $(detailPanel).css("backgroundColor", "#ffffff")
  134. .css("border", "1px solid #a3c0e8")
  135. .css("border-top", "0px").html(s);
  136. },
  137. error:function(err){
  138. showAjaxError(err);
  139. },
  140. complete:function(msg,err){
  141. }
  142. });
  143. }else{
  144. alert("项目不能为空");
  145. }
  146. }
  147. function initProjectSelect(data){
  148. var success = data.success;
  149. if(success){
  150. var projList = data.success;
  151. var projId = document.getElementById("projId");
  152. projId.options.length = 0;
  153. for(var i = 0; i < projList.length; i++){
  154. addSelectOption(projId, projList[i].proj_name, projList[i].universalid);
  155. }
  156. addSelectOption(projId, "  ", -1);
  157. projId.value = "-1";
  158. $("#projId").ligerGetComboBoxManager().setSelect();
  159. }else{
  160. $.ligerDialog.error(data.error);
  161. }
  162. }
  163. function searchProject(){
  164. var projId = $("#projId").val();
  165. var deptId = $("#deptId").val();
  166. if(!projId || projId == "-1"){
  167. projId = "";
  168. }
  169. if(!deptId || deptId == "-1"){
  170. deptId = "";
  171. }
  172. var param = {"projId":''+projId, "deptId":deptId};
  173. initProjectTable(param);
  174. }