task-list.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <!--#include file="common/_header.html"-->
  5. <link rel="stylesheet" type="text/css" href="lib/select2/select2.min.css" />
  6. <style>
  7. .center{
  8. text-align: center !important;
  9. }
  10. </style>
  11. <title>待办流程任务列表</title>
  12. </head>
  13. <body>
  14. <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 流程管理 <span class="c-gray en">&gt;</span> 流程任务管理 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
  15. <div class="page-container">
  16. <div class="container mb-10">
  17. <form>
  18. <div class="row mb-10">
  19. <div class="col-md-3">
  20. <input type="text" class="input-text" placeholder="输入项目名称" id="projectName">
  21. </div>
  22. <div class="col-md-3">
  23. <select id="processSelect" style="width:100%;" class="select2" data-placeholder="选择流程">
  24. <option value=""></option>
  25. </select>
  26. </div>
  27. <div class="col-md-3">
  28. <select id="orgSelect" style="width:100%;" class="select2" data-placeholder="选择单位">
  29. <option value=""></option>
  30. </select>
  31. </div>
  32. </div>
  33. <div class="row mb-10">
  34. <div class="col-md-3">
  35. <input type="text" class="input-text" placeholder="输入任务名称" id="taskName">
  36. </div>
  37. <div class="col-md-3">
  38. <select id="overtimeSelect" style="width:150px;" class="select2" data-placeholder="是否超时">
  39. <option value=""></option>
  40. <option value="0">未超时任务</option>
  41. <option value="1">已超时任务</option>
  42. </select>
  43. </div>
  44. <div class="col-md-3">
  45. <button id="btnSearch" type="submit" class="btn btn-success"><i class="Hui-iconfont">&#xe665;</i> 查询</button>
  46. <button id="btnReset" type="reset" class="btn btn-default"><i class="Hui-iconfont">&#xe68f;</i> 重置</button>
  47. </div>
  48. </div>
  49. </form>
  50. </div>
  51. <table id="taskList" class="table table-border table-bordered table-bg" style="width:100%;">
  52. <thead>
  53. <tr>
  54. <th scope="col" colspan="9">待办任务列表</th>
  55. </tr>
  56. <tr class="text-c">
  57. <th width="100">任务编号</th>
  58. <th width="150">项目名称</th>
  59. <th width="100">流程名称</th>
  60. <th width="100">任务名称</th>
  61. <th width="130">开始时间</th>
  62. <th width="130">规定完成时间</th>
  63. <th width="100">操作</th>
  64. </tr>
  65. </thead>
  66. <tbody>
  67. </tbody>
  68. </table>
  69. </div>
  70. <!--#include file="common/_footer.html"-->
  71. <!--请在下方写此页面业务相关的脚本-->
  72. <script type="text/javascript" src="lib/My97DatePicker/4.8/WdatePicker.js"></script>
  73. <script type="text/javascript" src="lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
  74. <script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
  75. <script type="text/javascript" src="lib/select2/select2.full.js"></script>
  76. <script type="text/javascript" src="lib/select2/select2.zh-CN.js"></script>
  77. <script id="rowTmpl" type="text/template">
  78. <a href="javascript:procInstDiagram('{{procDefKey}}','{{procInstId}}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe627;</i>进度</a>
  79. <a href="javascript:edit('{{taskId}}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6df;</i>修改</a>
  80. <br/>
  81. <a href="javascript:complete('{{taskId}}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6e1;</i>完成</a>
  82. <a href="javascript:back('{{taskId}}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe66b;</i>退回</a>
  83. </script>
  84. <script type="text/javascript" src="scripts/global.js"></script>
  85. <script type="text/javascript">
  86. function edit(taskId){
  87. layer_show("修改任务","task-detail.html?id=" + taskId,600,500);
  88. }
  89. function complete(taskId){
  90. layer_show("完成任务","task-complete.html?id=" + taskId,600,500);
  91. }
  92. function procInstDiagram(procDefKey,procInstId){
  93. layer_show("流程图","procinst-diagram.html?procDefKey=" + procDefKey + "&procInstId=" + procInstId,800, 600);
  94. }
  95. function back(taskId){
  96. layer_show("退回上一步","task-back.html?id=" + taskId,600,400);
  97. /*
  98. var index = layer.confirm('是否退回到上一步?', {
  99. btn: ['是','否'] //按钮
  100. },
  101. function(){
  102. layer.close(index);
  103. var loadingIndex = layer.load(1, {shade: [0.5,'#fff']});
  104. $.post(global_backend_url + "/task/back",{
  105. taskId : taskId
  106. },function(resp){
  107. layer.close(loadingIndex);
  108. if(resp.result){
  109. $("#btnSearch").click();
  110. }
  111. else{
  112. layer.msg(resp.message);
  113. }
  114. },"json");
  115. }
  116. );
  117. */
  118. }
  119. function reloadList(){
  120. $('#taskList').DataTable().ajax.reload(null,false);
  121. }
  122. $(document).ready(function(){
  123. var loadingIndex = -1;
  124. var processOpts = {
  125. ajax: {
  126. url: global_backend_url + "/procDef/list",
  127. dataType: 'json',
  128. delay: 250,
  129. method:'post',
  130. processResults: function (resp) {
  131. var results = resp.data.data.map(function(item){
  132. return {
  133. id : item.key,
  134. text : item.description
  135. }
  136. });
  137. return {
  138. results: results
  139. }
  140. }
  141. },
  142. language: "zh-CN",
  143. allowClear: true
  144. };
  145. $("#processSelect").select2(processOpts);
  146. $("#overtimeSelect").select2();
  147. var orgOpts = {
  148. ajax: {
  149. url: global_backend_url + "/org/allList",
  150. dataType: 'json',
  151. delay: 250,
  152. method:'post',
  153. processResults: function (resp) {
  154. var results = resp.data.map(function(item){
  155. return {
  156. id : item.orgId,
  157. text : item.orgName
  158. }
  159. });
  160. return {
  161. results: results
  162. }
  163. }
  164. },
  165. language: "zh-CN",
  166. allowClear: true
  167. };
  168. $("#orgSelect").select2(orgOpts);
  169. $('#taskList').dataTable({
  170. ajax: {
  171. url: global_backend_url + "/task/taskList",
  172. type: 'post',
  173. dataFilter: function(responseText){
  174. var jsonData = JSON.parse(responseText);
  175. if(loadingIndex!=-1){
  176. top.layer.close(loadingIndex);
  177. }
  178. // 处理返回json
  179. if(jsonData.result){
  180. return JSON.stringify(jsonData.data);
  181. }
  182. else{
  183. alert(jsonData.message);
  184. return null;
  185. }
  186. },
  187. data: function(searchParams){
  188. // 查询json
  189. searchParams["projectName"] = $("#projectName").val();
  190. searchParams["procDefKey"] = $("#processSelect").val();
  191. searchParams["taskName"] = $("#taskName").val();
  192. searchParams["overtime"] = $("#overtimeSelect").val();
  193. searchParams["orgId"] = $("#orgSelect").val();
  194. searchParams["self"] = 0;
  195. loadingIndex = top.layer.load(0, {shade: [0.1,'#fff']});
  196. }
  197. },
  198. serverSide: true,
  199. searching : false,
  200. ordering: false,
  201. columns: [
  202. {"data": "taskId"},
  203. {"data": "projectName"},
  204. {"data": "processName"},
  205. {"data": "taskName"},
  206. {"data": "createTime"},
  207. {"data": "dueDate"},
  208. {"data":null}
  209. ],
  210. columnDefs: [{
  211. targets:2,
  212. sClass:'center',
  213. bSortable:false,
  214. render: function (data, type, row) {
  215. return row.processName + "v" + row.processVersion
  216. }
  217. },{
  218. targets:6,
  219. sClass:'center',
  220. bSortable:false,
  221. render: function (data, type, row) {
  222. return template("rowTmpl",row);
  223. }
  224. }
  225. ]
  226. });
  227. $("#checkAll").change(function(){
  228. var checked = $(this).is(':checked');
  229. $("input[name='checkItems']").each(function(){
  230. $(this).attr("checked",checked);
  231. });
  232. });
  233. $("#btnSearch").click(function(){
  234. event.preventDefault();
  235. var table = $('#taskList').DataTable();
  236. table.ajax.reload();
  237. });
  238. $("#btnReset").click(function(){
  239. $(".select2").val(null).trigger('change');
  240. });
  241. });
  242. </script>
  243. </body>
  244. </html>