task-finish-detail.html 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>任务详情页</title>
  5. <!--#include file="common/_header.html"-->
  6. </head>
  7. <body>
  8. <article id="app" class="page-container">
  9. <form class="form form-horizontal" id="form1">
  10. <div class="row cl">
  11. <label class="form-label col-xs-4 col-sm-3">任务编号: </label>
  12. <div class="formControls col-xs-8 col-sm-9">
  13. <span v-html="dto.taskId"></span>
  14. </div>
  15. </div>
  16. <div class="row cl">
  17. <label class="form-label col-xs-4 col-sm-3">任务名称: </label>
  18. <div class="formControls col-xs-8 col-sm-9">
  19. <span v-html="dto.taskName"></span>
  20. </div>
  21. </div>
  22. <div class="row cl">
  23. <label class="form-label col-xs-4 col-sm-3">待办事项:</label>
  24. <div class="formControls col-xs-8 col-sm-9">
  25. <dl>
  26. <li v-for="(todo,index) in dto.todoList">
  27. <input type="checkbox" v-model="todo.checked" :value="todo.id"/>
  28. <span v-html="todo.text"></span>
  29. </li>
  30. </dl>
  31. </div>
  32. </div>
  33. <div class="row cl">
  34. <label class="form-label col-xs-4 col-sm-3">经办人:</label>
  35. <div class="formControls col-xs-8 col-sm-9">
  36. <template v-if="dto.assignee!=null">
  37. <span v-html="dto.assignee.realName + '(' + dto.assignee.userName + ')'"></span>
  38. </template>
  39. </div>
  40. </div>
  41. <div class="row cl">
  42. <label class="form-label col-xs-4 col-sm-3">开始时间:</label>
  43. <div class="formControls col-xs-8 col-sm-9">
  44. <input id="txtStartTime" class="input-text Wdate" style="width:180px;" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" :value="dto.createTime"/>
  45. </div>
  46. </div>
  47. <div class="row cl">
  48. <label class="form-label col-xs-4 col-sm-3">规定完成时间:</label>
  49. <div class="formControls col-xs-8 col-sm-9">
  50. <input id="txtDueDate" class="input-text Wdate" style="width:180px;" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" :value="dto.dueDate"/>
  51. </div>
  52. </div>
  53. <div class="row cl">
  54. <label class="form-label col-xs-4 col-sm-3">实际完成时间:</label>
  55. <div class="formControls col-xs-8 col-sm-9">
  56. <input id="txtEndTime" class="input-text Wdate" style="width:180px;" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" :value="dto.endTime"/>
  57. </div>
  58. </div>
  59. <div class="row cl">
  60. <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
  61. <input @click="submit" class="btn btn-primary radius" type="button" value="保存">
  62. </div>
  63. </div>
  64. </form>
  65. </article>
  66. <!--_footer 作为公共模版分离出去-->
  67. <!--#include file="common/_footer.html"-->
  68. <!--/_footer 作为公共模版分离出去-->
  69. <!--请在下方写此页面业务相关的脚本-->
  70. <script type="text/javascript" src="lib/jquery.validation/1.14.0/jquery.validate.js"></script>
  71. <script type="text/javascript" src="lib/jquery.validation/1.14.0/validate-methods.js"></script>
  72. <script type="text/javascript" src="lib/jquery.validation/1.14.0/messages_zh.js"></script>
  73. <script type="text/javascript" src="scripts/global.js"></script>
  74. <script type="text/javascript" src="lib/vue/vue.js"></script>
  75. <script type="text/javascript">
  76. var path = global_backend_url;
  77. //获取url中传参
  78. var id = getQueryString("id");
  79. var app = new Vue({
  80. el:"#app",
  81. data:{
  82. dto:{}
  83. },
  84. mounted:function(){
  85. var loadingIndex = layer.load(1, {shade: [0.1,'#fff']});
  86. var self = this;
  87. $.get(path + "/task/getHistoricTask",{
  88. taskId : id
  89. }, function(json){
  90. layer.close(loadingIndex);
  91. if(json.result){
  92. self.dto = json.data;
  93. }
  94. else{
  95. layer.msg(json.message);
  96. }
  97. },"json");
  98. },
  99. methods:{
  100. submit : function(){
  101. this.dto.startTime = $("#txtStartTime").val();
  102. this.dto.dueDate = $("#txtDueDate").val();
  103. this.dto.endTime = $("#txtEndTime").val();
  104. var loadingIndex = top.layer.load(1, {shade: [0.5,'#fff']});
  105. var idList1 = this.dto.todoList.filter(function(item){
  106. return item.checked;
  107. }).map(function(item){
  108. return item.id;
  109. });
  110. var idList2 = this.dto.todoList.filter(function(item){
  111. return !item.checked;
  112. }).map(function(item){
  113. return item.id;
  114. });
  115. $.ajax({
  116. url: global_backend_url + "/task/saveHistoricTask",
  117. type: "POST", //请求类型
  118. data: JSON.stringify({
  119. taskId: this.dto.taskId,
  120. todoList: idList1,
  121. undoList: idList2,
  122. startTime: this.dto.startTime,
  123. dueDate: this.dto.dueDate,
  124. endTime: this.dto.endTime
  125. }),
  126. dataType:"json",
  127. contentType:"application/json",
  128. success: function(resp){
  129. top.layer.close(loadingIndex);
  130. if(resp.result){
  131. if(parent!=null){
  132. var index = parent.layer.getFrameIndex(window.name);
  133. //layer.close(loadingIndex1);
  134. if(index>=0){
  135. parent.reloadList();
  136. parent.layer.close(index);
  137. }
  138. }
  139. else{
  140. top.layer.msg("修改成功!");
  141. }
  142. }
  143. else{
  144. top.layer.msg("系统异常!" + resp.message);
  145. }
  146. }
  147. });
  148. }
  149. }
  150. });
  151. </script>
  152. <!--/请在上方写此页面业务相关的脚本-->
  153. </body>
  154. </html>