myTaskList.jsp 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560
  1. <%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <%@ taglib prefix="tms" uri="http://fzywtx.com/jsp/yw/tms" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html;charset=GBK">
  8. <title>我任务列表</title>
  9. <link href="${pageContext.request.contextPath}/liger/lib/ligerUI/skins/${sessionScope.css}/css/ligerui-all.css" rel="stylesheet" type="text/css"></link>
  10. <link href="/shares/css/yw/master1/reset.css" rel="stylesheet" type="text/css" />
  11. <link href="${pageContext.request.contextPath }/main.css" rel="stylesheet" type="text/css"/>
  12. <script src="${pageContext.request.contextPath }/liger/lib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  13. <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/core/base.js" type="text/javascript"></script>
  14. <script src="${pageContext.request.contextPath }/liger/lib/ligerUI/js/ligerui.all.js" type="text/javascript"></script>
  15. <script src="/shares/jquery.progressbar/js/jquery.progressbar.js" type="text/javascript"></script>
  16. <link rel="stylesheet" href="/shares/fullcalendar/jquery/themes/base/jquery.ui.all.css" />
  17. <link rel="stylesheet" href="/shares/fullcalendar/fullcalendar/cupertino/theme.css" />
  18. <link href='/shares/fullcalendar/fullcalendar/fullcalendar.css' rel='stylesheet' />
  19. <link href='/shares/fullcalendar/fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
  20. <script src='/shares/fullcalendar/fullcalendar/fullcalendar.min.js'></script>
  21. <script type="text/javascript" src="/shares/js/constant.js"></script>
  22. <script type="text/javascript" src="/shares/js/common.js"></script>
  23. <script type="text/javascript" src="/shares/js/file.js"></script>
  24. <script type="text/javascript" src="/shares/js/yw/master1/page.js"></script>
  25. <script type="text/javascript" src="/shares/js/yw/master1/common.js"></script>
  26. <script type="text/javascript" src="/shares/js/yw/master1/searchBox.js"></script>
  27. <script type="text/javascript" src="/shares/js/yw/ytpm/task/pm_common.js"></script>
  28. <style type="text/css">
  29. .l-button
  30. .l-button[type='button'],.l-button[type='submit'] {
  31. width: 124px;
  32. }
  33. .tr_right_bg {
  34. height: 100%;
  35. }
  36. </style>
  37. <style type="text/css">
  38. /* .file-style{
  39. width: 40px;
  40. } */
  41. .file-style input[type='file'] {
  42. width:225px ;
  43. height:24px;
  44. line-height:22px;
  45. vertical-align: bottom;
  46. background-color: #fff;
  47. border: 1px solid #cccccc;
  48. margin-top: 2px;
  49. margin-bottom: 2px;
  50. }
  51. </style>
  52. <script type="text/javascript">
  53. var calendar = null;
  54. var prjTree="";
  55. var grid="";
  56. var actionUrl="";
  57. var count=0;
  58. var infoDialog=null;
  59. var waittingDialog=null;
  60. var today_worktime="";
  61. var event_task=null;
  62. var ischecked_id="";
  63. var finish_percent_task=null;
  64. $(function (){
  65. $("#layout1").ligerLayout({ leftWidth:250,height:'99%'});
  66. loadCalendar("${session.loginID}");
  67. // initLigerGrid();
  68. $("#task_state_name").ligerComboBox({ isShowCheckBox: true, isMultiSelect: true,
  69. url:"mtTaskMgr.do?task=getListTaskState",
  70. valueFieldID: 'task_state',
  71. initText : "未接收,进行中,审核驳回",
  72. textField : "dname",
  73. valueField : "dvalue",
  74. split : ",",
  75. resize : false,
  76. selectBoxHeight: 180,
  77. onSelected : function (value, text){
  78. searchByKword();
  79. }
  80. });
  81. $("#unp_task_state_name").ligerComboBox({ isShowCheckBox: true, isMultiSelect: true,
  82. data: [
  83. { text: '未接收', id: '0' },
  84. { text: '进行中', id: '1' },
  85. { text: '待审核', id: '4' },
  86. { text: '审核通过', id: '5' },
  87. { text: '已驳回', id: '-1' }
  88. ],
  89. valueFieldID: 'unp_task_state',
  90. initValue : '0,1,-1',
  91. split :',',
  92. resize : false,
  93. onSelected : function (value, text){
  94. searchByKword();
  95. }
  96. });
  97. tmsMsgRemindUtil = new TmsMsgRemindUtil;
  98. tmsMsgRemindUtil.createPanel({id:"addWorkDiaryMsg", panelId:"addWorkDiaryMsgPanel"});
  99. tmsMsgRemindUtil.createPanel({id:"editWorkDiaryMsg", panelId:"editWorkDiaryMsgPanel"});
  100. });
  101. function searchByKword(){
  102. if ($("#unp_project_").is(":visible")){
  103. var unp_task_state = $("#unp_task_state").val();
  104. actionUrl = "mtTaskCenterMgr.do?task=mytask&task_sort="+unp_task_state+"&time="+ new Date().getTime();
  105. } else if ($("#project_").is(":visible")){
  106. var task_state = $("#task_state").val();
  107. actionUrl = "mtTaskMgr.do?task=mytaskpagelist&task_state="+task_state+"&time="+ new Date().getTime();
  108. }
  109. initLigerGrid(actionUrl);
  110. }
  111. function initLigerGrid(URL){
  112. count = 1;
  113. grid = $("#navtab1").ligerGrid({
  114. columns: [
  115. { display: '任务名称', name: 'task_name',align:"left",
  116. render: function (row){
  117. var html = "<font ";
  118. if (row.unproject == "unproject"){
  119. switch (parseInt(row.task_state)) {
  120. case 0: html += "color='red'"; //未接收
  121. break;
  122. case 1: html += "color='blue'";//进行中
  123. break;
  124. case 4: html += "color='purple'";//待审核
  125. break;
  126. case 5: html += "color='green'";//审核通过
  127. break;
  128. case -1: html += "color='red'";//已驳回
  129. break;
  130. default: html += "";
  131. }
  132. } else {
  133. switch (parseInt(row.task_state)) {
  134. case 1: html += "color='red'";//未接收
  135. break;
  136. case 2: html += "color='blue'";//进行中
  137. break;
  138. case 8: html += "color='red'";//已驳回
  139. break;
  140. case 6: html += "color='purple'";//待审核
  141. break;
  142. case 7: html += "color='green'";//审核通过
  143. break;
  144. default: html += "";
  145. }
  146. }
  147. html += ">"+ row.task_name + "</font>";
  148. return html;
  149. }
  150. }
  151. ],
  152. frozen:false,
  153. pageParmName: 'p', //页索引参数名,(提交给服务器)
  154. pagesizeParmName: 'pSize', //页记录数参数名,(提交给服务器)
  155. pageSize:20,
  156. pageSizeOptions: [20],
  157. url:URL,
  158. checkbox:true,
  159. showTitle: false,
  160. frozenCheckbox: true,
  161. width:'106%',
  162. height: '99%',
  163. columnWidth:185,
  164. isChecked: defaultChecked,
  165. detail: { height:'auto', onShowDetail: function (r, p){
  166. if (r.unproject == "unproject"){
  167. var task_state_name = "";
  168. switch (parseInt(r.task_state)) {
  169. case 0: task_state_name = "未接收";
  170. break;
  171. case 1: task_state_name = "进行中";
  172. break;
  173. case 4: task_state_name = "待审核";
  174. break;
  175. case 5: task_state_name = "审核通过";
  176. break;
  177. case -1: task_state_name = "已驳回";
  178. break;
  179. default: task_state_name = "";
  180. }
  181. $(p).append($('<div><b>任务名称</b>:' + r.task_name + '</div>').css('margin', 7));
  182. $(p).append($('<div style="float:left;"><b>派发人:</b>' + r.prov_user_name + '</div>').css('margin', 7));
  183. $(p).append($('<div style="float:left;"><b>任务状态:</b>' + task_state_name + '</div>').css('margin', 7));
  184. $(p).append($('<div style="float:left;"><b>开始时间:</b>' + (r.plan_start_date == null ? "": r.plan_start_date) + '</div>').css('margin', 7));
  185. $(p).append($('<div style="float:left;"><b>结束时间:</b>' + (r.plan_end_date == null ? "": r.plan_end_date) + '</div>').css('margin',7));
  186. /* $(p).append($('<div style="float:left;"><b>已完成:</b>' + ((r.finish_percent == null || r.finish_percent == "") ? "0" : r.finish_percent) + '%</div>').css('margin', 7)); */
  187. $(p).append($('<div style="float:left;"><b>计划用时:</b>' + (r.plan_hour == null ? "0": r.plan_hour) + 'h</div>').css('margin', 7));
  188. $(p).append($('<div style="float:left;"><b>任务描述:</b>' + (r.task_descript == null ? "": r.task_descript) + '</div>').css('margin', 7));
  189. } else {
  190. $(p).append($('<div><b>任务名称</b>:' + r.task_name + '</div>').css('margin', 7));
  191. $(p).append($('<div style="float:left;"><b>派发人:</b>' + r.prov_user_name + '</div>').css('margin', 7));
  192. $(p).append($('<div style="float:left;"><b>任务状态:</b>' + r.task_state_name + '</div>').css('margin', 7));
  193. $(p).append($('<div style="float:left;"><b>所属项目:</b>' + r.project_name + '</div>').css('margin', 7));
  194. $(p).append($('<div style="float:left;"><b>开始时间:</b>' + r.plan_start_date + '</div>').css('margin', 7));
  195. $(p).append($('<div style="float:left;"><b>结束时间:</b>' + r.plan_end_date + '</div>').css('margin',7));
  196. /* $(p).append($('<div style="float:left;"><b>已完成:</b>' + r.finish_percent + '%</div>').css('margin', 7)); */
  197. $(p).append($('<div style="float:left;"><b>紧急程度:</b>' + r.urgency_name + '</div>').css('margin',7));
  198. $(p).append($('<div style="float:left;"><b>任务难度:</b>' + r.task_harder_name + '</div>').css('margin',7));
  199. $(p).append($('<div style="float:left;"><b>计划用时:</b>' + r.plan_hour + 'h</div>').css('margin', 7));
  200. $(p).append($('<div style="float:left;"><b>任务描述:</b>' + (r.task_descript == null ? "": r.task_descript) + '</div>').css('margin', 7));
  201. }
  202. } },
  203. onError: function (a, b){
  204. },
  205. onCheckRow: function (a, b){
  206. if (a){
  207. ischecked_id = b.universalid;
  208. finish_percent_task = b.finish_percent;
  209. } else {
  210. if (grid.selected.length == 1)
  211. ischecked_id = grid.selected[0].universalid;
  212. }
  213. }
  214. });
  215. }
  216. function change_P_Task(){
  217. $("input[name=task_type]").val(["P"]);
  218. $("#unp_project_").hide();
  219. $("#project_").show();
  220. searchByKword();
  221. }
  222. function change_UNP_Task(){
  223. $("input[name=task_type]").val(["UNP"]);
  224. $("#project_").hide();
  225. $("#unp_project_").show();
  226. searchByKword();
  227. }
  228. function defaultChecked(row){
  229. if (row.universalid == ischecked_id){
  230. return true;
  231. } else {
  232. return false;
  233. }
  234. }
  235. function loadCalendar(loginId){
  236. $(document).ready(function() {
  237. calendar = $('#center').fullCalendar({
  238. header: {
  239. left: ' ',
  240. center: 'title prev today next',
  241. right: ''
  242. },
  243. theme: true,
  244. aspectRatio:2,
  245. columnFormat:{//每种视图每列显示的时间格式
  246. month: 'ddd'
  247. },
  248. titleFormat:{//视图标题时间显示的格式
  249. month: 'yyyy-MM '
  250. },
  251. allDaySlot:true,
  252. allDayText:'今天的任务',
  253. monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
  254. monthNamesShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
  255. dayNames: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
  256. dayNamesShort: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
  257. today: ["今天"],
  258. firstDay: 1,
  259. buttonText: {
  260. today: '本月',
  261. month: '月',
  262. week: '周',
  263. day: '日',
  264. prev: '上一月',
  265. next: '下一月'
  266. },
  267. eventSources: [
  268. {
  269. url:'mtDiaryMgr.do?task=diary_date_view&user_id='+loginId,
  270. color:'#0033FF'
  271. },
  272. {
  273. url:'mtTaskCenterMgr.do?task=diary_date_view&user_id='+loginId,
  274. color:'#00BCE2'
  275. },
  276. {
  277. url:'mtDiaryMgr.do?task=listUntask&user_id='+loginId,
  278. color:'#56B10E'
  279. }
  280. ],
  281. eventMouseover: function (calEvent, jsEvent, view) {
  282. var content_str = "工作内容:"+calEvent.diary_name;
  283. if (calEvent.project == "project") {
  284. content_str = content_str + "\n所属项目:" + calEvent.project_name;
  285. }
  286. $(this).attr('title', content_str);
  287. },
  288. eventClick: function (event, jsEvent, view ) {
  289. var selecte_date = new Date(Date.parse($.fullCalendar.formatDate(event.start, "yyyy/MM/dd")));
  290. var selecte_date_ = selecte_date;
  291. selecte_date_.setDate(selecte_date_.getDate() + 7);
  292. if (selecte_date_ < new Date()) {
  293. $.ligerDialog.warn('只能延迟7天添加报工或修改报工!');
  294. return;
  295. }
  296. if (event.unproject == "unproject"){ // 如果点击的是非项目任务
  297. switch (parseInt(event.task_state)) {
  298. case 0: //未接收
  299. if (confirm('该任务还未接收,您现在要接收该任务吗?')){
  300. receive_task("unproject",grid.selected[0].universalid);
  301. }
  302. //$.ligerDialog.confirm('该任务还未接收,您现在要接收该任务吗?',
  303. //function (yes) { if (yes){receive_task("unproject",grid.selected[0].universalid);} });
  304. break;
  305. case 1: //进行中
  306. var progress = event.progress_;
  307. var progress_count = event.progress_count;
  308. var id = event.id;
  309. var logdate = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd");
  310. var worktime = event.worktime;
  311. var tasktitle = event.tasktitle;
  312. var logdtaile = event.logdtaile;
  313. var universalid = event.universalid;
  314. var remark = event.remark;
  315. var cost = event.cost;
  316. var log_affix = event.log_affix;
  317. getTodayWorkTime(logdate);
  318. var s = "&taskid=" +universalid+ "&worktime="+worktime+ "&log_affix="+log_affix+ "&progress_count="+progress_count + "&logdate="+encodeURI(encodeURI(logdate)) + "&progress="+progress
  319. +"&tasktitle="+encodeURI(encodeURI(tasktitle)) + "&logdtaile="+encodeURI(encodeURI(logdtaile)) + "&remark="+encodeURI(encodeURI(remark)) + "&id="+id+ "&cost="+cost + "&today_worktime="+today_worktime ;
  320. infoDialog = $.ligerDialog.open({ url : 'mtTaskCenterMgr.do?task=toEditWorkLog'+s, height: 430,width:700, title: '修改任务日志(非项目任务)'});
  321. break;
  322. case 2: //已退回
  323. $.ligerDialog.warn('该任务已经退回,不能再修改!');
  324. break;
  325. case 3: //已撤销
  326. $.ligerDialog.warn('该任务已经撤销,不能再修改!');
  327. break;
  328. case 4: //待审核
  329. $.ligerDialog.warn('该任务处于待审核,不能再修改!');
  330. break;
  331. case 5: //审核通过
  332. $.ligerDialog.warn('该任务审核已经通过,不能再修改!');
  333. break;
  334. case -1: ;//已驳回
  335. var progress = event.progress_;
  336. var progress_count = event.progress_count;
  337. var id = event.id;
  338. var logdate = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd");
  339. var worktime = event.worktime;
  340. var tasktitle = event.tasktitle;
  341. var logdtaile = event.logdtaile;
  342. var universalid = event.universalid;
  343. var remark = event.remark;
  344. var cost = event.cost;
  345. var log_affix = event.log_affix;
  346. getTodayWorkTime(logdate);
  347. var s = "&taskid=" + universalid + "&worktime="+worktime + "&log_affix="+log_affix + "&progress_count="+progress_count + "&logdate="+encodeURI(encodeURI(logdate)) + "&progress="+progress
  348. +"&tasktitle="+encodeURI(encodeURI(tasktitle)) + "&logdtaile="+encodeURI(encodeURI(logdtaile)) + "&remark="+encodeURI(encodeURI(remark)) + "&id="+id + "&cost="+cost + "&today_worktime="+today_worktime ;
  349. infoDialog = $.ligerDialog.open({ url : 'mtTaskCenterMgr.do?task=toEditWorkLog'+s, height: 430,width:700, title: '修改任务日志(非项目任务)'});
  350. break;
  351. }
  352. } else if (event.project == "project") { //如果点击的是项目任务
  353. getTodayWorkTime_p($.fullCalendar.formatDate(event.start, "yyyy-MM-dd"));
  354. switch (parseInt(event.task_state)) {
  355. case 1: //未接收
  356. if (confirm('该任务还未接收,您现在要接收该任务吗?')){
  357. receive_task("project",grid.selected[0].universalid);
  358. }
  359. //$.ligerDialog.confirm('该任务还未接收,您现在要接收该任务吗?',
  360. //function (yes) { if (yes){receive_task("project",grid.selected[0].universalid);} });
  361. break;
  362. case 2: //进行中
  363. $("#wd_id").val(event.universalid);
  364. $("#editDiaryDate").html($.fullCalendar.formatDate(event.start,"yyyy-MM-dd"));
  365. $("#editTaskName").html(event.task_name );
  366. $("#editProjectName").html(event.project_name );
  367. $("#editManHour").val(event.man_hour);
  368. $("#editTaskFinishPer").val(event.finish_percent_diary);
  369. $("#editCost").val(event.cost);
  370. $("#editcomments").val(event.comments == null ? "" : event.comments);
  371. $("#wd_finish_percent").val(event.finish_percent_diary);
  372. $("#wd_man_hour").val(event.man_hour);
  373. $("#edittype").find("option[value="+event.type+"]").attr("selected",true);
  374. $("#edittask_isfinished").find("option[value="+0+"]").attr("selected",true);
  375. $("#editDiaryContent").val(event.remark == null ? "" : event.remark);
  376. var diary_affix = event.diary_affix;
  377. editViewFileHtml(diary_affix, "task_affix_id_edit",true,5);
  378. editworkdiaryDialog=$.ligerDialog.open({height: 350,width:500, target: $("#editWorkDiary"),title:"修改报工(项目任务)",
  379. buttons:[{
  380. text : '更新',
  381. onclick : function(item, dialog) {
  382. event_task = event;
  383. updateWorkDiary();
  384. }},{
  385. text : '删除',
  386. onclick : function(item, dialog) {
  387. event_task = event;
  388. deleteWorkDiary();
  389. }
  390. },{
  391. text : '取消',
  392. onclick : function(item, dialog) {
  393. dialog.hidden();
  394. }
  395. }]
  396. });
  397. break;
  398. case 8: //已驳回
  399. $("#wd_id").val(event.universalid);
  400. $("#editDiaryDate").html($.fullCalendar.formatDate(event.start,"yyyy-MM-dd"));
  401. $("#editTaskName").html(event.task_name );
  402. $("#editProjectName").html(event.project_name );
  403. $("#editManHour").val(event.man_hour);
  404. $("#editTaskFinishPer").val(event.finish_percent_diary);
  405. $("#editcomments").val(event.comments == null ? "" : event.comments);
  406. $("#editCost").val(event.cost);
  407. $("#wd_finish_percent").val(event.finish_percent_diary);
  408. $("#wd_man_hour").val(event.man_hour);
  409. $("#edittype").find("option[value="+event.type+"]").attr("selected",true);
  410. $("#edittask_isfinished").find("option[value="+0+"]").attr("selected",true);
  411. $("#editDiaryContent").val(event.remark == null ? "" : event.remark);
  412. var diary_affix = event.diary_affix;
  413. editViewFileHtml(diary_affix, "task_affix_id_edit",true,5);
  414. editworkdiaryDialog=$.ligerDialog.open({height: 350,width:500, target: $("#editWorkDiary"),title:"修改报工(项目任务)",
  415. buttons:[{
  416. text : '更新',
  417. onclick : function(item, dialog) {
  418. event_task = event;
  419. updateWorkDiary();
  420. }},{
  421. text : '删除',
  422. onclick : function(item, dialog) {
  423. event_task = event;
  424. deleteWorkDiary();
  425. }
  426. },{
  427. text : '取消',
  428. onclick : function(item, dialog) {
  429. dialog.hidden();
  430. }
  431. }]
  432. });
  433. break;
  434. case 6: //待审核
  435. $.ligerDialog.warn('该任务处于待审核,不能再报工!');
  436. break;
  437. case 7: //审核通过
  438. $.ligerDialog.warn('该任务审核已经通过,不能再报工!');
  439. break;
  440. case 4: //退回
  441. $.ligerDialog.warn('该任务审核已退回,不能再报工!');
  442. break;
  443. }
  444. } else { // 点击的是非任务
  445. getTodayWorkTime($.fullCalendar.formatDate(event.start,"yyyy-MM-dd"));
  446. infoDialog = $.ligerDialog.open({url : 'mtDiaryMgr.do?task=unTaskDiary&type=edit&logdate=' + $.fullCalendar.formatDate(event.start,"yyyy-MM-dd")
  447. +"&today_worktime=" + today_worktime+"&untask_affix=" + event.untask_affix + "&time="+ new Date().getTime()+"&cost=" + event.untask_cost
  448. +"&task_id=" + event.untask_universalid + "&untask_type="+ event.untask_type + "&untask_log_detail="+ encodeURI(encodeURI(event.untask_log_detail))
  449. +"&untask_remark=" + encodeURI(encodeURI(event.untask_remark)) + "&untask_worktime="+ event.untask_worktime,
  450. height: 430,width:700, title: '修改任务报工(非任务) ' });
  451. }
  452. //gotask($.fullCalendar.formatDate(event.start,"yyyy-MM-dd"));
  453. },
  454. selectable: true,
  455. selectHelper: true,
  456. select: function(start, end, allDay, jsEvent, view) {
  457. var selecte_date = new Date(Date.parse($.fullCalendar.formatDate(start, "yyyy/MM/dd")));
  458. var selecte_date_ = selecte_date;
  459. if (selecte_date > new Date()){
  460. $.ligerDialog.warn('报工时间不能早于今天!');
  461. return;
  462. }
  463. selecte_date_.setDate(selecte_date_.getDate() + 7);
  464. if (selecte_date_ < new Date()) {
  465. $.ligerDialog.warn('只能延迟7天添加报工或修改报工!');
  466. return;
  467. }
  468. //if (!$("#unTask").attr("checked")){ // 如果用户没有勾选非任务报工
  469. if (grid.selected.length == 0){
  470. /* $.ligerDialog.warn('您如果需要报工,请选择特定的任务!');
  471. return; */
  472. getTodayWorkTime($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  473. infoDialog = $.ligerDialog.open({url : 'mtDiaryMgr.do?task=unTaskDiary&logdate=' + $.fullCalendar.formatDate(start, "yyyy-MM-dd")
  474. +"&today_worktime=" + today_worktime + "&time="+ new Date().getTime(),
  475. height: 430,width:700, title: '新增任务报工(非任务) ' });
  476. return;
  477. } else if (grid.selected.length > 1) {
  478. $.ligerDialog.warn('您如果需要报工,请选择特定的任务!');
  479. return;
  480. }
  481. /* if (selecte_date < new Date(Date.parse(grid.selected[0].plan_start_date.replace(/\-/g,"/").substr(0,10))) || selecte_date > new Date(Date.parse(grid.selected[0].plan_end_date.replace(/\-/g,"/").substr(0,10)))){
  482. $.ligerDialog.warn('报工时间应在任务的计划时间之内!');
  483. return;
  484. } */
  485. if (grid.selected[0].unproject == "unproject"){ // 点击非项目任务日志
  486. $.ajax({
  487. type:"POST",
  488. url:"mtTaskCenterMgr.do?task=checkLog&taskId="+grid.selected[0].universalid+"&receiveid=${session.loginID}&dateTime=" + $.fullCalendar.formatDate(start, "yyyy-MM-dd")+"&time=" + new Date().getTime(),
  489. dataType:"json",
  490. success:function(data){
  491. var id = data[0].id;
  492. if(id == "-1"){ /***如果点击该日期格子没有日志***/
  493. switch (parseInt(grid.selected[0].task_state)) {
  494. case 0: //未接收
  495. if (confirm('该任务还未接收,您现在要接收该任务吗?')){
  496. receive_task("unproject",grid.selected[0].universalid);
  497. }
  498. //$.ligerDialog.confirm('该任务还未接收,您现在要接收该任务吗?',
  499. // function (yes) { if (yes){receive_task("unproject",grid.selected[0].universalid);} });
  500. break;
  501. case 1: //进行中
  502. finish_percent_task = grid.selected[0].finish_percent;
  503. toCreateWorkLog(grid.selected[0].universalid,"unproject",$.fullCalendar.formatDate(start,"yyyy-MM-dd"),grid.selected[0].task_name);
  504. break;
  505. case 4: //待审核
  506. $.ligerDialog.warn('该任务处于待审核,不能再报工!');
  507. break;
  508. case 5: //审核通过
  509. $.ligerDialog.warn('该任务审核已经通过,不能再报工!');
  510. break;
  511. case -1: ;//已驳回
  512. break;
  513. }
  514. } else { /*** 如果点击该日期格子有日志**/
  515. switch (parseInt(grid.selected[0].task_state)) {
  516. case 0: //未接收
  517. if (confirm('该任务还未接收,您现在要接收该任务吗?')){
  518. receive_task("unproject",grid.selected[0].universalid);
  519. }
  520. //$.ligerDialog.confirm('该任务还未接收,您现在要接收该任务吗?',
  521. //function (yes) { if (yes){receive_task("unproject",grid.selected[0].universalid);} });
  522. break;
  523. case 1: //进行中
  524. var progress = data[0].progress_;
  525. var progress_count = data[0].progress_count;
  526. var taskid = data[0].taskid;
  527. var logdate = data[0].logdate;
  528. var worktime = data[0].worktime;
  529. var tasktitle = data[0].tasktitle;
  530. var logdtaile = data[0].logdtaile;
  531. var remark = data[0].remark;
  532. var cost = data[0].cost;
  533. var log_affix = data[0].log_affix;
  534. getTodayWorkTime($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  535. var s = "&taskid="+taskid + "&worktime="+worktime + "&log_affix="+log_affix + "&progress_count="+progress_count + "&logdate="+encodeURI(encodeURI(logdate)) + "&progress="+progress
  536. +"&tasktitle="+encodeURI(encodeURI(tasktitle)) + "&logdtaile="+encodeURI(encodeURI(logdtaile)) + "&remark="+encodeURI(encodeURI(remark)) + "&id="+id + "&cost="+cost + "&today_worktime="+today_worktime ;
  537. infoDialog = $.ligerDialog.open({ url : 'mtTaskCenterMgr.do?task=toEditWorkLog'+s, height: 430,width:700, title: '修改任务日志(非项目任务)'});
  538. break;
  539. case 4: //待审核
  540. $.ligerDialog.warn('该任务处于待审核,不能再报工!');
  541. break;
  542. case 5: //审核通过
  543. $.ligerDialog.warn('该任务审核已经通过,不能再报工!');
  544. break;
  545. case -1: ;//已驳回
  546. var progress = data[0].progress_;
  547. var progress_count = data[0].progress_count;
  548. var taskid = data[0].taskid;
  549. var logdate = data[0].logdate;
  550. var worktime = data[0].worktime;
  551. var tasktitle = data[0].tasktitle;
  552. var logdtaile = data[0].logdtaile;
  553. var remark = data[0].remark;
  554. var cost = data[0].cost;
  555. var log_affix = data[0].log_affix;
  556. getTodayWorkTime($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  557. var s = "&taskid="+taskid + "&worktime="+worktime + "&cost="+cost + "&log_affix="+log_affix + "&progress_count="+progress_count + "&logdate="+encodeURI(encodeURI(logdate)) + "&progress="+progress
  558. +"&tasktitle="+encodeURI(encodeURI(tasktitle)) + "&logdtaile="+encodeURI(encodeURI(logdtaile)) + "&remark="+encodeURI(encodeURI(remark)) + "&id="+id + "&today_worktime="+today_worktime ;
  559. infoDialog = $.ligerDialog.open({ url : 'mtTaskCenterMgr.do?task=toEditWorkLog'+s, height: 430,width:700, title: '修改任务日志(非项目任务)'});
  560. break;
  561. }
  562. }
  563. }
  564. });
  565. } else { // 点击项目任务日志
  566. getTodayWorkTime_p($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  567. var url="mtDiaryMgr.do?task=date_wd_fc&task_id="+grid.selected[0].universalid+"&times="+Math.random()+"&start="+$.fullCalendar.formatDate(start, "yyyy-MM-dd");
  568. $.ajax({
  569. type: "POST",
  570. url:url,
  571. dataType:"json",
  572. success:function(data){
  573. if(data.length>0){ // 如果点击有日志
  574. switch (parseInt(grid.selected[0].task_state)) {
  575. case 1: //未接收
  576. if (confirm('该任务还未接收,您现在要接收该任务吗?')){
  577. receive_task("project",grid.selected[0].universalid);
  578. }
  579. // $.ligerDialog.confirm('该任务还未接收,您现在要接收该任务吗?',
  580. //function (yes) { if (yes){receive_task("project",grid.selected[0].universalid);} });
  581. break;
  582. case 2: //进行中
  583. $("#wd_id").val(data[0].universalid);
  584. $("#editDiaryDate").html($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  585. $("#editTaskName").html(grid.selected[0].task_name );
  586. $("#editProjectName").html(grid.selected[0].project_name);
  587. $("#editManHour").val(data[0].man_hour);
  588. $("#editTaskFinishPer").val(data[0].finish_percent);
  589. $("#editcomments").val(data[0].comments == null ? "" : data[0].comments);
  590. $("#editCost").val(data[0].cost);
  591. $("#wd_finish_percent").val(data[0].finish_percent);
  592. $("#wd_man_hour").val(data[0].man_hour);
  593. $("#edittype").find("option[value="+data[0].type+"]").attr("selected",true);
  594. $("#edittask_isfinished").find("option[value="+0+"]").attr("selected",true);
  595. $("#editDiaryContent").val(data[0].remark == null ? "" : data[0].remark);
  596. var diary_affix = data[0].diary_affix;
  597. editViewFileHtml(diary_affix, "task_affix_id_edit",true,5);
  598. event_task={"finish_percent":data[0].finish_percent_current,"task_id":data[0].task_id};
  599. editworkdiaryDialog=$.ligerDialog.open({height: 350,width:500, target: $("#editWorkDiary"),title:"修改报工(项目任务)",
  600. buttons:[{
  601. text : '更新',
  602. onclick : function(item, dialog) {
  603. updateWorkDiary();
  604. }},{
  605. text : '删除',
  606. onclick : function(item, dialog) {
  607. deleteWorkDiary();
  608. }
  609. },{
  610. text : '取消',
  611. onclick : function(item, dialog) {
  612. dialog.hidden();
  613. }
  614. }]
  615. });
  616. break;
  617. case 8: //已驳回
  618. $("#wd_id").val(data[0].universalid);
  619. $("#editDiaryDate").html($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  620. $("#editTaskName").html(grid.selected[0].task_name );
  621. $("#editProjectName").html(grid.selected[0].project_name);
  622. $("#editManHour").val(data[0].man_hour);
  623. $("#editTaskFinishPer").val(data[0].finish_percent);
  624. $("#editcomments").val(data[0].comments == null ? "" : data[0].comments);
  625. $("#editCost").val(data[0].cost);
  626. $("#wd_finish_percent").val(data[0].finish_percent);
  627. $("#wd_man_hour").val(data[0].man_hour);
  628. $("#edittype").find("option[value="+data[0].type+"]").attr("selected",true);
  629. $("#edittask_isfinished").find("option[value="+0+"]").attr("selected",true);
  630. $("#editDiaryContent").val(data[0].remark == null ? "" : data[0].remark);
  631. var diary_affix = data[0].diary_affix;
  632. editViewFileHtml(diary_affix, "task_affix_id_edit",true,5);
  633. editworkdiaryDialog=$.ligerDialog.open({height: 350,width:500, target: $("#editWorkDiary"),title:"修改报工(项目任务)",
  634. buttons:[{
  635. text : '更新',
  636. onclick : function(item, dialog) {
  637. updateWorkDiary();
  638. }},{
  639. text : '删除',
  640. onclick : function(item, dialog) {
  641. deleteWorkDiary();
  642. }
  643. },{
  644. text : '取消',
  645. onclick : function(item, dialog) {
  646. dialog.hidden();
  647. }
  648. }]
  649. });
  650. break;
  651. case 6: //待审核
  652. $.ligerDialog.warn('该任务处于待审核,不能再报工!');
  653. break;
  654. case 7: //审核通过
  655. $.ligerDialog.warn('该任务审核已经通过,不能再报工!');
  656. break;
  657. case 4: //任务退回
  658. $.ligerDialog.warn('该任务审核已经退回,不能再报工!');
  659. break;
  660. }
  661. }else{ // 如果点击没有日志
  662. switch (parseInt(grid.selected[0].task_state)) {
  663. case 1: //未接收
  664. if (confirm('该任务还未接收,您现在要接收该任务吗?')){
  665. receive_task("project",grid.selected[0].universalid);
  666. }
  667. // $.ligerDialog.confirm('该任务还未接收,您现在要接收该任务吗?',
  668. // function (yes) { if (yes){receive_task("project",grid.selected[0].universalid);} });
  669. break;
  670. case 2: //进行中
  671. $("#diaryDate").html($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  672. $("#taskName").html(grid.selected[0].task_name );
  673. $("#projectName").html(grid.selected[0].project_name );
  674. $("#manHour").val("");
  675. $("#taskFinishPer").val("");
  676. $("#type").find("option:first").attr("selected",true);
  677. $("#diaryContent").val("");
  678. $("#comments").val("");
  679. editViewFileHtml("", "task_affix_id");
  680. workdiaryDialog=$.ligerDialog.open({height: 350,width:500, target: $("#addWorkDiary"),title:"添加报工(项目任务)",
  681. buttons:[{
  682. text : '提交',
  683. onclick : function(item, dialog) {
  684. addWorkDiary();
  685. }},{
  686. text : '取消',
  687. onclick : function(item, dialog) {
  688. dialog.hidden();
  689. }
  690. }]
  691. });
  692. break;
  693. case 8: //已驳回
  694. $.ligerDialog.warn('该任务已经驳回,请先修改报工!');
  695. break;
  696. case 6: //待审核
  697. $.ligerDialog.warn('该任务处于待审核,不能再报工!');
  698. break;
  699. case 7: //审核通过
  700. $.ligerDialog.warn('该任务审核已经通过,不能再报工!');
  701. break;
  702. case 4: //任务退回
  703. $.ligerDialog.warn('该任务审核已经退回,不能再报工!');
  704. break;
  705. }
  706. }
  707. }
  708. });
  709. }
  710. /* } else { // 如果用户勾选了非任务报工
  711. getTodayWorkTime($.fullCalendar.formatDate(start, "yyyy-MM-dd"));
  712. infoDialog = $.ligerDialog.open({url : 'mtDiaryMgr.do?task=unTaskDiary&logdate=' + $.fullCalendar.formatDate(start, "yyyy-MM-dd")
  713. +"&today_worktime=" + today_worktime + "&time="+ new Date().getTime(),
  714. height: 430,width:700, title: '新增任务报工(非任务) ' });
  715. } */
  716. }
  717. });
  718. });
  719. cssFunction();
  720. }
  721. function cssFunction(){
  722. $(".fc-header-right").append("<div style='float:left;background-color: #0033FF;width: 99px;height: 10px;margin-left:5px;margin-top:5px;margin-right:5px'></div><div style='float:left; margin:5px;'>项目任务</div>");
  723. $(".fc-header-right").append("<div style='float:left;background-color: #00BCE2;width: 99px;height: 10px;margin:5px'></div><div style='float:left; margin:5px;'>非项目任务</div>");
  724. $(".fc-header-right").append("<div style='float:left;background-color: #56B10E;width: 99px;height: 10px;margin:5px'></div><div style='float:left; margin:5px;'>非任务</div>");
  725. }
  726. function toCreateWorkLog(task_id,type,start,task_name){
  727. if (finish_percent_task == null) finish_percent_task=0;
  728. getTodayWorkTime(start);
  729. infoDialog = $.ligerDialog.open({url : 'mtTaskCenterMgr.do?task=toCreateWorkLog&dateTime=' + start
  730. + "&taskId=" + task_id+ "&progress_count=" + finish_percent_task +"&today_worktime=" + today_worktime + "&tasktitle="+encodeURI(encodeURI(task_name))+ "&time="+ new Date().getTime(),
  731. height: 430,width:700, title: '新增任务报工(非项目任务) ' });
  732. }
  733. function getTodayWorkTime (date_time){
  734. $.ajax({
  735. type:"POST",
  736. url:"mtDiaryMgr.do?task=getTodayWorkTime&time=" + new Date().getTime(),
  737. data : {"date_time":date_time},
  738. cache:false,
  739. async:false,
  740. dataType:"text",
  741. success:function(data){
  742. today_worktime = data;
  743. },
  744. error:showAjaxError
  745. });
  746. }
  747. function receive_task(type,id){
  748. if (type == "unproject"){
  749. $.ajax({
  750. type: "POST",
  751. url: "mtTaskCenterMgr.do?task=operateTask&universalid="+id + "&status=1&time="+ new Date().getTime(),
  752. success: function (data) {
  753. $.ligerDialog.success('任务已接收!');
  754. grid.loadData();
  755. },
  756. error : function() {
  757. alert(msg_error);
  758. }
  759. });
  760. } else if (type == "project"){
  761. var url="mtTaskMgr.do?task=do_task_state&task_id="+id+"&task_state=2";
  762. var param={};
  763. sendAsyncAjax(param,url+"&time="+ new Date().getTime(), "json", function(data) {
  764. if(data.i>0){
  765. $.ligerDialog.success('任务已接收!');
  766. grid.loadData();
  767. }else{
  768. $.ligerDialog.error("操作失败!");
  769. }
  770. });
  771. } else { // 批量接收任务
  772. }
  773. }
  774. function showWaittingDialog(){
  775. waittingDialog = $.ligerDialog.waitting("正在提交中,请稍后……");
  776. }
  777. function closeWaittingDialog(){
  778. waittingDialog.close();
  779. }
  780. function emptyCalendar(){
  781. $('#center').empty();
  782. }
  783. function showSuccessDialog(){
  784. $.ligerDialog.success('删除成功!');
  785. }
  786. function showSuccessDialog_submit(){
  787. $.ligerDialog.success('提交成功!');
  788. }
  789. /********************************项目任务有关的function******************************************/
  790. function getTodayWorkTime_p (date_time){
  791. $.ajax({
  792. type:"POST",
  793. url:"mtDiaryMgr.do?task=getTodayWorkTime&time=" + new Date().getTime(),
  794. data : {"date_time":date_time},
  795. cache:false,
  796. async:false,
  797. dataType:"text",
  798. success:function(data){
  799. var i = data;
  800. $("#worktime_msg").html("<font color='blue'>&nbsp;[本日已报工" + i + "个小时]</font>");
  801. $("#worktime_msg_").html("<font color='blue'>&nbsp;[本日已报工" + i + "个小时]</font>");
  802. var t = 7.5 - i > 0 ? 7.5 - i : 0;
  803. $("#manHour").val(t);
  804. $("#today_worktime").val(i);
  805. },
  806. error:showAjaxError
  807. });
  808. }
  809. function deleteWorkDiary(){
  810. if (!confirm("您确定要删除该记录吗?")){
  811. return;
  812. }
  813. var wd_id=$("#wd_id").val();
  814. var diary_date=$("#editDiaryDate").html();
  815. var msgType = tmsMsgRemindUtil.getSelectResult("editWorkDiaryMsgPanel");
  816. $.ajax({
  817. type:"POST",
  818. url:"mtDiaryMgr.do?task=delWorkDiary&time=" + new Date().getTime(),
  819. data : {"task_id":event_task.task_id,"wd_id":wd_id,"diary_date":diary_date,"msgType":msgType},
  820. timeout:30000,
  821. cache:false,
  822. dataType:"json",
  823. beforeSend:function(){
  824. showWaittingDialog("正在提交中,请稍后……");
  825. editworkdiaryDialog.hidden();
  826. },
  827. success:function(data){
  828. var i = data[0].i;
  829. if(i>0){
  830. $.ligerDialog.success('删除成功!');
  831. closeWaittingDialog();
  832. grid.loadData();
  833. /* emptyCalendar();
  834. loadCalendar("${session.loginID}"); */
  835. calendar.fullCalendar('refetchEvents');
  836. }else{
  837. showAjaxError(null, data.error);
  838. }
  839. },
  840. error:showAjaxError
  841. });
  842. }
  843. function updateWorkDiary(){
  844. $("#editCost").empty();
  845. $("#editcommentsMsg").empty();
  846. var rs = $.validate({
  847. name : "editManHour",
  848. model : [ {
  849. type : "require",
  850. msg : "请填写工时!",
  851. msgBox: "editManHourMsg"
  852. },{
  853. type : "isNumber",
  854. msg : "请填写正确的数字!",
  855. msgBox: "editManHourMsg"
  856. },
  857. {
  858. type : "size",
  859. min:"0.1",
  860. msg : "请填写工时!工时不能小于0.1",
  861. msgBox: "editManHourMsg"
  862. },
  863. {
  864. type : "size",
  865. max: 24,
  866. msg : "本日最大可以提交24小时",
  867. msgBox: "editManHourMsg"
  868. }]
  869. });
  870. rs =$.validate({
  871. name : "editDiaryContent",
  872. model : [ {
  873. type : "require",
  874. msg : "请填写详细描述!",
  875. msgBox: "editDiaryContentMsg"
  876. },{
  877. type : "len",
  878. min : 0,
  879. max : 200,
  880. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  881. msgBox: "editDiaryContentMsg"
  882. }]
  883. }) && rs;
  884. rs =$.validate({
  885. name : "editcomments",
  886. model : [ {
  887. type : "len",
  888. min : 0,
  889. max : 200,
  890. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  891. msgBox: "editcommentsMsg"
  892. }]
  893. }) && rs;
  894. rs =$.validate({
  895. name : "editCost",
  896. model : [ {
  897. type : "isNumber",
  898. msg : "请填写数字!"
  899. }]
  900. }) && rs;
  901. if(rs){
  902. var diary_date=$("#editDiaryDate").html();
  903. var manHour=$("#editManHour").val();
  904. var finish_percent=$("#editTaskFinishPer").val();
  905. var type=$("#edittype").val();
  906. var remark=$("#editDiaryContent").val();
  907. var comments=$("#editcomments").val();
  908. var cost=$("#editCost").val();
  909. var task_isfinished=$("#edittask_isfinished").val();
  910. var msgType = tmsMsgRemindUtil.getSelectResult("editWorkDiaryMsgPanel");
  911. var pattern =/^[0-9]+([.]\d{1,2})?$/;
  912. if(!pattern.test(cost) && cost.replace(/(^\s*)|(\s*$)/g, "") != ""){
  913. $("#editcostMsg").html("<font color='red'>最多保留两位小数</font>");
  914. document.all.editCost.focus();
  915. return;
  916. }
  917. if (cost.replace(/(^\s*)|(\s*$)/g, "") > 0 &&
  918. $("#editcomments").val().replace(/(^\s*)|(\s*$)/g, "") == "") {
  919. $("#editcommentsMsg").append("<font color='red'>请填写费用说明!</font>");
  920. document.all.editcomments.focus();
  921. return;
  922. }
  923. /* var wd_finish_percent=parseFloat($("#wd_finish_percent").val());
  924. //alert(event_task.finish_percent);return;
  925. var current_finish_percent=parseFloat(event_task.finish_percent);
  926. var flag_percent=current_finish_percent+parseFloat(finish_percent)-wd_finish_percent;
  927. var num=100-current_finish_percent+wd_finish_percent;
  928. if(flag_percent>100){
  929. $("#editTaskFinishPerMsg").html("<font color='red'>工作量最多写"+num+"</font>");
  930. return ;
  931. } */
  932. var plan_hour=parseFloat(event_task.plan_hour);
  933. var prac_hour=parseFloat(event_task.prac_hour);
  934. var wd_man_hour=parseFloat($("#wd_man_hour").val());
  935. var add_hour=parseFloat(manHour)+prac_hour-wd_man_hour;
  936. var do_hour=add_hour-plan_hour;
  937. if ((24 - ($("#today_worktime").val() - wd_man_hour)) < $("#editManHour").val()){
  938. alert("一天的总工时不能超过24个小时!");
  939. return;
  940. }
  941. var t = 7.5 - ($("#today_worktime").val() - wd_man_hour);
  942. if (t < $("#editManHour").val()){
  943. if (!confirm("您本日的报工已超过7.5个小时,确定要提交吗?")){
  944. return;
  945. }
  946. }
  947. if(do_hour>0){
  948. if(!confirm("工时已超出计划工时"+do_hour+"个小时,是否继续?")){
  949. return ;
  950. }
  951. }
  952. var sfz = document.getElementsByName("task_affix_id_edit");
  953. var sfzEvalue = "";
  954. for(var i=0;i<sfz.length;i++){
  955. if(""!=sfz[i].value){
  956. sfzEvalue=sfzEvalue + sfz[i].value +",";
  957. }
  958. }
  959. $.ajax({
  960. type:"POST",
  961. url:"mtDiaryMgr.do?task=editWorkDiary&time=" + new Date().getTime(),
  962. data : {"task_id":event_task.task_id,"manHour":manHour,"cost":cost,"diary_affix":sfzEvalue,"diary_date":diary_date,"task_isfinished":task_isfinished,"type":type,"remark":encodeURI(remark),"msgType":msgType,"comments":encodeURI(comments)},
  963. timeout:30000,
  964. cache:false,
  965. dataType:"json",
  966. beforeSend:function(){
  967. showWaittingDialog("正在提交中,请稍后……");
  968. editworkdiaryDialog.hidden();
  969. },
  970. success:function(data){
  971. var i = data[0].i;
  972. if(i>0){
  973. $.ligerDialog.warn('报工已修改!');
  974. closeWaittingDialog();
  975. grid.loadData();
  976. /* emptyCalendar();
  977. loadCalendar("${session.loginID}"); */
  978. calendar.fullCalendar('refetchEvents');
  979. }else{
  980. showAjaxError(null, data.error);
  981. }
  982. },
  983. error:showAjaxError
  984. });
  985. }
  986. }
  987. function addWorkDiary(){
  988. $("#costMsg").empty();
  989. $("#commentsMsg").empty();
  990. var sfz = document.getElementsByName("task_affix_id");
  991. var sfzEvalue = "";
  992. for(var i=0;i<sfz.length;i++){
  993. if(""!=sfz[i].value){
  994. sfzEvalue=sfzEvalue + sfz[i].value +",";
  995. }
  996. }
  997. var rs = $.validate({
  998. name : "manHour",
  999. model : [ {
  1000. type : "require",
  1001. msg : "请填写工时!",
  1002. msgBox: "manHourMsg"
  1003. },{
  1004. type : "isNumber",
  1005. msg : "请填写正确的数字!",
  1006. msgBox: "manHourMsg"
  1007. },
  1008. {
  1009. type : "size",
  1010. min:"0.1",
  1011. msg : "请填写工时!工时不能小于0.1",
  1012. msgBox: "manHourMsg"
  1013. },
  1014. {
  1015. type : "size",
  1016. max: 24,
  1017. msg : "本日最大可以提交24小时",
  1018. msgBox: "manHourMsg"
  1019. }]
  1020. });
  1021. rs =$.validate({
  1022. name : "diaryContent",
  1023. model : [ {
  1024. type : "require",
  1025. msg : "请填写详细描述!",
  1026. msgBox: "diaryContentMsg"
  1027. },{
  1028. type : "len",
  1029. min : 0,
  1030. max : 200,
  1031. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  1032. msgBox: "diaryContentMsg"
  1033. }]
  1034. }) && rs;
  1035. rs =$.validate({
  1036. name : "comments",
  1037. model : [ {
  1038. type : "len",
  1039. min : 0,
  1040. max : 200,
  1041. msg : "描述长度须少于200个字符,一个汉字占2个字符!",
  1042. msgBox: "commentsMsg"
  1043. }]
  1044. }) && rs;
  1045. rs =$.validate({
  1046. name : "cost",
  1047. model : [ {
  1048. type : "isNumber",
  1049. msg : "请填写数字!"
  1050. }]
  1051. }) && rs;
  1052. if(rs){
  1053. var cost=$("#cost").val();
  1054. var pattern =/^[0-9]+([.]\d{1,2})?$/;
  1055. if(!pattern.test(cost) && cost.replace(/(^\s*)|(\s*$)/g, "") != ""){
  1056. $("#costMsg").html("<font color='red'>最多保留两位小数</font>");
  1057. document.all.cost.focus();
  1058. return;
  1059. }
  1060. if (cost.replace(/(^\s*)|(\s*$)/g, "") > 0 &&
  1061. $("#comments").val().replace(/(^\s*)|(\s*$)/g, "") == "") {
  1062. $("#commentsMsg").append("<font color='red'>请填写费用说明!</font>");
  1063. document.all.comments.focus();
  1064. return;
  1065. }
  1066. var diary_date=$("#diaryDate").html();
  1067. var manHour=$("#manHour").val();
  1068. /* var finish_percent=$("#taskFinishPer").val(); */
  1069. var type=$("#type").val();
  1070. var remark=$("#diaryContent").val();
  1071. var comments=$("#comments").val();
  1072. var task_isfinished=$("#task_isfinished").val();
  1073. var msgType = tmsMsgRemindUtil.getSelectResult("addWorkDiaryMsgPanel");
  1074. /* var current_finish_percent=grid.selected[0].finish_percent;
  1075. current_finish_percent=parseFloat(current_finish_percent);
  1076. var flag_percent=current_finish_percent+parseFloat(finish_percent);
  1077. var num=100-current_finish_percent;
  1078. if(flag_percent>100){
  1079. $("#taskFinishPerMsg").html("<font color='red'>工作量最多写"+num+"</font>");
  1080. return ;
  1081. } */
  1082. var plan_hour=parseFloat(grid.selected[0].plan_hour);
  1083. var prac_hour=parseFloat(grid.selected[0].prac_hour);
  1084. var add_hour=parseFloat(manHour)+prac_hour;
  1085. var do_hour=add_hour-plan_hour;
  1086. if ((24 - $("#today_worktime").val() - $("#manHour").val()) < 0){
  1087. alert("一天的总工时不能超过24个小时!");
  1088. return;
  1089. }
  1090. var t = 7.5 - $("#today_worktime").val() - $("#manHour").val();
  1091. if (t < 0){
  1092. if (!confirm("您本日的报工已超过7.5个小时,确定要提交吗?")){
  1093. return;
  1094. }
  1095. }
  1096. if(do_hour>0){
  1097. if(!confirm("工时已超出计划工时"+do_hour+"个小时,是否继续?")){
  1098. return ;
  1099. }
  1100. }
  1101. $.ajax({
  1102. type:"POST",
  1103. url:"mtDiaryMgr.do?task=addWorkDiary&time=" + new Date().getTime(),
  1104. data : {"task_id":grid.selected[0].universalid,"manHour":manHour,"diary_affix":sfzEvalue,"cost":cost,"task_isfinished":task_isfinished,"diary_date":diary_date,"type":type,"remark":encodeURI(remark),"msgType":msgType,"comments":encodeURI(comments)},
  1105. timeout:30000,
  1106. cache:false,
  1107. dataType:"text",
  1108. beforeSend:function(){
  1109. showWaittingDialog("正在提交中,请稍后……");
  1110. workdiaryDialog.hidden();
  1111. },
  1112. success:function(data){
  1113. var i = data;
  1114. if(i>0){
  1115. $.ligerDialog.warn('报工已添加!');
  1116. closeWaittingDialog();
  1117. grid.loadData();
  1118. /* emptyCalendar();
  1119. loadCalendar("${session.loginID}"); */
  1120. calendar.fullCalendar('refetchEvents');
  1121. }else{
  1122. showAjaxError(null, data.error);
  1123. }
  1124. },
  1125. error:showAjaxError
  1126. });
  1127. }
  1128. }
  1129. function changefp(obj){
  1130. var finish_per=$(obj).val();
  1131. if(""==finish_per){
  1132. $("#taskFinishPerMsg").html("");
  1133. return;
  1134. }
  1135. var i=finish_per.indexOf(".");
  1136. var j=finish_per.indexOf("-");
  1137. if(isNaN(finish_per)){
  1138. $("#taskFinishPerMsg").html("<font color='red'>工作量只能为正整数</font>");
  1139. return false;
  1140. }else if(i!=-1 && j!=-1 ){
  1141. $("#taskFinishPerMsg").html("<font color='red'>工作量只能为正整数</font>");
  1142. return false;
  1143. }
  1144. $("#taskFinishPerMsg").html("");
  1145. $(obj).val(parseInt(finish_per));
  1146. }
  1147. function receive_taskAll(){
  1148. if (grid.selected.length == 0){
  1149. $.ligerDialog.warn('请选择您要接收的任务!');
  1150. return;
  1151. }
  1152. var action_url = "";
  1153. if ($("#unp_project_").is(":visible")){
  1154. for (var i = 0; i < grid.selected.length; i++){
  1155. if (grid.selected[i].task_state != "0"){
  1156. $.ligerDialog.warn('您所选的任务中有一个或是多个任务已经接收,不能再接收!');
  1157. return;
  1158. }
  1159. }
  1160. action_url = "mtTaskCenterMgr.do?task=batchOperateTask&status=1";
  1161. } else if ($("#project_").is(":visible")){
  1162. for (var i = 0; i < grid.selected.length; i++){
  1163. if (grid.selected[i].task_state != "1"){
  1164. $.ligerDialog.warn('您所选的任务中有一个或是多个任务已经接收,不能再接收!');
  1165. return;
  1166. }
  1167. }
  1168. action_url = "mtTaskMgr.do?task=batchReceiveTask&task_state=2";
  1169. }
  1170. if (!confirm("您确定要接收所选任务吗?")){
  1171. return;
  1172. }
  1173. operateTaskStatus(action_url,"所选任务已接收!");
  1174. }
  1175. function reback_taskAll(){
  1176. if (grid.selected.length == 0){
  1177. $.ligerDialog.warn('请选择您要退回的任务!');
  1178. return;
  1179. }
  1180. var action_url = "";
  1181. if ($("#unp_project_").is(":visible")){
  1182. for (var i = 0; i < grid.selected.length; i++){
  1183. if (grid.selected[i].task_state != "0" && grid.selected[i].task_total > 0){
  1184. $.ligerDialog.warn('您所选的任务中有一个或是多个任务有报工,如要退回请先删除相关日志!');
  1185. return;
  1186. }
  1187. }
  1188. action_url = "mtTaskCenterMgr.do?task=batchOperateTask&status=2";
  1189. } else if ($("#project_").is(":visible")){
  1190. for (var i = 0; i < grid.selected.length; i++){
  1191. if (grid.selected[i].task_state != "1" && grid.selected[i].task_total > 0){
  1192. $.ligerDialog.warn('您所选的任务中有一个或是多个任务有报工,如要退回请先删除相关日志!');
  1193. return;
  1194. }
  1195. }
  1196. action_url = "mtTaskMgr.do?task=batchReceiveTask&task_state=4";
  1197. }
  1198. if (!confirm("您确定要退回所选任务吗?")){
  1199. return;
  1200. }
  1201. operateTaskStatus(action_url,"所选任务已退回!");
  1202. }
  1203. function operateTaskStatus(action_url,info){
  1204. var data_string = "";
  1205. for (var i = 0; i < grid.selected.length; i++){
  1206. var json_string = "{\"universalid\":" + grid.selected[i].universalid + "}";
  1207. if (i < grid.selected.length - 1){
  1208. data_string += json_string + ",";
  1209. } else {
  1210. data_string += json_string;
  1211. }
  1212. }
  1213. data_string = {data_task:"[" + data_string + "]"};
  1214. $.ajax({
  1215. type:"POST",
  1216. url: action_url + "&time=" + new Date().getTime(),
  1217. data : data_string,
  1218. timeout:30000,
  1219. cache:false,
  1220. dataType:"text",
  1221. beforeSend:function(){
  1222. showWaittingDialog("正在提交中,请稍后……");
  1223. },
  1224. success:function(data){
  1225. var i = data;
  1226. if(i == grid.selected.length){
  1227. $.ligerDialog.success(info);
  1228. closeWaittingDialog();
  1229. grid.loadData();
  1230. /* emptyCalendar();
  1231. loadCalendar("${session.loginID}"); */
  1232. calendar.fullCalendar('refetchEvents');
  1233. }else{
  1234. showAjaxError(null, data.error);
  1235. }
  1236. },
  1237. error:showAjaxError
  1238. });
  1239. }
  1240. </script>
  1241. </head>
  1242. <body>
  1243. <div class="tc_b">
  1244. <div id="left" style="float:left;width:100%;">
  1245. <div class="tc_r">
  1246. <div class="tr_con b5 f4">
  1247. <div class="fl f4">
  1248. <img src="/shares/images/master1/wdrw_ico.png" width="25" height="31" />&nbsp;我的任务<span id="addUser" ></span>
  1249. </div>
  1250. <div class="fl f4" style="margin-left:30px;">
  1251. 任务状态:
  1252. </div>
  1253. <div class="fl mar6">
  1254. <div id="project_">
  1255. <input name="task_state_name" id="task_state_name" type="text"/>
  1256. <input name="task_state" id="task_state" type="hidden"/>
  1257. </div>
  1258. <div id="unp_project_" style="display: none">
  1259. <input name="unp_task_state_name" id="unp_task_state_name" type="text"/>
  1260. <input name="unp_task_state" id="unp_task_state" type="hidden"/>
  1261. </div>
  1262. </div>
  1263. <!-- <div class="fl f4" style="margin-left:30px;">
  1264. <input name="unTask" id="unTask" type="checkbox"/>&nbsp;非任务报工
  1265. </div> -->
  1266. </div>
  1267. <div class="tr_right_bg" style="position:relative;">
  1268. <div id="layout1">
  1269. <div position="left" title="我的任务列表">
  1270. <div class="forum-container task-form" id="taskForm">
  1271. <table style="width:95%">
  1272. <tr>
  1273. <td style="width:90px;text-align: center;height: 30px;" colspan="2" >
  1274. <input name="task_type" id="project_task" type="radio" value="P" onclick="change_P_Task();" checked="checked"/><a onclick="change_P_Task();">项目任务</a> &nbsp;&nbsp;&nbsp;&nbsp;
  1275. <input name="task_type" id="unProject_task" type="radio" value="UNP" onclick="change_UNP_Task();"/><a onclick="change_UNP_Task();">非项目任务</a>
  1276. <br>
  1277. </td>
  1278. </tr>
  1279. <tr>
  1280. <td style="width:90px;text-align: center;">
  1281. <input class="l-button" name="receive_task" id="receive_task" type="button" value="接收任务" onclick="receive_taskAll();"/>
  1282. </td>
  1283. <td style="width:90px;text-align: center;height: 30px;">
  1284. <input class="l-button" name="receive_task" id="receive_task" type="button" value="退回任务" onclick="reback_taskAll();"/>
  1285. <br>
  1286. </td>
  1287. </tr>
  1288. </table>
  1289. </div>
  1290. <div id="navtab1" style=" overflow:scroll"></div>
  1291. </div>
  1292. <div position="center" title="报工视图"style=" overflow:scroll">
  1293. <div id="center"></div>
  1294. </div>
  1295. </div>
  1296. </div>
  1297. </div>
  1298. </div>
  1299. <%@ include file="/yw/master1_ytpm/task/info/left_task.jsp"%>
  1300. </div>
  1301. <%--添加报工(项目任务) --%>
  1302. <div id="addWorkDiary" class="forum-container task-form" style="display: none">
  1303. <table class="workDiaryTable" >
  1304. <tr>
  1305. <td class="left-text" >日期<font color="red" >*</font>:</td>
  1306. <td>
  1307. <label id="diaryDate"></label>
  1308. </td>
  1309. </tr>
  1310. <tr>
  1311. <td class="left-text" width="20%">任务名称:</td>
  1312. <td >
  1313. <label id="taskName" ></label>
  1314. </td>
  1315. </tr>
  1316. <tr>
  1317. <td class="left-text" width="20%">所属项目:</td>
  1318. <td >
  1319. <label id="projectName" name="projectName" style=""></label>
  1320. </td>
  1321. </tr>
  1322. <tr>
  1323. <td class="left-text" >工时<font color="red" >*</font>:</td>
  1324. <td>
  1325. <input type="text" id = "manHour" name = "manHour" class="short-input " />&nbsp;h&nbsp;&nbsp;
  1326. <div id="worktime_msg" style="display: inline;"></div>
  1327. <label id="manHourMsg"></label>
  1328. </td>
  1329. </tr>
  1330. <!-- <tr>
  1331. <td class="left-text" >工作量<font color="red" >*</font>:</td>
  1332. <td>
  1333. <input type="text" id="taskFinishPer" name="taskFinishPer" onkeyup="changefp(this)" onchange="changefp(this)" class="short-input " />&nbsp;%&nbsp;
  1334. <label id="taskFinishPerMsg"></label>
  1335. <br/><font color="red">今日完成量占任务百分比</font>
  1336. </td>
  1337. </tr> -->
  1338. <tr>
  1339. <td class="left-text" >报工类型:</td>
  1340. <td>
  1341. <%-- 不知道什么原因,如果只有一个select,那么这个select的下拉框会异常,只在ie8浏览器下会出现,因此增加一个下拉框 20120903 tangj--%>
  1342. <select style="display: none"><option>1</option></select>
  1343. <select id="type" name ="type">
  1344. <c:forEach items="${pm_work_diary }" var="obj">
  1345. <option value="${obj.dvalue}">${obj.dname } </option>
  1346. </c:forEach>
  1347. </select>
  1348. </td>
  1349. </tr>
  1350. <tr>
  1351. <td class="left-text" >任务状态<font color="red" >*</font>:</td>
  1352. <td>
  1353. <select id="task_isfinished">
  1354. <option value="0">进行中</option>
  1355. <option value="1">已完成</option>
  1356. </select>
  1357. </td>
  1358. </tr>
  1359. <tr>
  1360. <td class="left-text" >详细描述<font color="red" >*</font>:</td>
  1361. <td>
  1362. <textarea id="diaryContent" name="diaryContent" cols="34" rows="4"></textarea>
  1363. <div id="diaryContentMsg"></div>
  1364. </td>
  1365. </tr>
  1366. <tr>
  1367. <td class="left-text" width="20%">费用总计:</td>
  1368. <td >
  1369. <input type="text" id = "cost" name = "cost" class="short-input " />&nbsp;&nbsp;元
  1370. <label id="costMsg"></label>
  1371. </td>
  1372. </tr>
  1373. <tr>
  1374. <td class="left-text" >费用说明:</td>
  1375. <td>
  1376. <textarea id="comments" name="comments" cols="34" rows="4"></textarea>
  1377. <div id="commentsMsg" style="display: inline;"></div>
  1378. </td>
  1379. </tr>
  1380. <tr>
  1381. <td class="left-text" >附件:</td>
  1382. <form action="" method="post" >
  1383. <td class="left-text">
  1384. <jsp:include page="/include/file.jsp">
  1385. <jsp:param name="fieldName" value="task_affix_id" />
  1386. <jsp:param name="folder" value="pm/bug" />
  1387. <jsp:param name="documentId" value="" />
  1388. <jsp:param name="size" value="15" />
  1389. <jsp:param name="isView" value="1" />
  1390. <jsp:param name="isDelFile" value="1" />
  1391. <jsp:param name="definedCss" value="file-style" />
  1392. </jsp:include>
  1393. <input type="hidden" id="task_affix" name="task_affix" />
  1394. </td>
  1395. </form>
  1396. </tr>
  1397. <!-- <tr id="addTmsWorkDiaryMsgTr">
  1398. <td class="left-text" >提醒方式:</td>
  1399. <td id="addWorkDiaryMsg">
  1400. </td>
  1401. </tr> -->
  1402. </table>
  1403. </div>
  1404. <%--编辑报工(项目任务) --%>
  1405. <div id="editWorkDiary" class="forum-container task-form" style="display: none">
  1406. <input type="hidden" name="wd_id" id="wd_id" />
  1407. <input type="hidden" name="wd_finish_percent" id="wd_finish_percent" />
  1408. <input type="hidden" name="wd_man_hour" id="wd_man_hour" />
  1409. <input type="hidden" name="today_worktime" id="today_worktime" />
  1410. <table class="workDiaryTable">
  1411. <tr>
  1412. <td class="left-text" >日期<font color="red" >*</font>:</td>
  1413. <td>
  1414. <label id="editDiaryDate"></label>
  1415. </td>
  1416. </tr>
  1417. <tr>
  1418. <td class="left-text" width="20%">任务名称:</td>
  1419. <td >
  1420. <label id="editTaskName" name="editTaskName" style=""></label>
  1421. </td>
  1422. </tr>
  1423. <tr>
  1424. <td class="left-text" width="20%">所属项目:</td>
  1425. <td >
  1426. <label id="editProjectName" name="editProjectName" style=""></label>
  1427. </td>
  1428. </tr>
  1429. <tr>
  1430. <td class="left-text" >工时<font color="red" >*</font>:</td>
  1431. <td>
  1432. <input type="text" id = "editManHour" name = "editManHour" class="short-input " />&nbsp;h&nbsp;&nbsp;
  1433. <div id="worktime_msg_" style="display: inline;"></div>
  1434. <label id="editManHourMsg"></label>
  1435. </td>
  1436. </tr>
  1437. <!-- <tr>
  1438. <td class="left-text" >工作量<font color="red" >*</font>:</td>
  1439. <td>
  1440. <input type="text" id="editTaskFinishPer" name="editTaskFinishPer" class="short-input " onkeyup="changefp(this)" onchange="changefp(this)" />&nbsp;%&nbsp;
  1441. <label id="editTaskFinishPerMsg"></label>
  1442. </td>
  1443. </tr> -->
  1444. <tr>
  1445. <td class="left-text" >报工类型:</td>
  1446. <td>
  1447. <%-- 不知道什么原因,如果只有一个select,那么这个select的下拉框会异常,只在ie8浏览器下会出现,因此增加一个下拉框 20120903 tangj--%>
  1448. <select style="display: none"><option>1</option></select>
  1449. <select id="edittype" name ="edittype">
  1450. <c:forEach items="${pm_work_diary }" var="obj">
  1451. <option value="${obj.dvalue}">${obj.dname } </option>
  1452. </c:forEach>
  1453. </select>
  1454. </td>
  1455. </tr>
  1456. <tr>
  1457. <td class="left-text" >任务状态<font color="red" >*</font>:</td>
  1458. <td>
  1459. <select id="edittask_isfinished">
  1460. <option value="0">进行中</option>
  1461. <option value="1">已完成</option>
  1462. </select>
  1463. </td>
  1464. </tr>
  1465. <tr>
  1466. <td class="left-text" >详细描述<font color="red" >*</font>:</td>
  1467. <td>
  1468. <textarea id="editDiaryContent" name="editDiaryContent" cols="34" rows="4"></textarea>
  1469. <div id="editDiaryContentMsg"></div>
  1470. </td>
  1471. </tr>
  1472. <tr>
  1473. <td class="left-text" width="20%">费用:</td>
  1474. <td >
  1475. <input type="text" id = "editCost" name = "editCost" class="short-input " value="0.0"/>&nbsp;&nbsp;元
  1476. <label id="editcostMsg"></label>
  1477. </td>
  1478. </tr>
  1479. <tr>
  1480. <td class="left-text" >费用说明:</td>
  1481. <td>
  1482. <textarea id="editcomments" name="editcomments" cols="34" rows="4"></textarea>
  1483. <div id="editcommentsMsg" style="display: inline;"></div>
  1484. </td>
  1485. </tr>
  1486. <tr>
  1487. <td class="left-text" >附件:</td>
  1488. <td class="left-text">
  1489. <form action="" method="post" >
  1490. <jsp:include page="/include/file.jsp">
  1491. <jsp:param name="fieldName" value="task_affix_id_edit" />
  1492. <jsp:param name="folder" value="pm/bug" />
  1493. <jsp:param name="documentId" value="" />
  1494. <jsp:param name="size" value="15" />
  1495. <jsp:param name="isView" value="1" />
  1496. <jsp:param name="isDelFile" value="1" />
  1497. <jsp:param name="definedCss" value="file-style" />
  1498. </jsp:include>
  1499. <input type="hidden" id="task_affix_edit" name="task_affix_edit" />
  1500. </form>
  1501. </td>
  1502. </tr>
  1503. <!-- <tr id="editWorkDiaryMsgTr">
  1504. <td class="left-text" >提醒方式:</td>
  1505. <td id="editWorkDiaryMsg">
  1506. </td>
  1507. </tr> -->
  1508. </table>
  1509. </div>
  1510. </body>
  1511. </html>