taskDetail.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008
  1. /**
  2. * 编辑任务
  3. * @param taskId
  4. */
  5. var editPanel; // 编辑框
  6. function editTask(taskId){
  7. var uri = "TaskDetailAction.do?task=editTask&taskId=" + taskId;
  8. addTab(uri,"编辑任务", uri, true);
  9. // if(!editPanel){
  10. // editPanel = $.ligerDialog.open({height: $(window).height() - 100,
  11. // url: 'TaskDetailAction.do?task=editTask&model=dialog&taskId='+taskId,
  12. // width: $(window).width() - 100,
  13. // showToggle: true,
  14. // showMin: true,
  15. // showMax : true,
  16. // isResize: true,
  17. // modal: true,
  18. // title:"编辑任务",
  19. // isHidden:false,
  20. // onClose:function(){
  21. // editPanel = undefined;
  22. // $("body").css("overflow", "auto");
  23. // return true;
  24. // }
  25. // /*,buttons:[ { text:"提交",onclick:function(){alert(editPanel.find("iframe[id*=['ligerwindow']").length()) } } ,
  26. // {text:"取消",onclick:function(){editPanel.close();}}]
  27. // */
  28. // });
  29. // }else{
  30. // editPanel.show();
  31. // $.ligerui.win.addTask(editPanel);
  32. // }
  33. }
  34. /** 以下是任务转派相关代码 **/
  35. var forwardTaskDialog;
  36. var forwardTaskDialogContent = '<div id="forwardTaskDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  37. + '<table style="width: 100% ">'
  38. + '<tr><td style="font-weight: bold;">转派给<font color="red">*</font>:</td>'
  39. + '<td><input type="text" name="forwardUserName" id="forwardUserName" style=" width: 220px;height: 22px;line-height: 22px;margin-bottom: 5px" readonly="readonly" />'
  40. + '&nbsp;<input type="button" value="请选择人员" class="l-button" style="width: 85px" id="forwardUserBtn"/>'
  41. + '<input type="hidden" name="forwardUserId" id="forwardUserId" />'
  42. + '<div id="forwardUserNameMsg" ></div></td></tr>'
  43. + '<tr><td width="80" style="font-weight: bold;">备注内容:</td><td>'
  44. + '<textarea rows="10" cols="50" name="forwardComment" id="forwardComment"></textarea>'
  45. + '<div id="forwardCommentMsg"></div></td></tr>'
  46. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  47. + '<td class="l-table-edit-td" colspan="4" nowrap="nowrap" id="forwardMsg">'
  48. + '</td></tr>'
  49. + '<tr><td colspan="2" style="text-align: center"><br/>'
  50. + '<input type="button" value="提交" class="l-button" onclick="forwardTask()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  51. + '<input type="button" value="取消" class="l-button" onclick="closeForwardDialog()"/>'
  52. + '</td></tr></table></div>';
  53. function openForwardTaskDialog(){
  54. if(forwardTaskDialog == undefined ){
  55. forwardTaskDialog = $.ligerDialog.open({
  56. content:forwardTaskDialogContent,
  57. width:470,
  58. showMin: true,
  59. isHidden:false,
  60. modal: true,
  61. title:"转派任务",
  62. allowClose:true,
  63. onClose:function(dialog, options){
  64. forwardTaskDialog = undefined;
  65. return true;
  66. }
  67. });
  68. var projId = $("#projId").val();
  69. if(projId > 0){
  70. loadTypeTree("forwardUserBtn",{type:"singleuser",tab:"7",backId:"forwardUserId",backName:"forwardUserName", tabParam:[{tab:"7",root:projId}]});
  71. }else{
  72. loadTypeTree("forwardUserBtn",{type:"singleuser",tab:"2",backId:"forwardUserId",backName:"forwardUserName"});
  73. }
  74. tmsMsgRemindUtil.createPanel({id:"forwardMsg",panelId:"forwardMsgPanel"});
  75. }else{
  76. forwardTaskDialog.show();
  77. $.ligerui.win.addTask(forwardTaskDialog);
  78. }
  79. }
  80. function forwardTask(){
  81. var rs = $.validate({
  82. name : "forwardComment",
  83. model : [ {
  84. type : "len",
  85. min : 0,
  86. max : 250,
  87. msg : "备注长度须少于250个字符,一个汉字占2个字符!",
  88. msgBox: "forwardCommentMsg"
  89. }]
  90. });
  91. rs = $.validate({
  92. name : "forwardUserName",
  93. model : [ {
  94. type : "require",
  95. msg : "请选择转派人员!",
  96. msgBox: "forwardUserNameMsg"
  97. }]
  98. }) && rs;
  99. if(rs){
  100. var forwardComment = $("#forwardComment").val();
  101. var forwardUserId = $("#forwardUserId").val();
  102. var developUserId = $("#developUserId").val();
  103. var taskId = $("#taskId").val();
  104. var msgType = tmsMsgRemindUtil.getSelectResult("forwardMsgPanel");
  105. // 已经是任务负责人时不能转派给自己
  106. if( ("-" + developUserId) == forwardUserId){
  107. $.ligerDialog.warn("您已经是该任务的负责人,请不要再转派给自己!");
  108. return;
  109. }
  110. forwardComment = encodeURI(forwardComment);
  111. var dataParam = {"forwardUserId":forwardUserId, "forwardComment":forwardComment, "taskId":taskId, "msgType" : msgType};
  112. $.ajax({
  113. type:"POST",
  114. url:"TaskDetailAction.do?task=forwardTask&time=" + new Date().getTime(),
  115. timeout:30000,
  116. cache:false,
  117. dataType:"json",
  118. data:dataParam,
  119. beforeSend:function(){
  120. forwardTaskDialog.hidden();
  121. showWaittingDialog("正在提交中,请稍后……");
  122. },
  123. success:function(data){
  124. var error = data.error;
  125. if(error == undefined){
  126. $.ligerDialog.open({content:"转派成功!", "title":"转派成功", "type":"success",allowClose:false,
  127. buttons: [ { text: '确定', onclick: function (item, dialog) { refreshWindow(); } }
  128. ]
  129. });
  130. }else{
  131. openForwardTaskDialog();
  132. showAjaxError(null, data.error);
  133. }
  134. },
  135. error:function(err){
  136. openForwardTaskDialog();
  137. showAjaxError(err);
  138. },
  139. complete:function(){
  140. closeWaittingDialog();
  141. }
  142. });
  143. }
  144. }
  145. function closeForwardDialog(){
  146. if(forwardTaskDialog != undefined){
  147. forwardTaskDialog.close();
  148. forwardTaskDialog = undefined;
  149. }
  150. }
  151. /** 以上是任务转派相关代码 **/
  152. /** 以下是撤销任务相关代码 **/
  153. var cancelTaskDialogContent = '<div id="cancelTaskDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  154. + '<table style="width: 100% ">'
  155. + '<tr><td colspan="2" style="text-align: center; color:red">提示:任务撤销成功后,将会自动关闭当前页面</td></tr>'
  156. + '<tr><td width="80" style="font-weight: bold;">填写备注:</td><td>'
  157. + '<textarea rows="10" cols="50" name="cancelComment" id="cancelComment"></textarea>'
  158. + '<div id="cancelCommentMsg"></div></td></tr>'
  159. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  160. + '<td class="l-table-edit-td" colspan="4" nowrap="nowrap" id="cancelTaskMsg">'
  161. + '</td></tr>'
  162. + '<tr><td colspan="2" style="text-align: center"><br/>'
  163. + '<input type="button" value="提交" class="l-button" onclick="cancelTask()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  164. + '<input type="button" value="取消" class="l-button" onclick="closeCancelTaskDialog()"/>'
  165. + '</td></tr></table></div>';
  166. var cancelTaskDialog;
  167. function openCancelTaskDialog(){
  168. if(cancelTaskDialog == undefined){
  169. cancelTaskDialog = $.ligerDialog.open({
  170. content: cancelTaskDialogContent,
  171. showMin:true,
  172. width:470,
  173. modal: true,
  174. title:"撤销任务",
  175. allowClose:true,
  176. isHidden:false,
  177. onClose:function(dialog,options){
  178. cancelTaskDialog = undefined;
  179. return true;
  180. }
  181. });
  182. tmsMsgRemindUtil.createPanel({id:"cancelTaskMsg", panelId:"cancelTaskMsgPanel"});
  183. }else{
  184. cancelTaskDialog.show();
  185. }
  186. }
  187. function closeCancelTaskDialog(){
  188. if(cancelTaskDialog != undefined){
  189. cancelTaskDialog.close();
  190. }
  191. }
  192. function cancelTask(){
  193. var rs = $.validate({
  194. name : "cancelComment",
  195. model : [ {
  196. type : "len",
  197. min : 0,
  198. max : 250,
  199. msg : "备注长度须少于250个字符,一个汉字占2个字符!",
  200. msgBox: "cancelCommentMsg"
  201. }]
  202. });
  203. if(rs && confirm("您确定要撤销该项任务吗?")){
  204. var cancelComment = encodeURI($("#cancelComment").val());
  205. var taskId = $("#taskId").val();
  206. var msgType = tmsMsgRemindUtil.getSelectResult("cancelTaskMsgPanel");
  207. var dataParam = {"cancelComment":cancelComment, "taskId":taskId, "msgType" : msgType};
  208. $.ajax({
  209. type:"POST",
  210. url:"TaskDetailAction.do?task=cancelTask&time=" + new Date().getTime(),
  211. timeout:30000,
  212. cache:false,
  213. dataType:"json",
  214. data:dataParam,
  215. beforeSend:function(){
  216. cancelTaskDialog.hidden();
  217. showWaittingDialog("正在提交中,请稍后……");
  218. },
  219. success:function(data){
  220. var error = data.error;
  221. if(error == undefined){
  222. $.ligerDialog.open({content:"操作成功,任务已经被撤销", "title":"撤销成功!", "type":"success",allowClose:false,
  223. buttons: [ { text: '确定', onclick: function (item, dialog) {
  224. refreshWindow('MyTaskAction.do?task=toList');
  225. closeWindow();
  226. } }]
  227. });
  228. }else{
  229. openCancelTaskDialog();
  230. showAjaxError(null, data.error);
  231. }
  232. },
  233. error:function(err){
  234. showAjaxError(err);
  235. },
  236. complete:function(){
  237. closeWaittingDialog();
  238. }
  239. });
  240. }else{
  241. $("#cancelComment").focus();
  242. }
  243. }
  244. /** 以上是撤销任务相关代码 **/
  245. /** 以下是驳回任务的相关代码 **/
  246. var rejectTaskDialogContent = '<div id="rejectTaskDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  247. + '<table style="width: 100% ">'
  248. + '<tr><td width="80" style="font-weight: bold;">填写备注:</td><td>'
  249. + '<textarea rows="10" cols="50" name="rejectComment" id="rejectComment"></textarea>'
  250. + '<div id="rejectCommentMsg"></div></td></tr>'
  251. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  252. + '<td class="l-table-edit-td" colspan="4" nowrap="nowrap" id="rejectTaskMsg">'
  253. + '</td></tr>'
  254. + '<tr><td colspan="2" style="text-align: center"><br/>'
  255. + '<input type="button" value="提交" class="l-button" onclick="rejectTask()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  256. + '<input type="button" value="取消" class="l-button" onclick="closeRejectTaskDialog()"/>'
  257. + '</td></tr></table></div>';
  258. var rejectTaskDialog;
  259. function openRejectTaskDialog(){
  260. if(rejectTaskDialog == undefined){
  261. rejectTaskDialog = $.ligerDialog.open({
  262. content: rejectTaskDialogContent,
  263. showMin:true,
  264. width:470,
  265. modal: true,
  266. title:"驳回任务",
  267. allowClose:true,
  268. isHidden:false,
  269. onClose:function(dialog,options){
  270. rejectTaskDialog = undefined;
  271. return true;
  272. }
  273. });
  274. tmsMsgRemindUtil.createPanel({id:"rejectTaskMsg", panelId:"rejectTaskMsgPanel"});
  275. }else{
  276. rejectTaskDialog.show();
  277. }
  278. }
  279. function rejectTask(){
  280. var rs = $.validate({
  281. name : "rejectComment",
  282. model : [ {
  283. type : "len",
  284. min : 0,
  285. max : 250,
  286. msg : "备注长度须少于250个字符,一个汉字占2个字符!",
  287. msgBox: "rejectCommentMsg"
  288. }]
  289. });
  290. if(rs && confirm("您确定要驳回该项任务吗?")){
  291. var rejectComment = encodeURI($("#rejectComment").val());
  292. var taskId = $("#taskId").val();
  293. var msgType = tmsMsgRemindUtil.getSelectResult("rejectTaskMsgPanel");
  294. var dataParam = {"rejectComment":rejectComment, "taskId":taskId, "msgType" : msgType};
  295. $.ajax({
  296. type:"POST",
  297. url:"TaskDetailAction.do?task=rejectTask&time=" + new Date().getTime(),
  298. timeout:30000,
  299. cache:false,
  300. dataType:"json",
  301. data:dataParam,
  302. beforeSend:function(){
  303. rejectTaskDialog.hidden();
  304. showWaittingDialog("正在提交中,请稍后……");
  305. },
  306. success:function(data){
  307. var error = data.error;
  308. if(error == undefined){
  309. $.ligerDialog.open({content:"操作成功,任务已经被驳回", "title":"操作成功!", "type":"success",allowClose:false,
  310. buttons: [ { text: '确定', onclick: function (item, dialog) { refreshWindow(); } }]
  311. });
  312. }else{
  313. openRejectTaskDialog();
  314. showAjaxError(null, data.error);
  315. }
  316. },
  317. error:function(err){
  318. showAjaxError(err);
  319. },
  320. complete:function(){
  321. closeWaittingDialog();
  322. }
  323. });
  324. }else{
  325. $("#rejectComment").focus();
  326. }
  327. }
  328. function closeRejectTaskDialog(){
  329. if(rejectTaskDialog != undefined){
  330. rejectTaskDialog.close();
  331. }
  332. }
  333. /** 以上是驳回任务相关代码 **/
  334. /** 以下是同意任务相关代码 **/
  335. var finishTaskDialogContent = '<div id="finishTaskDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  336. + '<table style="width: 100% ">'
  337. + '<tr><td width="80" style="font-weight: bold;">填写备注:</td><td>'
  338. + '<textarea rows="10" cols="50" name="finishComment" id="finishComment"></textarea>'
  339. + '<div id="finishCommentMsg"></div></td></tr>'
  340. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  341. + '<td class="l-table-edit-td" nowrap="nowrap" id="finishTaskMsg">'
  342. + '</td></tr>'
  343. + '<tr><td colspan="2" style="text-align: center"><br/>'
  344. + '<input type="button" value="提交" class="l-button" onclick="finishTask()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  345. + '<input type="button" value="取消" class="l-button" onclick="closeFinishTaskDialog()"/>'
  346. + '</td></tr></table></div>';
  347. var finishTaskDialog;
  348. function openFinishTaskDialog(){
  349. if(finishTaskDialog == undefined){
  350. finishTaskDialog = $.ligerDialog.open({
  351. content: finishTaskDialogContent,
  352. showMin:true,
  353. width:470,
  354. modal: true,
  355. title:"同意任务完成",
  356. allowClose:true,
  357. isHidden:false,
  358. onClose:function(dialog,options){
  359. finishTaskDialog = undefined;
  360. return true;
  361. }
  362. });
  363. tmsMsgRemindUtil.createPanel({id:"finishTaskMsg", panelId:"finishTaskMsgPanel"});
  364. }else{
  365. finishTaskDialog.show();
  366. }
  367. }
  368. function finishTask(){
  369. var rs = $.validate({
  370. name : "finishComment",
  371. model : [ {
  372. type : "len",
  373. min : 0,
  374. max : 250,
  375. msg : "备注长度须少于250个字符,一个汉字占2个字符!",
  376. msgBox: "finishCommentMsg"
  377. }]
  378. });
  379. if(rs && confirm("您确定要同意该项任务完成吗?")){
  380. var finishComment = encodeURI($("#finishComment").val());
  381. var taskId = $("#taskId").val();
  382. var msgType = tmsMsgRemindUtil.getSelectResult("finishTaskMsgPanel");
  383. var dataParam = {"finishComment":finishComment, "taskId":taskId, "msgType" : msgType};
  384. $.ajax({
  385. type:"POST",
  386. url:"TaskDetailAction.do?task=finishTask&time=" + new Date().getTime(),
  387. timeout:30000,
  388. cache:false,
  389. dataType:"json",
  390. data:dataParam,
  391. beforeSend:function(){
  392. showWaittingDialog("正在提交中,请稍后……");
  393. finishTaskDialog.hidden();
  394. },
  395. success:function(data){
  396. var error = data.error;
  397. if(error == undefined){
  398. $.ligerDialog.open({content:"操作成功,该项任务已完成", "title":"操作成功!", "type":"success",allowClose:false,
  399. buttons: [ { text: '确定', onclick: function (item, dialog) {
  400. refreshWindow('MyTaskAction.do?task=toList');
  401. closeWindow();
  402. } }]
  403. });
  404. }else{
  405. openFinishTaskDialog();
  406. showAjaxError(null, data.error);
  407. }
  408. },
  409. error:function(err){
  410. showAjaxError(err);
  411. },
  412. complete:function(){
  413. closeWaittingDialog();
  414. }
  415. });
  416. }else{}
  417. }
  418. function closeFinishTaskDialog(){
  419. if(finishTaskDialog != undefined){
  420. finishTaskDialog.close();
  421. }
  422. }
  423. /** 以上是同意任务相关代码 **/
  424. /** 以下是接收任务相关代码 **/
  425. function receiveTask(){
  426. if(confirm("您确定接收并开始该项任务吗?")){
  427. var taskId = $("#taskId").val();
  428. $.ajax({
  429. type:"POST",
  430. url:"TaskDetailAction.do?task=receiveTask&time=" + new Date().getTime(),
  431. timeout:30000,
  432. cache:false,
  433. dataType:"json",
  434. data:{"taskId" : taskId},
  435. beforeSend:function(){
  436. showWaittingDialog("正在提交中,请稍后……");
  437. },
  438. success:function(data){
  439. var error = data.error;
  440. if(error == undefined){
  441. $.ligerDialog.open({content:"操作成功,该项任务已接收", "title":"操作成功!", "type":"success",allowClose:false,
  442. buttons: [ { text: '确定', onclick: function (item, dialog) { refreshWindow(); } }]
  443. });
  444. }else{
  445. showAjaxError(null, data.error);
  446. }
  447. },
  448. error:function(err){
  449. showAjaxError(err);
  450. },
  451. complete:function(){
  452. closeWaittingDialog();
  453. }
  454. });
  455. }
  456. }
  457. /** 以上是接收任务相关代码 **/
  458. /**
  459. * 推迟任务
  460. * @param taskId
  461. */
  462. function postponeTask(taskId){
  463. }
  464. /**
  465. * 中断任务
  466. * @param taskId
  467. */
  468. function stopTask(taskId){
  469. }
  470. /**
  471. * 开始任务
  472. * @param taskId
  473. */
  474. function startTask(taskId){
  475. }
  476. /**
  477. * 催办任务
  478. * @param taskId
  479. */
  480. function urgeTask(taskId){
  481. }
  482. /**
  483. * 创建子任务
  484. */
  485. function createSubTask(){
  486. var url = "CreateTaskAction.do?task=createSubTask&parentTaskId=" + $("#taskId").val();
  487. addTab(url, "新建子任务", url);
  488. }
  489. /**
  490. * 转换为子任务
  491. */
  492. function convertSubTask(){
  493. }
  494. /**
  495. * 报工
  496. * @param taskId
  497. */
  498. function openDiaryDialog(taskId){
  499. }
  500. /**
  501. * 附件上传
  502. * @param taskId
  503. */
  504. function openTaskDocUploadDialog(taskId){
  505. }
  506. /**
  507. * 以下是任务备注相关代码
  508. */
  509. var commentTable;
  510. function getTaskCommentList(sourceObj, taskId, loginUserId){
  511. // var isDisplay = changePanelDisplay(sourceObj, "commentPanel");
  512. // if(isDisplay == 1){
  513. commentTable = $("#commentPanel").ligerGrid({
  514. columns: [
  515. { display: '', name: 'create_user', align: 'left', width: '10%'},
  516. { display: '', name: 'comment_content', align: 'left', width: '57%'},
  517. { display: '', name: 'create_date', align: 'center', width: '15%'},
  518. { display: '', name: '', align: 'center', width: '8%'
  519. ,render: function (row, index){
  520. if(row.create_user_id == loginUserId){
  521. var html = '<a href="javascript:;" onclick="deleteComment(' + row.universalid + ','+ index +')">删除</a>';
  522. return html;
  523. }else{
  524. return "";
  525. }
  526. }
  527. }
  528. ],
  529. detail:{height:'auto',onShowDetail:showTaskCommentDetail},
  530. pageSize:5,
  531. url: 'TaskDetailAction.do?task=getTaskCommentList&time=' + new Date().getTime() + '&taskId=' + taskId,
  532. pageParmName: 'curPage',
  533. pagesizeParmName: 'pageSize',
  534. width: '99%',
  535. height: 250,
  536. enabledSort:false,
  537. showTitle:false,
  538. allowHideColumn: false,
  539. alternatingRow:false,
  540. allowUnSelectRow:true,
  541. onSelectRow:function(row,index,rowDomElement){
  542. commentTable.extendDetail(index);
  543. },
  544. onUnSelectRow:function(row,index,rowDomElement){
  545. commentTable.collapseDetail(index);
  546. },
  547. onAfterShowData:function(data){
  548. if(data.Rows.length == 0){
  549. $("#commentPanel").find("div[class*='l-grid-body-inner']").html("<div style='padding-top:35px;padding-bottom:35px;text-align:center'>还没有任务备注……</div>");
  550. }
  551. var top = getObjectTop(document.getElementById("topbody"));
  552. window.scrollTo(1, top);
  553. }
  554. });
  555. // }else{
  556. // }
  557. }
  558. function showTaskCommentDetail(row, panel){
  559. var str = "<div style='padding-left:40px;'>" + row.comment_content + "</div>";
  560. $(panel).html(str);
  561. }
  562. function deleteComment(taskCommentId,index){
  563. if(confirm("您将删除这条任务备注,相应的附件也将同时删除,是否继续?")){
  564. $.ajax({
  565. type:"POST",
  566. url:"TaskDetailAction.do?task=deleteTaskComment&taskCommentId=" + taskCommentId +"&time=" + new Date().getTime(),
  567. timeout:30000,
  568. cache:false,
  569. dataType:"json",
  570. beforeSend:function(){
  571. showWaittingDialog("正在提交,请稍后……");
  572. },
  573. success:function(data){
  574. var error = data.error;
  575. if(error == undefined){
  576. commentTable.remove(commentTable.getRow(index));
  577. refreshTaskDoc();
  578. }else{
  579. showAjaxError(null, data.error);
  580. }
  581. },
  582. error:function(err){
  583. showAjaxError(err);
  584. },
  585. complete:function(){
  586. closeWaittingDialog();
  587. }
  588. });
  589. }
  590. }
  591. var commentDialog;
  592. function openAddCommentDialog(){
  593. if(commentDialog == undefined){
  594. commentDialog = $.ligerDialog.open({
  595. target: $("#addCommentDialog"),
  596. width:470,
  597. showMin: true,
  598. modal: true,
  599. title:"添加任务备注,请填写备注内容",
  600. allowClose:true
  601. });
  602. }else{
  603. commentDialog.show();
  604. $.ligerui.win.addTask(commentDialog);
  605. }
  606. }
  607. function createTaskComment(){
  608. var rs = $.validate({
  609. name : "commentContent",
  610. model : [ {
  611. type : "require",
  612. msg : "请填写备注内容!",
  613. msgBox:"commentContentMsg"
  614. }, {
  615. type : "len",
  616. min : 1,
  617. max : 250,
  618. msg : "备注长度须少于250个字符,一个汉字占2个字符!"
  619. }]
  620. });
  621. if(rs){
  622. var commentContent = encodeURI($("#commentContent").val());
  623. var taskCommentDoc = "";
  624. var taskCommentDocList = $("input[name='taskCommentDoc']");
  625. var size = taskCommentDocList.size();
  626. taskCommentDocList.each(function(index, obj){
  627. if(index == size -1){
  628. taskCommentDoc += obj.value;
  629. }else{
  630. taskCommentDoc += (obj.value + ",");
  631. }
  632. });
  633. var taskId = $("#taskId").val();
  634. var dataParam = {"commentContent":commentContent, "taskCommentDoc":taskCommentDoc, "taskId":taskId};
  635. $.ajax({
  636. type:"POST",
  637. url:"TaskDetailAction.do?task=createTaskComment&time=" + new Date().getTime(),
  638. timeout:30000,
  639. cache:false,
  640. dataType:"json",
  641. data:dataParam,
  642. beforeSend:function(){
  643. showWaittingDialog("正在提交中,请稍后……");
  644. closeCommentDialog();
  645. },
  646. success:function(data){
  647. var error = data.error;
  648. if(error == undefined){
  649. commentDialog.hidden();
  650. if(commentTable){
  651. commentTable.changePage(1);
  652. commentTable.loadData();
  653. }
  654. resetCommentDialog();
  655. refreshTaskDoc();
  656. $.ligerDialog.success("保存成功!");
  657. }else{
  658. showAjaxError(null, data.error);
  659. }
  660. },
  661. error:function(err){
  662. showAjaxError(err);
  663. },
  664. complete:function(){
  665. closeWaittingDialog();
  666. }
  667. });
  668. }else{
  669. $("#commentContent").focus();
  670. }
  671. }
  672. function closeCommentDialog(){
  673. commentDialog.hidden();
  674. }
  675. function resetCommentDialog(){
  676. // 清空备注信息
  677. $("#commentContent").val("");
  678. // 差清空文档上传信息
  679. editViewFileHtml("", "taskCommentDoc");
  680. }
  681. /**
  682. * 以上是任务备注相关代码
  683. */
  684. /**
  685. * 以下是任务日志相关代码
  686. */
  687. var taskDiaryTable;
  688. function getTaskDiaryList(sourceObj,taskId){
  689. // var isDisplay = changePanelDisplay(sourceObj, "processPanel");
  690. // if(isDisplay == 1){
  691. taskDiaryTable = $("#processPanel").ligerGrid({
  692. columns: [
  693. { display: '', name: 'create_date', align: 'left', width: '15%'},
  694. { display: '', name: 'diary_content', align: 'left', width: '75%',render:buildDiaryResume}
  695. ],
  696. detail:{height:'auto',onShowDetail:showTaskDiaryContent},
  697. pageSize:5,
  698. url: 'TaskDetailAction.do?task=getTaskDiaryList&time=' + new Date().getTime() + '&taskId=' + taskId,
  699. pageParmName: 'curPage',
  700. pagesizeParmName: 'pageSize',
  701. width: '99%',
  702. height: 250,
  703. enabledSort:false,
  704. showTitle:false,
  705. allowHideColumn: false,
  706. alternatingRow:false,
  707. allowUnSelectRow:true,
  708. onSelectRow:function(row,index,rowDomElement){
  709. taskDiaryTable.extendDetail(index);
  710. },
  711. onUnSelectRow:function(row,index,rowDomElement){
  712. taskDiaryTable.collapseDetail(index);
  713. }
  714. });
  715. // }else{
  716. // }
  717. }
  718. function showTaskDiaryContent(row, panel){
  719. //var content = buildDiaryContent(row);
  720. var content = row.diary_content;
  721. if(!content || content == "null" || content == "undefined"){
  722. content = "";
  723. }
  724. $(panel).html("<div style='padding-left:40px;'>"+content+"</div>");
  725. }
  726. function buildDiaryResume(row){
  727. var diaryType = row.diary_type;
  728. var content = "<div style='padding-left:40px;'>#content#</div>";
  729. switch(diaryType){
  730. case 1:
  731. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>创建任务,负责人:' + row.develop_user + ',指派人:' + row.prov_user;
  732. content = content.replace("#content#", str);
  733. break;
  734. case 2:
  735. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>接收任务,任务状态变更为[<font style="color:blue">进行中</font>]';
  736. content = content.replace("#content#", str);
  737. break;
  738. case 5:
  739. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>将任务转派给<a href="#" onclick="seeUser('+row.develop_user_id+')">'+row.develop_user +'</a>';
  740. content = content.replace("#content#", str);
  741. break;
  742. case 7:
  743. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>将任务驳回给<a href="#" onclick="seeUser('+row.develop_user_id+')">'+row.develop_user +'</a>,点击 <span style="color:blue;cursor: pointer;">查看意见</span>';
  744. content = content.replace("#content#", str);
  745. break;
  746. case 8:
  747. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>同意该项任务完成';
  748. content = content.replace("#content#", str);
  749. break;
  750. case 10:
  751. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>' + row.diary_resume;
  752. content = content.replace("#content#", str);
  753. break;
  754. case 11:
  755. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>' + row.diary_resume;
  756. content = content.replace("#content#", str);
  757. break;
  758. case 12:
  759. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>' + row.diary_resume;
  760. content = content.replace("#content#", str);
  761. break;
  762. case 21:
  763. var str = '<a href="javascript:;" onclick="seeUser('+row.create_user_id+')">'+ row.create_user + '</a>'+ row.diary_resume + ',负责人:<a href="#" onclick="seeUser('+row.develop_user_id+')">'+row.develop_user +'</a>';
  764. content = content.replace("#content#", str);
  765. break;
  766. default:content = content.replace("#content#", "");
  767. }
  768. return content;
  769. }
  770. /**
  771. * 以上是任务日志相关代码
  772. */
  773. /**
  774. * 以下是任务提醒日志相关代码
  775. */
  776. var taskRemindersDiaryListPanelDialog;
  777. function openTaskRemindersDiaryListDialog(){
  778. if(taskRemindersDiaryListPanelDialog == undefined){
  779. taskRemindersDiaryListPanelDialog = $.ligerDialog.open({
  780. target: $("#taskRemindersDiaryListPanel"),
  781. width:670,
  782. height:350,
  783. showMin: true,
  784. modal: true,
  785. title:"任务提醒详细记录查询",
  786. allowClose:true
  787. });
  788. }else{
  789. taskRemindersDiaryListPanelDialog.show();
  790. $.ligerui.win.addTask(taskRemindersDiaryListPanelDialog);
  791. }
  792. getTaskRemindersDiaryList();
  793. }
  794. var taskRemindersDiaryListTable;
  795. function getTaskRemindersDiaryList(){
  796. var taskId = $("#taskId").val();
  797. if(taskRemindersDiaryListTable == undefined){
  798. taskRemindersDiaryListTable = $("#taskRemindersDiaryListTable").ligerGrid({
  799. columns: [
  800. { display: '发送时间', name: 'create_date', align: 'center', width: 140, minWidth :140},
  801. { display: '发送人', name: 'create_user', align: 'center', width: 70, minWidth :70},
  802. { display: '接收人', name: 'receive_user', align: 'center', width: 70,minWidth :70},
  803. { display: '提醒方式', name: 'all_reminders_text', align: 'center', width: 130,minWidth :130},
  804. { display: '备注', name: 'remark', align: 'center', width: 160,minWidth :160}
  805. ],
  806. usePager:false,
  807. rownumbers:true,
  808. url:"TaskDetailAction.do?task=getTaskRemindersDiaryList&taskId=" + taskId,
  809. width: '99%',
  810. height: '300',
  811. frozenRownumbers: false,
  812. enabledSort:false,
  813. onAfterShowData:function(data){
  814. if(data.Rows.length == 0){
  815. $("#taskRemindersDiaryListTable").find("div[class*='l-grid-body-inner']").html("<div style='padding-top:35px;padding-bottom:35px;text-align:center'>没有任务提醒</div>");
  816. }
  817. }
  818. });
  819. }else{
  820. taskRemindersDiaryListTable.loadData();
  821. }
  822. }
  823. /**
  824. * 以上是任务提醒日志相关代码
  825. */
  826. var taskUrgencyRemindDialogContent = '<div id="taskUrgencyRemindDialog" class="forum-container2" style="width:430px; margin:3px auto;">'
  827. + '<table style="width: 100% ">'
  828. + '<tr><td width="80" style="font-weight: bold;">提醒内容:<br/><font color="red">(仅供查看)</font></td><td>'
  829. + '<textarea rows="8" cols="50" name="taskUrgencyRemindContent" id="taskUrgencyRemindContent" readonly="readonly"></textarea>'
  830. + '<div id="taskUrgencyRemindContentMsg"></div></td></tr>'
  831. + '<tr><td class="l-table-edit-text" style="font-weight: bold">提醒方式:</td>'
  832. + '<td class="l-table-edit-td" nowrap="nowrap" id="taskUrgencyRemindMsg">'
  833. + '</td></tr>'
  834. + '<tr><td></td><td id="taskUrgencyRemindMsgMsg"></td></tr>'
  835. + '<tr><td colspan="2" style="text-align: center"><br/>'
  836. + '<input type="button" value="提交" class="l-button" onclick="sendTaskUrgencyRemind()"/>&nbsp;&nbsp;&nbsp;&nbsp;'
  837. + '<input type="button" value="取消" class="l-button" onclick="closeTaskUrgencyRemindDialog()"/>'
  838. + '</td></tr></table></div>';
  839. var taskUrgencyRemindDialog;
  840. function openTaskUrgencyRemindDialog(){
  841. if(taskUrgencyRemindDialog == undefined){
  842. taskUrgencyRemindDialog = $.ligerDialog.open({
  843. content: taskUrgencyRemindDialogContent,
  844. showMin:true,
  845. width:470,
  846. modal: true,
  847. title:"发送任务催办提醒",
  848. allowClose:true,
  849. isHidden:false,
  850. onClose:function(dialog,options){
  851. taskUrgencyRemindDialog = undefined;
  852. return true;
  853. }
  854. });
  855. $("#taskUrgencyRemindContent").html("(催办任务提醒)您有一项任务:"+$("#curTaskName").val()+",请尽快办理完成此项任务。");
  856. tmsMsgRemindUtil.createPanel({id:"taskUrgencyRemindMsg", panelId:"taskUrgencyRemindMsgPanel"});
  857. }else{
  858. taskUrgencyRemindDialog.show();
  859. $.ligerui.win.addTask(taskUrgencyRemindDialog);
  860. }
  861. }
  862. function closeTaskUrgencyRemindDialog(){
  863. taskUrgencyRemindDialog.close();
  864. }
  865. function sendTaskUrgencyRemind(){
  866. var taskId = $("#taskId").val();
  867. var msgType = tmsMsgRemindUtil.getSelectResult("taskUrgencyRemindMsgPanel");
  868. if(msgType==""){
  869. $("#taskUrgencyRemindMsgMsg").html("<br/><font color='red' id='taskUrgencyRemindMsgMsg'>请选择提醒方式!</font>");
  870. return;
  871. }else{
  872. $("#taskUrgencyRemindMsgMsg").empty();
  873. }
  874. var dataParam = {"taskId":taskId, "msgType" : msgType};
  875. $.ajax({
  876. type:"POST",
  877. url:"TaskDetailAction.do?task=sendTaskUrgencyRemind&time=" + new Date().getTime(),
  878. timeout:30000,
  879. cache:false,
  880. dataType:"json",
  881. data:dataParam,
  882. beforeSend:function(){
  883. showWaittingDialog("正在提交中,请稍后……");
  884. taskUrgencyRemindDialog.hidden();
  885. },
  886. success:function(data){
  887. var error = data.error;
  888. if(error == undefined){
  889. $.ligerDialog.open({content:"发送成功!", "title":"发送成功!", "type":"success",allowClose:false,
  890. buttons: [ { text: '确定', onclick: function (item, dialog) { refreshWindow(); } }]
  891. });
  892. }else{
  893. openTaskUrgencyRemindDialog();
  894. showAjaxError(null, data.error);
  895. }
  896. },
  897. error:showAjaxError,
  898. complete:closeWaittingDialog
  899. });
  900. }
  901. /**
  902. * 改变显示状态
  903. */
  904. function changePanelDisplay(sourceObj, id){
  905. var panelObj = $("#" + id);
  906. var displayState = panelObj.css("display");
  907. if(displayState == "none"){
  908. if(sourceObj != null){
  909. $(sourceObj).text("收缩");
  910. }
  911. panelObj.css("display", "block");
  912. return 1;
  913. }else{
  914. if(sourceObj != null){
  915. $(sourceObj).text("展开");
  916. }
  917. panelObj.css("display", "none");
  918. return 0;
  919. }
  920. }
  921. /**
  922. * 刷新任务附件区
  923. */
  924. function refreshTaskDoc(){
  925. $.ajax({
  926. type:"POST",
  927. url:"TaskDetailAction.do?task=getTaskDocList&time=" + new Date().getTime(),
  928. timeout:100000,
  929. cache:false,
  930. dataType:"json",
  931. data:{"taskId" : $("#taskId").val()},
  932. success:function(data){
  933. if(data.success){
  934. var taskDocList = data.success;
  935. var length = taskDocList.length;
  936. var fileListStr = "";
  937. for(var i = 0 ; i < length; i++){
  938. fileListStr += '<div class="task-file"><a href="downloadFile.do?documentId='+taskDocList[i].file_id+'" target="_blank" title="由 '+taskDocList[i].create_user+' 创建于 '+taskDocList[i].create_date+'">'+taskDocList[i].srcFile+'</a></div>';
  939. }
  940. $("#taskFile").empty().html(fileListStr);
  941. }
  942. }
  943. });
  944. }