taskVerification.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. var taskListTable;
  2. var tmsMsgRemindUtil;
  3. $(function(){
  4. $("#projId").ligerComboBox({width:150, slide:false, resize:false});
  5. $("#taskState").ligerComboBox({width:100, slide:false, resize:false});
  6. tmsMsgRemindUtil = new TmsMsgRemindUtil;
  7. initTaskListTable();
  8. $("#pageloading").hide();
  9. });
  10. function initTaskListTable(params){
  11. if(params == undefined){
  12. params = "";
  13. }
  14. if(!taskListTable){
  15. taskListTable = $("#taskList").ligerGrid({
  16. columns: [
  17. { display: '任务名称', name: 'task_name_text', align: 'left', minWidth: 290, frozen: true
  18. ,render: function (row)
  19. {
  20. var html = '<a href="#" onclick="seeTask(' + row.universalid + ')">'+ row.task_name + '(' + row.proc_finish_per + '%)' +'</a>';
  21. return html;
  22. }
  23. },
  24. { display: '任务状态', name: 'task_state_text', width: 70, align: 'center', frozen: true
  25. ,render: function (row) {
  26. var html = displayTaskState4User(row, false);
  27. return html;
  28. }
  29. },
  30. { display: '已用时', name: 'prac_man_hour', width: 55, align: 'center' , frozen: true },
  31. { display: '工期差距(天)', name: 'between_day', width: 80, align: 'center', frozen: true
  32. ,render: function (row) {
  33. var html = displayBetweenDay(row);
  34. return html;
  35. }
  36. },
  37. { display: '任务类型', name: 'task_type_text', width: 145, align: 'center'
  38. ,render: function (row)
  39. {
  40. var html = row.task_type_text + '(' + row.task_source_text + ')';
  41. return html;
  42. }
  43. },
  44. { display: '项目名称', name: 'proj_name', width:105,align: 'center'
  45. ,render: function (row){
  46. if(row.proj_id != 0){
  47. var html = '<a href="#" onclick="seeProject(' + row.proj_id + ')">'+row.proj_name+'</a>';
  48. return html;
  49. }else{
  50. return row.proj_name;
  51. }
  52. }
  53. },
  54. { display: '责任人', name: 'prov_user', width:100,align: 'center'
  55. ,render: function (row)
  56. {
  57. var html = '<a href="#" onclick="seeUser(' + row.develop_user_id + ')">' + row.develop_user + '</a>';
  58. return html;
  59. }
  60. },
  61. { display: '计划完成时间', name: 'plan_fin_date', width:150,align: 'center' , format:'yyyy-MM-dd hh:mm:ss'},
  62. { display: '实际完成时间', name: 'prac_fin_date', width:150,align: 'center' , format:'yyyy-MM-dd hh:mm:ss' },
  63. { display: '创建时间', name: 'create_date', width:150,align: 'center' , format:'yyyy-MM-dd hh:mm:ss' }
  64. ], pageSize:20,
  65. url: 'TaskVerificationAction.do?task=searchTask&time=' + new Date().getTime(),
  66. parms : params,
  67. pageParmName: 'curPage',
  68. pagesizeParmName: 'pageSize',
  69. width: '99.8%',
  70. height: '99%',
  71. checkbox: true,
  72. rownumbers:true,
  73. enabledSort:false,
  74. method:"post",
  75. onAfterShowData:refreshBtn,
  76. onError:function(){
  77. alert("获取列表失败,请刷新页面后重试!");
  78. refreshBtn();
  79. }
  80. });
  81. }else{
  82. taskListTable._setParms(params);
  83. taskListTable.loadData();
  84. }
  85. }
  86. function refreshBtn(data){
  87. var taskState = document.getElementById("taskState").value;
  88. if(taskState == 6){
  89. document.getElementById("rejectBtn").disabled = true;
  90. }else{
  91. document.getElementById("rejectBtn").disabled = false;
  92. }
  93. document.getElementById("finishBtn").disabled = false;
  94. document.getElementById("searchBtn").disabled = false;
  95. if(data == undefined || data.Rows.length == 0){
  96. $("#taskList").find("div[class*='l-grid-body-inner']:first").html("<div style='padding-top:50px;width:100%;text-align:center'>没有查询到相关信息……</div>");
  97. }
  98. }
  99. function searchTask(){
  100. var projId = $("#projId").val();
  101. var taskState = $("#taskState").val();
  102. var searchObj = {"projId":projId,"taskState":taskState};
  103. disableBtn(true);
  104. initTaskListTable(searchObj);
  105. }
  106. /** 以下是驳回任务的相关代码 **/
  107. var rejectTaskDialogContent = '<div id="rejectTaskDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  108. + '<table style="width: 100% ">'
  109. + '<tr><td width="80" style="font-weight: bold;">填写备注:</td><td>'
  110. + '<textarea rows="10" cols="50" name="rejectComment" id="rejectComment"></textarea>'
  111. + '<div id="rejectCommentMsg"></div></td></tr>'
  112. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  113. + '<td class="l-table-edit-td" colspan="4" nowrap="nowrap" id="rejectTaskMsg">'
  114. + '</td></tr>'
  115. + '<tr><td colspan="2" style="text-align: center"><br/>'
  116. + '<input type="button" value="提交" class="l-button" onclick="rejectTask()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  117. + '<input type="button" value="取消" class="l-button" onclick="closeRejectTaskDialog()"/>'
  118. + '</td></tr></table></div>';
  119. var rejectTaskDialog;
  120. function openRejectTaskDialog(){
  121. var taskId = getSelectedTaskId();
  122. if(taskId == ""){
  123. $.ligerDialog.warn("请选择要驳回的任务!");
  124. }else{
  125. if(rejectTaskDialog == undefined){
  126. rejectTaskDialog = $.ligerDialog.open({
  127. content: rejectTaskDialogContent,
  128. width:460,
  129. modal: true,
  130. title:"驳回任务",
  131. allowClose:true,
  132. isHidden:false,
  133. onClose:function(dialog,options){
  134. rejectTaskDialog = undefined;
  135. return true;
  136. }
  137. });
  138. tmsMsgRemindUtil.createPanel({id:"rejectTaskMsg", panelId:"rejectTaskMsgPanel"});
  139. }else{
  140. rejectTaskDialog.show();
  141. }
  142. }
  143. }
  144. function rejectTask(){
  145. var rs = $.validate({
  146. name : "rejectComment",
  147. model : [ {
  148. type : "len",
  149. min : 0,
  150. max : 250,
  151. msg : "备注长度须少于250个字符,一个汉字占2个字符!",
  152. msgBox: "rejectCommentMsg"
  153. }]
  154. });
  155. if(rs && confirm("您确定要驳回任务吗?")){
  156. var rejectComment = encodeURI($("#rejectComment").val());
  157. var taskId = getSelectedTaskId();
  158. var msgType = tmsMsgRemindUtil.getSelectResult("rejectTaskMsgPanel");
  159. var dataParam = {"rejectComment":rejectComment, "taskId":taskId, "msgType" : msgType};
  160. $.ajax({
  161. type:"POST",
  162. url:"TaskVerificationAction.do?task=rejectTask&time=" + new Date().getTime(),
  163. timeout:30000,
  164. cache:false,
  165. dataType:"json",
  166. data:dataParam,
  167. beforeSend:function(){
  168. rejectTaskDialog.hidden();
  169. showWaittingDialog("正在提交中,请稍后……");
  170. },
  171. success:function(data){
  172. var error = data.error;
  173. if(error == undefined){
  174. $.ligerDialog.open({content:"操作成功,任务已经被驳回", "title":"操作成功!", "type":"success", allowClose:false,
  175. buttons: [ { text: '确定', onclick: function (item, dialog) { dialog.close();searchTask(); } }]
  176. });
  177. }else{
  178. openRejectTaskDialog();
  179. showAjaxError(null, data.error);
  180. }
  181. },
  182. error:function(err){
  183. showAjaxError(err);
  184. },
  185. complete:function(){
  186. closeWaittingDialog();
  187. }
  188. });
  189. }else{
  190. $("#rejectComment").focus();
  191. }
  192. }
  193. function closeRejectTaskDialog(){
  194. if(rejectTaskDialog != undefined){
  195. rejectTaskDialog.close();
  196. }
  197. }
  198. /** 以上是驳回任务相关代码 **/
  199. /** 以下是同意任务相关代码 **/
  200. var finishTaskDialogContent = '<div id="finishTaskDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  201. + '<table style="width: 100% ">'
  202. + '<tr><td width="80" style="font-weight: bold;">填写备注:</td><td>'
  203. + '<textarea rows="10" cols="50" name="finishComment" id="finishComment"></textarea>'
  204. + '<div id="finishCommentMsg"></div></td></tr>'
  205. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  206. + '<td class="l-table-edit-td" colspan="4" nowrap="nowrap" id="finishTaskMsg">'
  207. + '</td></tr>'
  208. + '<tr><td colspan="2" style="text-align: center"><br/>'
  209. + '<input type="button" value="提交" class="l-button" onclick="finishTask()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  210. + '<input type="button" value="取消" class="l-button" onclick="closeFinishTaskDialog()"/>'
  211. + '</td></tr></table></div>';
  212. var finishTaskDialog;
  213. function openFinishTaskDialog(){
  214. var taskId = getSelectedTaskId();
  215. var taskState = document.getElementById("taskState");
  216. if(taskId == ""){
  217. $.ligerDialog.warn("请选择要同意的任务!");
  218. }else{
  219. if(finishTaskDialog == undefined){
  220. finishTaskDialog = $.ligerDialog.open({
  221. content: finishTaskDialogContent,
  222. width:460,
  223. modal: true,
  224. title:"同意任务完成",
  225. allowClose:true,
  226. isHidden:false,
  227. onClose:function(dialog,options){
  228. finishTaskDialog = undefined;
  229. return true;
  230. }
  231. });
  232. tmsMsgRemindUtil.createPanel({id:"finishTaskMsg", panelId:"finishTaskMsgPanel"});
  233. }else{
  234. finishTaskDialog.show();
  235. }
  236. }
  237. }
  238. function finishTask(){
  239. var rs = $.validate({
  240. name : "finishComment",
  241. model : [ {
  242. type : "len",
  243. min : 0,
  244. max : 250,
  245. msg : "备注长度须少于250个字符,一个汉字占2个字符!",
  246. msgBox: "finishCommentMsg"
  247. }]
  248. });
  249. if(rs && confirm("您确定要同意任务完成吗?")){
  250. var finishComment = encodeURI($("#finishComment").val());
  251. var taskId = getSelectedTaskId();
  252. var msgType = tmsMsgRemindUtil.getSelectResult("finishTaskMsgPanel");
  253. var dataParam = {"finishComment":finishComment, "taskId":taskId, "msgType" : msgType};
  254. $.ajax({
  255. type:"POST",
  256. url:"TaskVerificationAction.do?task=finishTask&time=" + new Date().getTime(),
  257. timeout:30000,
  258. cache:false,
  259. dataType:"json",
  260. data:dataParam,
  261. beforeSend:function(){
  262. finishTaskDialog.hidden();
  263. showWaittingDialog("正在提交中,请稍后……");
  264. },
  265. success:function(data){
  266. var error = data.error;
  267. if(error == undefined){
  268. $.ligerDialog.open({content:"操作成功,任务已完成", "title":"操作成功!", "type":"success",allowClose:false,
  269. buttons: [ { text: '确定', onclick: function (item, dialog) { dialog.close();searchTask(); } }]
  270. });
  271. }else{
  272. openFinishTaskDialog();
  273. showAjaxError(null, data.error);
  274. }
  275. },
  276. error:function(err){
  277. showAjaxError(err);
  278. },
  279. complete:function(){
  280. closeWaittingDialog();
  281. }
  282. });
  283. }else{}
  284. }
  285. function closeFinishTaskDialog(){
  286. if(finishTaskDialog != undefined){
  287. finishTaskDialog.close();
  288. }
  289. }
  290. function disableBtn(isDisable){
  291. $("#searchBtn").attr("disabled", isDisable);
  292. $("#rejectBtn").attr("disabled", isDisable);
  293. $("#finishBtn").attr("disabled", isDisable);
  294. }