deptTaskManager.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. var taskListTable;
  2. var projComboBox;
  3. var projNodeComnoBox;
  4. var isLoading = false;
  5. $(function(){
  6. projComboBox = $("#projId").ligerComboBox({width:150, slide:false, resize:false, onSelected:getProjectNode});
  7. projNodeComnoBox = $("#projNodeId").ligerComboBox({width:150, slide:false, resize:false});
  8. $("#createDateStart").ligerDateEditor({ showTime: false, labelAlign: 'left'});
  9. $("#createDateEnd").ligerDateEditor({ showTime: false, labelAlign: 'left'});
  10. $("#createDate").ligerComboBox({width:150, slide:false, resize:false, onSelected:function(value, text){
  11. if(value != 3){
  12. $("#createDateStartPanel").css("visibility", "hidden");
  13. $("#createDateToPanel").css("visibility", "hidden");
  14. $("#createDateEndPanel").css("visibility", "hidden");
  15. }else{
  16. $("#createDateStartPanel").css("visibility", "visible");
  17. $("#createDateToPanel").css("visibility", "visible");
  18. $("#createDateEndPanel").css("visibility", "visible");
  19. }
  20. }});
  21. loadTypeTree("deptButton", {
  22. type : "dept",
  23. backId : "deptId",
  24. backName : "deptName",
  25. tab:tab
  26. });
  27. $("#taskState").ligerComboBox({
  28. width:150, slide:false, resize:false, isShowCheckBox:true, isMultiSelect:true, selectBoxHeight:180, split:",",valueFieldID:"taskStateId"
  29. ,data: getTaskStateJson()});
  30. initTaskListTable({"deptId": document.getElementById("deptId").value});
  31. $("#deptName").bind("change", getProject);
  32. $("#pageloading").hide();
  33. });
  34. function getProject(value, text){
  35. var deptId = $("#deptId").val();
  36. if(deptId){
  37. $.ajax({
  38. type:"post",
  39. url:"DeptTaskManagerAction.do?task=getProject&time=" + new Date().getTime(),
  40. data:{"deptId":deptId},
  41. timeout:30000,
  42. cache:false,
  43. dataType:"json",
  44. beforeSend:function(){
  45. },
  46. success:initProjectSelect,
  47. error:showAjaxError,
  48. complete:function(){
  49. }
  50. });
  51. }
  52. }
  53. function initProjectSelect(data){
  54. var success = data.success;
  55. if(success){
  56. var projList = data.success;
  57. var projId = document.getElementById("projId");
  58. projId.options.length = 0;
  59. for(var i = 0; i < projList.length; i++){
  60. addSelectOption(projId, projList[i].proj_name, projList[i].universalid);
  61. }
  62. addSelectOption(projId, "非项目", 0);
  63. addSelectOption(projId, "  ", -1);
  64. projId.value = "-1";
  65. projComboBox.setSelect();
  66. }else{
  67. $.ligerDialog.error(data.error);
  68. }
  69. }
  70. function getProjectNode(value, text){
  71. var projId = value;
  72. if(projId > 0){
  73. $.ajax({
  74. type:"post",
  75. url:"DeptTaskManagerAction.do?task=getProjectNode&time=" + new Date().getTime(),
  76. data:{"projId":projId},
  77. timeout:30000,
  78. cache:false,
  79. dataType:"json",
  80. beforeSend:function(){
  81. },
  82. success:initProjectNodeSelect,
  83. error:showAjaxError,
  84. complete:function(){
  85. }
  86. });
  87. }else{
  88. var projNodeId = document.getElementById("projNodeId");
  89. projNodeId.options.length = 0;
  90. addSelectOption(projNodeId, "", -1);
  91. projNodeId.value = "-1";
  92. projNodeComnoBox.setSelect();
  93. }
  94. }
  95. function initProjectNodeSelect(data){
  96. var success = data.success;
  97. if(success){
  98. var projNodeList = data.success;
  99. var projNodeId = document.getElementById("projNodeId");
  100. projNodeId.options.length = 0;
  101. if(typeof(projNodeList) == "string" || projNodeList.length == 0){
  102. addSelectOption(projNodeId, "  ", -1);
  103. }else{
  104. for(var i = 0; i < projNodeList.length; i++){
  105. if(projNodeList[i].projectid){
  106. projNodeList[i].node_name = projNodeList[i].node_name + "(当前阶段)";
  107. }
  108. addSelectOption(projNodeId, projNodeList[i].node_name, projNodeList[i].universalid);
  109. }
  110. addSelectOption(projNodeId, "  ", -1);
  111. }
  112. projNodeId.value = "-1";
  113. projNodeComnoBox.setSelect();
  114. }else{
  115. $.ligerDialog.error(data.error);
  116. }
  117. }
  118. function initTaskListTable(params){
  119. if(params == undefined){
  120. params = "";
  121. }
  122. if(taskListTable == undefined){
  123. taskListTable = $("#taskList").ligerGrid({
  124. columns: [
  125. { display: '任务名称', name: 'task_name_text', align: 'left', minWidth: 250, frozen: true
  126. ,render: function (row)
  127. {
  128. var html = '<a href="#" onclick="seeTask(' + row.universalid + ')">'+ row.task_name + '(' + row.proc_finish_per + '%)' +'</a>';
  129. return html;
  130. }
  131. },
  132. { display: '任务状态', name: 'task_state_text', width: 70, align: 'center', frozen: true
  133. ,render: function (row) {
  134. var html = displayTaskState(row);
  135. return html;
  136. }
  137. },
  138. { display: '计划用时', name: 'plan_man_hour', width: 60, align: 'center' , frozen: true },
  139. { display: '已用时', name: 'prac_man_hour', width: 55, align: 'center' , frozen: true },
  140. { display: '工期差距(天)', name: 'between_day', width: 80, align: 'center', frozen: true
  141. ,render: function (row) {
  142. var html = displayBetweenDay(row);
  143. return html;
  144. }
  145. },
  146. { display: '任务类型', name: 'task_type_text', width: 145, align: 'center'
  147. ,render: function (row)
  148. {
  149. var html = row.task_type_text + '(' + row.task_source_text + ')';
  150. return html;
  151. }
  152. },
  153. { display: '项目名称', name: 'proj_name', width:105,align: 'center'
  154. ,render: function (row){
  155. if(row.proj_id != 0){
  156. var html = '<a href="#" onclick="seeProject(' + row.proj_id + ')">'+row.proj_name+'</a>';
  157. return html;
  158. }else{
  159. return row.proj_name;
  160. }
  161. }
  162. },
  163. { display: '责任人', name: 'prov_user', width:100,align: 'center'
  164. ,render: function (row)
  165. {
  166. var html = '<a href="#" onclick="seeUser(' + row.develop_user_id + ')">' + row.develop_user + '</a>';
  167. return html;
  168. }
  169. },
  170. { display: '指派人', name: 'prov_user', width:100,align: 'center'
  171. ,render: function (row)
  172. {
  173. var html = '<a href="#" onclick="seeUser(' + row.prov_user_id + ')">' + row.prov_user + '</a>';
  174. return html;
  175. }
  176. },
  177. { display: '创建人', name: 'prov_user', width:100,align: 'center'
  178. ,render: function (row)
  179. {
  180. var html = '<a href="#" onclick="seeUser(' + row.create_user_id + ')">' + row.create_user + '</a>';
  181. return html;
  182. }
  183. },
  184. { display: '计划完成时间', name: 'plan_fin_date', width:150,align: 'center' , format:'yyyy-MM-dd hh:mm:ss'},
  185. { display: '实际完成时间', name: 'prac_fin_date', width:150,align: 'center' , format:'yyyy-MM-dd hh:mm:ss' },
  186. { display: '创建时间', name: 'create_date', width:150,align: 'center' , format:'yyyy-MM-dd hh:mm:ss' }
  187. ], pageSize:20,
  188. url: 'DeptTaskManagerAction.do?task=searchTask&time=' + new Date().getTime(),
  189. parms : params,
  190. pageParmName: 'curPage',
  191. pagesizeParmName: 'pageSize',
  192. width: '99.8%',
  193. height: '99%',
  194. checkbox: false,
  195. rownumbers:true,
  196. enabledSort:false,
  197. method:"post",
  198. delayLoad: true,
  199. onError:function(data){
  200. disableBtn(false);
  201. },
  202. onAfterShowData:function(data){
  203. disableBtn(false);
  204. if(data.Rows.length == 0){
  205. $("#taskList").find("div[class*='l-grid-body-inner']:first").html("<div style='padding-top:50px;width:100%;text-align:center'>没有查询到相关信息……</div>");
  206. }
  207. }
  208. });
  209. }else{
  210. taskListTable._setParms(params);
  211. taskListTable.loadData();
  212. }
  213. }
  214. function searchTask(){
  215. var deptId = $("#deptId").val();
  216. var projId = $("#projId").val();
  217. var projNodeId = $("#projNodeId").val();
  218. var createDate = $("#createDate").val();
  219. var createDateStart = $.trim($("#createDateStart").val());
  220. var createDateEnd = $.trim($("#createDateEnd").val());
  221. var taskState = $("#taskStateId").val();
  222. var searchStr = "{";
  223. if(!deptId){
  224. $.ligerDialog.warn("请选择部门!");
  225. return;
  226. }else{
  227. searchStr += ('"deptId":"' + deptId + '",');
  228. }
  229. if(projId != "" && projId >= 0){
  230. searchStr += ('"projId":' + projId + ",");
  231. }
  232. if(projNodeId != "" && projNodeId > 0 ){
  233. searchStr += ('"projNodeId":"' + projNodeId + '",');
  234. }
  235. if(createDate != ""){
  236. searchStr += ('"createDate":"' + createDate + '",');
  237. }
  238. if(createDateStart != ""){
  239. searchStr += ('"createDateStart":"' + createDateStart + '",');
  240. }
  241. if(createDateEnd != ""){
  242. searchStr += ('"createDateEnd":"' + createDateEnd + '",');
  243. }
  244. if(taskState != ""){
  245. searchStr += ('"taskState":"' + taskState + '",');
  246. }
  247. if(searchStr.lastIndexOf(",") == searchStr.length - 1 ){
  248. searchStr = searchStr.substring(0, searchStr.length - 1);
  249. }
  250. searchStr += "}";
  251. var searchObj = (new Function(" return " + searchStr))();
  252. disableBtn(true);
  253. initTaskListTable(searchObj);
  254. }
  255. function disableBtn(isDisable){
  256. $("#searchBtn").attr("disabled", isDisable);
  257. $("#rejectBtn").attr("disabled", isDisable);
  258. $("#finishBtn").attr("disabled", isDisable);
  259. }
  260. function createTask(){
  261. addTab("CreateTaskAction.do?task=createTask", "新建临时任务", "CreateTaskAction.do?task=createTask", true);
  262. }