staffWorkReport-bak.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. var taskStateReportTable, taskScheduleReportTable, manHourReportTable;
  2. var curTab = 1;
  3. var isInitPage = true;
  4. $(function(){
  5. $("#projId").ligerComboBox({slide:false, width:150});
  6. $("#createDateStart").ligerDateEditor({ showTime: false, labelAlign: 'left'});
  7. $("#createDateEnd").ligerDateEditor({ showTime: false, labelAlign: 'left'});
  8. $("#createDate").ligerComboBox({width:150, slide:false, resize:false, onSelected:function(value, text){
  9. if(value != 3){
  10. $("#createDateStartPanel").css("visibility", "hidden");
  11. $("#createDateToPanel").css("visibility", "hidden");
  12. $("#createDateEndPanel").css("visibility", "hidden");
  13. }else{
  14. $("#createDateStartPanel").css("visibility", "visible");
  15. $("#createDateToPanel").css("visibility", "visible");
  16. $("#createDateEndPanel").css("visibility", "visible");
  17. }
  18. }});
  19. $("#staffWorkReportTab").ligerTab({changeHeightOnResize:true, onAfterSelectTabItem:function(tabId){
  20. if(tabId == "tabitem1"){
  21. curTab = 1;
  22. if(taskStateReportTable == undefined){
  23. initTaskStateReportTable();
  24. }
  25. }else if(tabId == "tabitem2"){
  26. curTab = 2;
  27. if(taskScheduleReportTable == undefined){
  28. initTaskScheduleReportTable();
  29. }
  30. }else if(tabId == "tabitem3"){
  31. curTab = 3;
  32. if(manHourReportTable == undefined){
  33. initManHourReportTable();
  34. }
  35. }
  36. }});
  37. // 初始化我负责的任务列表
  38. $("#pageloading").hide();
  39. });
  40. function initTaskStateReportTable(params){
  41. if(params == undefined){
  42. params = getParams();
  43. }
  44. if(!params.error){
  45. if(taskStateReportTable == undefined){
  46. refreshBtn(true);
  47. taskStateReportTable = $("#taskStateReport").ligerGrid({
  48. columns: [
  49. { display: '姓名', name: 'userName', align: 'center', minWidth: 120 },
  50. { display: '未接收', name: 'unreceiveTaskCount', align: 'center', width: 100 },
  51. { display: '进行中', name: 'progressTaskCount', align: 'center', width: 100 },
  52. { display: '中断', name: 'stopTaskCount', align: 'center', width: 100 },
  53. { display: '推迟', name: 'postponeTaskCount', align: 'center', width: 100 },
  54. { display: '驳回', name: 'rejectTaskCount', align: 'center', width: 100 },
  55. { display: '待审', name: 'pendingTaskCount', align: 'center', width: 100 },
  56. { display: '完成', name: 'finishTaskCount', align: 'center', width: 100 },
  57. { display: '任务合计', name: 'taskCount', align: 'center', width: 120 }
  58. ], pageSize:50,
  59. url: 'StaffWorkReportAction.do?task=projectStaffWorkReport&report=1&type=1&time=' + new Date().getTime(),
  60. parms : params,
  61. pageParmName: 'curPage',
  62. pagesizeParmName: 'pageSize',
  63. width: '100%',
  64. height: '99%',
  65. rownumbers:false,
  66. enabledSort:false,
  67. method:"post",
  68. onAfterShowData:function(data){
  69. showMsg(data);
  70. refreshBtn(false);
  71. },
  72. onError:function(){
  73. alert("获取数据失败,请刷新页面后重试!");
  74. refreshBtn(false);
  75. }
  76. });
  77. }else{
  78. taskStateReportTable._setParms(params);
  79. taskStateReportTable.loadData();
  80. }
  81. }
  82. }
  83. function initTaskScheduleReportTable(params){
  84. if(params == undefined){
  85. params = getParams();
  86. }
  87. if(!params.error){
  88. if(taskScheduleReportTable == undefined){
  89. refreshBtn(true);
  90. taskScheduleReportTable = $("#taskScheduleReport").ligerGrid({
  91. columns: [
  92. { display: '姓名', name: 'userName', align: 'center', minWidth: 120 },
  93. { display: '正常进行中的任务', name: 'normalInProgressTaskCount', align: 'center', width: 130 },
  94. { display: '已延期的任务', name: 'postponeInProgressTaskCount', align: 'center', width: 130 },
  95. { display: '延期完成的任务', name: 'postponeFinishTaskCount', align: 'center', width: 130 },
  96. { display: '按时完成的任务', name: 'onScheduleFinishTaskCount', align: 'center', width: 130 },
  97. { display: '提前完成的任务', name: 'aheadFinishTaskCount', align: 'center', width: 130 },
  98. { display: '任务合计', name: 'taskCount', align: 'center', width: 120 },
  99. { display: '任务正常执行率', name: 'normalTaskRate', align: 'center', width: 120
  100. ,render: function (row) {
  101. return (row.normalTaskRate * 100) + "%";
  102. }
  103. }
  104. ], pageSize:50,
  105. url: 'StaffWorkReportAction.do?task=projectStaffWorkReport&report=2&type=1&time=' + new Date().getTime(),
  106. parms : params,
  107. pageParmName: 'curPage',
  108. pagesizeParmName: 'pageSize',
  109. width: '100%',
  110. height: '99%',
  111. rownumbers:false,
  112. enabledSort:false,
  113. method:"post",
  114. onAfterShowData:function(data){
  115. showMsg(data);
  116. refreshBtn(false);
  117. },
  118. onError:function(){
  119. alert("获取数据失败,请刷新页面后重试!");
  120. refreshBtn(false);
  121. }
  122. });
  123. }else{
  124. taskScheduleReportTable._setParms(params);
  125. taskScheduleReportTable.loadData();
  126. }
  127. }
  128. }
  129. function initManHourReportTable(params){
  130. if(params == undefined){
  131. params = getParams();
  132. }
  133. if(!params.error){
  134. if(manHourReportTable == undefined){
  135. refreshBtn(true);
  136. manHourReportTable = $("#manHourReport").ligerGrid({
  137. columns: [
  138. { display: '姓名', name: 'userName', align: 'center', minWidth: 150 },
  139. { display: '已报工时', name: 'pracTotalManHour', align: 'center', width: 250 },
  140. { display: '应报工时(仅供参考,包含节假日)', name: 'planTotalManHour', align: 'center', width: 250 },
  141. { display: '工时差', name: 'offsetManHour', align: 'center', width: 250 }
  142. ], pageSize:50,
  143. url: 'StaffWorkReportAction.do?task=projectStaffWorkReport&report=3&type=1&time=' + new Date().getTime(),
  144. parms : params,
  145. pageParmName: 'curPage',
  146. pagesizeParmName: 'pageSize',
  147. width: '100%',
  148. height: '99%',
  149. rownumbers:false,
  150. enabledSort:false,
  151. method:"post",
  152. onAfterShowData:function(data){
  153. showMsg(data);
  154. refreshBtn(false);
  155. },
  156. onError:function(){
  157. alert("获取数据失败,请刷新页面后重试!");
  158. refreshBtn(false);
  159. }
  160. });
  161. }else{
  162. manHourReportTable._setParms(params);
  163. manHourReportTable.loadData();
  164. }
  165. }
  166. }
  167. function searchReport(){
  168. var params = getParams();
  169. switch(curTab){
  170. case 1 : initTaskStateReportTable(params);break;
  171. case 2 : initTaskScheduleReportTable(params);break;
  172. case 3 : initManHourReportTable(params);break;
  173. }
  174. }
  175. function exportExcel(){
  176. alert("正在开发中……");
  177. return;
  178. var params = getParams();
  179. if(!params.error){
  180. var curTable = getReportTable();
  181. if(curTable != null){
  182. var pageSize = curTable.ligerGetGridManager().get("pageSize");
  183. var page = curTable.ligerGetGridManager().get("page");
  184. var action = "StaffWorkReportAction.do?task=projectStaffWorkReport";
  185. action = action + "&report=" + curTab +"&type=2&pageSize="+ pageSize + "&curPage=" + page + convertJson2UrlParams(params);
  186. $("#exportExcelForm").attr("action", action).submit();
  187. }
  188. }
  189. }
  190. /** 获取表格对象
  191. *@param tabId[int][可不传,为空时取得当前处于显示状态的表格对象,传入参数时,根据tabId获取表格对象]
  192. *@return ligerUi创建的表格对象
  193. ***/
  194. function getReportTable(tabId){
  195. var obj = null;
  196. if(!tabId){
  197. tabId = curTab;
  198. }
  199. switch(tabId){
  200. case 1 : obj = $("#taskStateReport"); break;
  201. case 2 : obj = $("#taskScheduleReport"); break;
  202. case 3 : obj = $("#manHourReport"); break;
  203. default : obj = null; break;
  204. }
  205. return obj;
  206. }
  207. function showMsg(data){
  208. if(data == undefined || data.Rows.length == 0){
  209. var obj = getReportTable();
  210. obj.find("div[class*='l-grid-body-inner']:first").html("<div style='padding-top:50px;width:100%;text-align:center'>没有相关统计数据……</div>");
  211. }
  212. }
  213. function refreshBtn(isDisabled){
  214. $("input[type='button']").each(function(){
  215. this.disabled = isDisabled;
  216. });
  217. }