task-complete.html 6.1 KB

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