edit_diary.jsp 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. <%@ page language="java" contentType="text/html;charset=GBK"
  2. pageEncoding="GBK"%>
  3. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <link rel="stylesheet" href="/shares/fullcalendar/jquery/themes/base/jquery.ui.all.css">
  9. <link rel="stylesheet" href="/shares/fullcalendar/fullcalendar/cupertino/theme.css">
  10. <link href="${ pageContext.request.contextPath}/main.css" rel="stylesheet" type="text/css" />
  11. <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  12. <link href="${pageContext.request.contextPath }/liger/lib/ligerUI/skins/ligerui-icons.css" rel="stylesheet" type="text/css" />
  13. <link href='/shares/fullcalendar/fullcalendar/fullcalendar.css' rel='stylesheet' />
  14. <link href='/shares/fullcalendar/fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
  15. <script src='/shares/fullcalendar/jquery/jquery-1.8.0.min.js'></script>
  16. <script src='/shares/fullcalendar/fullcalendar/fullcalendar.min.js'></script>
  17. <script src='/shares/fullcalendar/jquery/jquery-ui-1.10.2.custom.min.js'></script>
  18. <script src='${pageContext.request.contextPath }/liger/lib/ligerUI/js/core/base.js'></script>
  19. <script src='${pageContext.request.contextPath }/liger/lib/ligerUI/js/plugins/ligerDialog.js'></script>
  20. <script type="text/javascript" src="/shares/js/common.js"></script>
  21. <script src="/shares/jquery.progressbar/js/jquery.progressbar.js" type="text/javascript"></script>
  22. <script type="text/javascript" src="/shares/js/yw/ytpm/task/pm_common.js"></script>
  23. <style type="text/css">
  24. .workDiaryTable{margin: 5px auto}
  25. .workDiaryTable tr{height: 25px; padding-bottom: 2px; margin: 10px auto}
  26. .workDiaryTable .left-text {width: 80px; font-weight: bold;}
  27. .workDiaryTable .short-input {width: 40px;height:18px; line-height: 18px;border: 1px solid #cccccc}
  28. .workdiary-file-style input[type='file'] {width:200px ;height:22px;}
  29. .workdiary-file-style{width: 250px; margin-bottom: 8px;}
  30. </style>
  31. <script type="text/javascript">
  32. var infoDialog = null;
  33. $(function (){
  34. $("#procFinishPer").progressBar(this.innerHTML,{width:100,increment:5,speed:1});
  35. tmsMsgRemindUtil = new TmsMsgRemindUtil;
  36. tmsMsgRemindUtil.createPanel({id:"addWorkDiaryMsg", panelId:"addWorkDiaryMsgPanel"});
  37. tmsMsgRemindUtil.createPanel({id:"editWorkDiaryMsg", panelId:"editWorkDiaryMsgPanel"});
  38. loadCalendar();
  39. });
  40. var workdiaryDialog;
  41. var editworkdiaryDialog;
  42. function loadCalendar(){
  43. $(document).ready(function() {
  44. var calendar = $('#calendar').fullCalendar({
  45. header: {
  46. left: '',
  47. center: 'title prev today next ',
  48. right: ''
  49. },
  50. theme: true,
  51. aspectRatio:2,
  52. columnFormat:{//每种视图每列显示的时间格式
  53. month: 'ddd'
  54. },
  55. titleFormat:{//视图标题时间显示的格式
  56. month: 'yyyy-MM '
  57. },
  58. allDaySlot:true,
  59. allDayText:'今天的任务',
  60. monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
  61. monthNamesShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
  62. dayNames: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
  63. dayNamesShort: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
  64. today: ["今天"],
  65. firstDay: 1,
  66. buttonText: {
  67. today: '本月',
  68. month: '月',
  69. week: '周',
  70. day: '日',
  71. prev: '上一月',
  72. next: '下一月'
  73. },
  74. eventSources: [{
  75. url:'mtDiaryMgr.do?task=wd_fc&task_id=${map.universalid}'
  76. }],
  77. eventMouseover: function (calEvent, jsEvent, view) {
  78. // $(this).attr('title', "描述:"+calEvent.remark );
  79. },
  80. eventClick: function (event, jsEvent, view ) {
  81. if("${map.finish_percent}"==100 && "${map.task_state}"==6){
  82. $.ligerDialog.warn("日志审核中不能再写日志");
  83. return;
  84. }
  85. getTodayWorkTime($.fullCalendar.formatDate(event.start, "yyyy-MM-dd"));
  86. var url="mtDiaryMgr.do?task=date_wd_fc&task_id=${map.universalid}&start="+$.fullCalendar.formatDate(event.start, "yyyy-MM-dd")+"&times="+Math.random();
  87. $.ajax({
  88. type: "POST",
  89. url:url,
  90. dataType:"json",
  91. success:function(data){
  92. $("#wd_id").val(data[0].universalid);
  93. $("#editDiaryDate").html($.fullCalendar.formatDate(event.start, "yyyy-MM-dd"));
  94. $("#editTaskName").html("${map.task_name}");
  95. $("#editManHour").val(data[0].man_hour);
  96. $("#editTaskFinishPer").val(data[0].finish_percent);
  97. $("#editcomments").val(data[0].comments);
  98. $("#wd_finish_percent").val(data[0].finish_percent);
  99. $("#wd_man_hour").val(data[0].man_hour);
  100. $("#edittype").find("option[value="+data[0].type+"]").attr("selected",true);
  101. $("#editDiaryContent").val(data[0].remark);
  102. editworkdiaryDialog=$.ligerDialog.open({width:380, target: $("#editWorkDiary"),title:"修改报工" });
  103. }
  104. });
  105. },
  106. selectable: true,
  107. selectHelper: true,
  108. select: function(start, end, allDay, jsEvent, view) {
  109. if("${map.finish_percent}"==100 && "${map.task_state}"==6){
  110. $.ligerDialog.warn("日志审核中不能再写日志!");
  111. return;
  112. }
  113. var wd_start=$.fullCalendar.formatDate(start, "yyyy-MM-dd");
  114. var wd_toady=$.fullCalendar.formatDate(new Date(), "yyyy-MM-dd");
  115. var wd_starts=wd_start.split("-");
  116. var wd_toadys=wd_toady.split("-");
  117. var flag=true;
  118. if(wd_starts[0]>wd_toadys[0]){
  119. flag=false;
  120. }else if(wd_starts[1]>wd_toadys[1]){
  121. flag=false;
  122. }else if(wd_starts[1]==wd_toadys[1] && wd_starts[2]>wd_toadys[2]){
  123. flag=false;
  124. }
  125. if(!flag){
  126. alert("只能填写今天的日志!");
  127. return ;
  128. }
  129. getTodayWorkTime($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  130. var url="mtDiaryMgr.do?task=date_wd_fc&task_id=${map.universalid}&times="+Math.random()+"&start="+wd_start;
  131. $.ajax({
  132. type: "POST",
  133. url:url,
  134. dataType:"json",
  135. success:function(data){
  136. if(data.length>0){
  137. $("#wd_id").val(data[0].universalid);
  138. $("#editDiaryDate").html($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  139. $("#editTaskName").html("${map.task_name}");
  140. $("#editManHour").val(data[0].man_hour);
  141. $("#editTaskFinishPer").val(data[0].finish_percent);
  142. $("#editcomments").val(data[0].comments);
  143. $("#wd_finish_percent").val(data[0].finish_percent);
  144. $("#wd_man_hour").val(data[0].man_hour);
  145. $("#edittype").find("option[value="+data[0].type+"]").attr("selected",true);
  146. $("#editDiaryContent").val(data[0].remark);
  147. editworkdiaryDialog=$.ligerDialog.open({width:380, target: $("#editWorkDiary"),title:"修改报工" });
  148. }else{
  149. $("#diaryDate").html($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  150. $("#taskName").html("${map.task_name}");
  151. workdiaryDialog=$.ligerDialog.open({width:380, target: $("#addWorkDiary"),title:"添加报工" });
  152. }
  153. }
  154. });
  155. }
  156. });
  157. });
  158. }
  159. function getTodayWorkTime (date_time){
  160. $.ajax({
  161. type:"POST",
  162. url:"mtDiaryMgr.do?task=getTodayWorkTime&time=" + new Date().getTime(),
  163. data : {"date_time":date_time},
  164. cache:false,
  165. async:false,
  166. dataType:"text",
  167. success:function(data){
  168. var i = data;
  169. $("#worktime_msg").html("<font color='blue'>&nbsp;[本日已报工" + i + "个小时]</font>");
  170. $("#worktime_msg_").html("<font color='blue'>&nbsp;[本日已报工" + i + "个小时]</font>");
  171. var t = 7.5 - i > 0 ? 7.5 - i : 0;
  172. $("#manHour").val(t);
  173. $("#today_worktime").val(i);
  174. },
  175. error:showAjaxError,
  176. complete: closeWaittingDialog
  177. });
  178. }
  179. function deleteWorkDiary(){
  180. var wd_id=$("#wd_id").val();
  181. var diary_date=$("#editDiaryDate").html();
  182. var msgType = tmsMsgRemindUtil.getSelectResult("editWorkDiaryMsgPanel");
  183. $.ajax({
  184. type:"POST",
  185. url:"mtDiaryMgr.do?task=delWorkDiary&time=" + new Date().getTime(),
  186. data : {"task_id":"${map.universalid}","wd_id":wd_id,"diary_date":diary_date,"msgType":msgType},
  187. timeout:30000,
  188. cache:false,
  189. dataType:"json",
  190. beforeSend:function(){
  191. showWaittingDialog("正在提交中,请稍后……");
  192. editworkdiaryDialog.hidden();
  193. },
  194. success:function(data){
  195. var i = data[0].i;
  196. if(i>0){
  197. $.ligerDialog.open({content:"删除成功!", "title":"删除操作!", "type":"success",allowClose:false,
  198. buttons: [ { text: '确定', onclick: function (item, dialog) { location.href="mtDiaryMgr.do?task=toeditdiary&task_id=${map.universalid}";dialog.hidden(); } } ]
  199. });
  200. }else{
  201. showAjaxError(null, data.error);
  202. }
  203. },
  204. error:showAjaxError,
  205. complete: closeWaittingDialog
  206. });
  207. }
  208. function updateWorkDiary(){
  209. var rs = $.validate({
  210. name : "editManHour",
  211. model : [ {
  212. type : "require",
  213. msg : "请填写工时!",
  214. msgBox: "editManHourMsg"
  215. },{
  216. type : "isNumber",
  217. msg : "请填写正确的数字!",
  218. msgBox: "editManHourMsg"
  219. },
  220. {
  221. type : "size",
  222. min:"0.1",
  223. msg : "请填写工时!工时不能小于0.1",
  224. msgBox: "editManHourMsg"
  225. },
  226. {
  227. type : "size",
  228. max: 24,
  229. msg : "本日最大可以提交24小时",
  230. msgBox: "editManHourMsg"
  231. }]
  232. });
  233. rs = $.validate({
  234. name : "editTaskFinishPer",
  235. model : [ {
  236. type : "require",
  237. msg : "请填写工作量!",
  238. msgBox: "editTaskFinishPerMsg"
  239. },{
  240. type : "isNumber",
  241. msg : "请填写正确的数字!",
  242. msgBox: "editTaskFinishPerMsg"
  243. },{
  244. type : "size",
  245. min:0,
  246. max:100,
  247. msg : "工作量不超过100%",
  248. msgBox: "editTaskFinishPerMsg"
  249. }]
  250. }) && rs;
  251. rs =$.validate({
  252. name : "editDiaryContent",
  253. model : [ {
  254. type : "require",
  255. msg : "请填写详细描述!",
  256. msgBox: "editDiaryContentMsg"
  257. },{
  258. type : "len",
  259. min : 0,
  260. max : 200,
  261. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  262. msgBox: "editDiaryContentMsg"
  263. }]
  264. }) && rs;
  265. rs =$.validate({
  266. name : "editcomments",
  267. model : [ {
  268. type : "len",
  269. min : 0,
  270. max : 200,
  271. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  272. msgBox: "editcommentsMsg"
  273. }]
  274. }) && rs;
  275. if(rs){
  276. var diary_date=$("#editDiaryDate").html();
  277. var manHour=$("#editManHour").val();
  278. var finish_percent=$("#editTaskFinishPer").val();
  279. var type=$("#edittype").val();
  280. var remark=$("#editDiaryContent").val();
  281. var comments=$("#editcomments").val();
  282. var msgType = tmsMsgRemindUtil.getSelectResult("editWorkDiaryMsgPanel");
  283. var wd_finish_percent=parseFloat($("#wd_finish_percent").val());
  284. var current_finish_percent=parseFloat("${map.finish_percent}");
  285. var flag_percent=current_finish_percent+parseFloat(finish_percent)-wd_finish_percent;
  286. var num=100-current_finish_percent+wd_finish_percent;
  287. if(flag_percent>100){
  288. $("#editTaskFinishPerMsg").html("<font color='red'>工作量最多写"+num+"</font>");
  289. return ;
  290. }
  291. var plan_hour=parseFloat("${map.plan_hour }");
  292. var prac_hour=parseFloat("${map.prac_hour}");
  293. var wd_man_hour=parseFloat($("#wd_man_hour").val());
  294. var add_hour=parseFloat(manHour)+prac_hour-wd_man_hour;
  295. var do_hour=add_hour-plan_hour;
  296. var t = 7.5 - ($("#today_worktime").val() - wd_man_hour);
  297. if (t < $("#editManHour").val()){
  298. if (!confirm("您本日的报工已超过7.5个小时,确定要提交吗?")){
  299. return;
  300. }
  301. }
  302. if(do_hour>0){
  303. if(!confirm("工时已超出计划工时"+do_hour+"个小时,是否继续?")){
  304. return ;
  305. }
  306. }
  307. $.ajax({
  308. type:"POST",
  309. url:"mtDiaryMgr.do?task=editWorkDiary&time=" + new Date().getTime(),
  310. data : {"task_id":"${map.universalid}","manHour":manHour,"diary_date":diary_date,"finish_percent":finish_percent,"type":type,"remark":encodeURI(remark),"msgType":msgType,"comments":encodeURI(comments)},
  311. timeout:30000,
  312. cache:false,
  313. dataType:"json",
  314. beforeSend:function(){
  315. showWaittingDialog("正在提交中,请稍后……");
  316. editworkdiaryDialog.hidden();
  317. },
  318. success:function(data){
  319. var i = data[0].i;
  320. if(i>0){
  321. $.ligerDialog.open({content:"修改成功!", "title":"修改成功!", "type":"success",allowClose:false,
  322. buttons: [ { text: '确定', onclick: function (item, dialog) { location.href="mtDiaryMgr.do?task=toeditdiary&task_id=${map.universalid}";dialog.hidden(); } } ]
  323. });
  324. }else{
  325. showAjaxError(null, data.error);
  326. }
  327. },
  328. error:showAjaxError,
  329. complete: closeWaittingDialog
  330. });
  331. }
  332. }
  333. function addWorkDiary(){
  334. var rs = $.validate({
  335. name : "manHour",
  336. model : [ {
  337. type : "require",
  338. msg : "请填写工时!",
  339. msgBox: "manHourMsg"
  340. },{
  341. type : "isNumber",
  342. msg : "请填写正确的数字!",
  343. msgBox: "manHourMsg"
  344. },
  345. {
  346. type : "size",
  347. min:"0.1",
  348. msg : "请填写工时!工时不能小于0.1",
  349. msgBox: "manHourMsg"
  350. },
  351. {
  352. type : "size",
  353. max: 24,
  354. msg : "本日最大可以提交24小时",
  355. msgBox: "manHourMsg"
  356. }]
  357. });
  358. rs = $.validate({
  359. name : "taskFinishPer",
  360. model : [ {
  361. type : "require",
  362. msg : "请填写进度!",
  363. msgBox: "taskFinishPerMsg"
  364. },{
  365. type : "isNumber",
  366. msg : "请填写正确的数字!",
  367. msgBox: "taskFinishPerMsg"
  368. },{
  369. type : "size",
  370. min:0,
  371. max:100,
  372. msg : "任务进度不超过100%",
  373. msgBox: "taskFinishPerMsg"
  374. }]
  375. }) && rs;
  376. rs =$.validate({
  377. name : "diaryContent",
  378. model : [ {
  379. type : "require",
  380. msg : "请填写详细描述!",
  381. msgBox: "diaryContentMsg"
  382. },{
  383. type : "len",
  384. min : 0,
  385. max : 200,
  386. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  387. msgBox: "diaryContentMsg"
  388. }]
  389. }) && rs;
  390. rs =$.validate({
  391. name : "comments",
  392. model : [ {
  393. type : "len",
  394. min : 0,
  395. max : 200,
  396. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  397. msgBox: "commentsMsg"
  398. }]
  399. }) && rs;
  400. if(rs){
  401. var diary_date=$("#diaryDate").html();
  402. var manHour=$("#manHour").val();
  403. var finish_percent=$("#taskFinishPer").val();
  404. var type=$("#type").val();
  405. var remark=$("#diaryContent").val();
  406. var comments=$("#comments").val();
  407. var msgType = tmsMsgRemindUtil.getSelectResult("addWorkDiaryMsgPanel");
  408. var current_finish_percent="${map.finish_percent}";
  409. current_finish_percent=parseFloat(current_finish_percent);
  410. var flag_percent=current_finish_percent+parseFloat(finish_percent);
  411. var num=100-current_finish_percent;
  412. if(flag_percent>100){
  413. $("#taskFinishPerMsg").html("<font color='red'>工作量最多写"+num+"</font>");
  414. return ;
  415. }
  416. var plan_hour=parseFloat("${map.plan_hour }");
  417. var prac_hour=parseFloat("${map.prac_hour}");
  418. var add_hour=parseFloat(manHour)+prac_hour;
  419. var do_hour=add_hour-plan_hour;
  420. var t = 7.5 - $("#today_worktime").val() - $("#manHour").val();
  421. if (t < 0){
  422. if (!confirm("您本日的报工已超过7.5个小时,确定要提交吗?")){
  423. return;
  424. }
  425. }
  426. if(do_hour>0){
  427. if(!confirm("工时已超出计划工时"+do_hour+"个小时,是否继续?")){
  428. return ;
  429. }
  430. }
  431. $.ajax({
  432. type:"POST",
  433. url:"mtDiaryMgr.do?task=addWorkDiary&time=" + new Date().getTime(),
  434. data : {"task_id":"${map.universalid}","manHour":manHour,"diary_date":diary_date,"finish_percent":finish_percent,"type":type,"remark":encodeURI(remark),"msgType":msgType,"comments":encodeURI(comments)},
  435. timeout:30000,
  436. cache:false,
  437. dataType:"text",
  438. beforeSend:function(){
  439. showWaittingDialog("正在提交中,请稍后……");
  440. workdiaryDialog.hidden();
  441. },
  442. success:function(data){
  443. var i = data;
  444. if(i>0){
  445. $.ligerDialog.open({content:"提交成功!", "title":"提交成功!", "type":"success",allowClose:false,
  446. buttons: [ { text: '确定', onclick: function (item, dialog) { location.href="mtDiaryMgr.do?task=toeditdiary&task_id=${map.universalid}";dialog.hidden(); } } ]
  447. });
  448. }else{
  449. showAjaxError(null, data.error);
  450. }
  451. },
  452. error:showAjaxError,
  453. complete: closeWaittingDialog
  454. });
  455. }
  456. }
  457. function changefp(obj){
  458. var finish_per=$(obj).val();
  459. if(""==finish_per){
  460. $("#taskFinishPerMsg").html("");
  461. }
  462. var i=finish_per.indexOf(".");
  463. var j=finish_per.indexOf("-");
  464. if(isNaN(finish_per)){
  465. $("#taskFinishPerMsg").html("<font color='red'>工作量只能为正整数</font>");
  466. return false;
  467. }else if(i!=-1 && j!=-1 ){
  468. $("#taskFinishPerMsg").html("<font color='red'>工作量只能为正整数</font>");
  469. return false;
  470. }
  471. $("#taskFinishPerMsg").html("");
  472. $(obj).val(parseInt(finish_per));
  473. }
  474. </script>
  475. </head>
  476. <body >
  477. <div id="wrap">
  478. <div class="container-layout">
  479. <div id="title" class="form-button" >
  480. <input type="button" onclick="history.back(-1);" class="l-button" value="返回" />
  481. <input type="hidden" name="today_worktime" id="today_worktime" />
  482. </div>
  483. </div>
  484. <div class="forum-container-2">
  485. <div class="l-title-bar">任务基本信息</div>
  486. <div style="padding-left: 10px;">
  487. <table class="l-default-panel">
  488. <tr>
  489. <td class="l-table-head" colspan="4">任务名称:${map.task_name }
  490. </td>
  491. </tr>
  492. <tr>
  493. <td class="l-table-edit-text ">任务状态:</td>
  494. <td class="l-table-edit-content">
  495. <font color="#BCBCBC" style="font-size: 14px; font-weight: bold;">${map.task_state_name }</font>
  496. </td>
  497. <td class="l-table-edit-text ">任务进度:</td>
  498. <td class="l-table-edit-content"><label id="procFinishPer">${map.finish_percent==null?0:map.finish_percent}%</label></td>
  499. </tr>
  500. <tr>
  501. <td class="l-table-edit-text ">指派人:</td>
  502. <td class="l-table-edit-content">${map.prov_user_name }</td>
  503. <td class="l-table-edit-text ">接收任务时间:</td>
  504. <td class="l-table-edit-content">
  505. <fmt:formatDate value="${map.receive_task_date }" pattern="yyyy-MM-dd HH:mm:ss"/>
  506. </td>
  507. </tr>
  508. <tr>
  509. <td class="l-table-edit-text ">计划用时:</td>
  510. <td class="l-table-edit-content">${map.plan_hour }&nbsp;h</td>
  511. <td class="l-table-edit-text ">已用时:</td>
  512. <td class="">${map.prac_hour==null?0:map.prac_hour }&nbsp;h</td>
  513. </tr>
  514. <tr>
  515. <td class="l-table-edit-text ">计划开始时间:</td>
  516. <td class="l-table-edit-content">
  517. <fmt:formatDate value="${map.plan_start_date }" pattern="yyyy-MM-dd HH:mm:ss"/>
  518. </td>
  519. <td class="l-table-edit-text ">实际开始时间:</td>
  520. <td class="">
  521. <c:if test="${map.prac_start_date !=null }">
  522. <fmt:formatDate value="${map.prac_start_date }" pattern="yyyy-MM-dd"/>
  523. </c:if>
  524. </td>
  525. </tr>
  526. <tr>
  527. <td class="l-table-edit-text ">计划完成时间:</td>
  528. <td class="l-table-edit-content">
  529. <fmt:formatDate value="${map.plan_end_date}" pattern="yyyy-MM-dd HH:mm:ss"/>
  530. </td>
  531. <td class="l-table-edit-text ">实际完成时间:</td>
  532. <td class="">
  533. <c:if test="${map.prac_end_date !=null }">
  534. <fmt:formatDate value="${map.prac_end_date}" pattern="yyyy-MM-dd"/>
  535. </c:if>
  536. </td>
  537. </tr>
  538. </table>
  539. </div>
  540. <div class="l-title-bar">任务描述</div>
  541. <div class="l-default-panel" style="margin-top: 10px;margin-bottom: 20px;padding: 10px;">${map.task_descript }</div>
  542. <div class="l-title-bar">审核记录</div>
  543. <div class="l-default-panel" style="margin-top: 10px;margin-bottom: 20px;padding: 10px;">
  544. <c:forEach items="${list }" var="obj">
  545. [<font color="red">${obj.result }</font>]&nbsp;${obj.descript }<br/>
  546. &nbsp;&nbsp;&nbsp;&nbsp;审核人:${obj.check_user_name }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;审核日期:<fmt:formatDate value="${obj.create_date}" pattern="yyyy-MM-dd"/><br/>
  547. </c:forEach>
  548. </div>
  549. <div class="l-title-bar" id="diaryPanel" >
  550. <a name="workDiaryPos" id="workDiaryPos" href="#"></a>
  551. <div class="text_left">工作日志</div>
  552. </div>
  553. </div>
  554. <div style="margin-bottom: 10px;">
  555. </div>
  556. <div id='calendar'></div>
  557. </div>
  558. <%--添加报工 --%>
  559. <div id="addWorkDiary" class="forum-container2" style="display: none">
  560. <table class="workDiaryTable" >
  561. <tr>
  562. <td class="left-text" >日期<font color="red" >*</font>:</td>
  563. <td>
  564. <label id="diaryDate"></label>
  565. </td>
  566. </tr>
  567. <tr>
  568. <td class="left-text" >任务名称:</td>
  569. <td >
  570. <label id="taskName" ></label>
  571. </td>
  572. </tr>
  573. <tr>
  574. <td class="left-text" >工时<font color="red" >*</font>:</td>
  575. <td>
  576. <input type="text" id = "manHour" name = "manHour" class="short-input " />&nbsp;h&nbsp;&nbsp;
  577. <div id="worktime_msg" style="display: inline;"></div>
  578. <label id="manHourMsg"></label>
  579. </td>
  580. </tr>
  581. <tr>
  582. <td class="left-text" >工作量<font color="red" >*</font>:</td>
  583. <td>
  584. <input type="text" id="taskFinishPer" name="taskFinishPer" onkeyup="changefp(this)" onchange="changefp(this)" class="short-input " />&nbsp;%&nbsp;
  585. <label id="taskFinishPerMsg"></label>
  586. <br/><font color="red">今日完成量占任务百分比</font>
  587. </td>
  588. </tr>
  589. <tr>
  590. <td class="left-text" >报工类型:</td>
  591. <td>
  592. <%-- 不知道什么原因,如果只有一个select,那么这个select的下拉框会异常,只在ie8浏览器下会出现,因此增加一个下拉框 20120903 tangj--%>
  593. <select style="display: none"><option>1</option></select>
  594. <select id="type" name ="type">
  595. <c:forEach items="${pm_work_diary }" var="obj">
  596. <option value="${obj.dvalue}">${obj.dname } </option>
  597. </c:forEach>
  598. </select>
  599. </td>
  600. </tr>
  601. <tr>
  602. <td class="left-text" >详细描述<font color="red" >*</font>:</td>
  603. <td>
  604. <textarea id="diaryContent" name="diaryContent" cols="34" rows="4"></textarea>
  605. <div id="diaryContentMsg"></div>
  606. </td>
  607. </tr>
  608. <tr>
  609. <td class="left-text" >备注:</td>
  610. <td>
  611. <textarea id="comments" name="comments" cols="34" rows="4"></textarea>
  612. <div id="commentsMsg"></div>
  613. </td>
  614. </tr>
  615. <tr id="addTmsWorkDiaryMsgTr">
  616. <td class="left-text" >提醒方式:</td>
  617. <td id="addWorkDiaryMsg">
  618. </td>
  619. </tr>
  620. <tr>
  621. <td colspan="2" style="text-align: center" >
  622. <input type="button" value="提交" class="l-button" onclick="addWorkDiary();" id="addWorkDiaryBtn"/>&nbsp;&nbsp;&nbsp;&nbsp;
  623. <input type="button" value="取消" class="l-button" onclick="workdiaryDialog.hidden();" />
  624. </td>
  625. </tr>
  626. </table>
  627. </div>
  628. <%--编辑报工 --%>
  629. <div id="editWorkDiary" class="forum-container2" style="display: none">
  630. <input type="hidden" name="wd_id" id="wd_id" />
  631. <input type="hidden" name="wd_finish_percent" id="wd_finish_percent" />
  632. <input type="hidden" name="wd_man_hour" id="wd_man_hour" />
  633. <table class="workDiaryTable">
  634. <tr>
  635. <td class="left-text" >日期<font color="red" >*</font>:</td>
  636. <td>
  637. <label id="editDiaryDate"></label>
  638. </td>
  639. </tr>
  640. <tr>
  641. <td class="left-text" >任务名称:</td>
  642. <td >
  643. <label id="editTaskName" name="editTaskName" style=""></label>
  644. </td>
  645. </tr>
  646. <tr>
  647. <td class="left-text" >工时<font color="red" >*</font>:</td>
  648. <td>
  649. <input type="text" id = "editManHour" name = "editManHour" class="short-input " />&nbsp;h&nbsp;&nbsp;
  650. <div id="worktime_msg_" style="display: inline;"></div>
  651. <label id="editManHourMsg"></label>
  652. </td>
  653. </tr>
  654. <tr>
  655. <td class="left-text" >工作量<font color="red" >*</font>:</td>
  656. <td>
  657. <input type="text" id="editTaskFinishPer" name="editTaskFinishPer" class="short-input " onkeyup="changefp(this)" onchange="changefp(this)" />&nbsp;%&nbsp;
  658. <label id="editTaskFinishPerMsg"></label>
  659. </td>
  660. </tr>
  661. <tr>
  662. <td class="left-text" >报工类型:</td>
  663. <td>
  664. <%-- 不知道什么原因,如果只有一个select,那么这个select的下拉框会异常,只在ie8浏览器下会出现,因此增加一个下拉框 20120903 tangj--%>
  665. <select style="display: none"><option>1</option></select>
  666. <select id="edittype" name ="edittype">
  667. <c:forEach items="${pm_work_diary }" var="obj">
  668. <option value="${obj.dvalue}">${obj.dname } </option>
  669. </c:forEach>
  670. </select>
  671. </td>
  672. </tr>
  673. <tr>
  674. <td class="left-text" >详细描述<font color="red" >*</font>:</td>
  675. <td>
  676. <textarea id="editDiaryContent" name="editDiaryContent" cols="34" rows="4"></textarea>
  677. <div id="editDiaryContentMsg"></div>
  678. </td>
  679. </tr>
  680. <tr>
  681. <td class="left-text" >备注:</td>
  682. <td>
  683. <textarea id="editcomments" name="editcomments" cols="34" rows="4"></textarea>
  684. <div id="editcommentsMsg"></div>
  685. </td>
  686. </tr>
  687. <tr id="editWorkDiaryMsgTr">
  688. <td class="left-text" >提醒方式:</td>
  689. <td id="editWorkDiaryMsg">
  690. </td>
  691. </tr>
  692. <tr>
  693. <td colspan="2" style="text-align: center" >
  694. <input type="button" value="更新" class="l-button" onclick="updateWorkDiary();" id="editWorkDiaryBtn"/>&nbsp;&nbsp;&nbsp;&nbsp;
  695. <input type="button" value="删除" class="l-button" onclick="deleteWorkDiary()" id="deleteWorkDiaryBtn"/>&nbsp;&nbsp;&nbsp;&nbsp;
  696. <input type="button" value="取消" class="l-button" onclick="editworkdiaryDialog.hidden()"/>
  697. <input type="hidden" id="editWorkDiaryId" />
  698. </td>
  699. </tr>
  700. </table>
  701. </div>
  702. </body>
  703. </html>