task_list.html 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. {{include "com/inc.html"}}
  2. <!-- Main Header -->
  3. {{include "com/header.html"}}
  4. <!-- Left side column. 权限菜单 -->
  5. {{include "com/menu.html"}}
  6. <div class="content-wrapper">
  7. <section class="content-header">
  8. <h1>
  9. <small></small>
  10. </h1>
  11. <ol class="breadcrumb">
  12. <li><a href="#"><i class="fa fa-dashboard"></i> 任务列表</a></li>
  13. </ol>
  14. </section>
  15. <!-- Main content -->
  16. <section class="content">
  17. <div class="row">
  18. <div class="col-xs-12">
  19. <div class="box">
  20. <div class="box-body">
  21. <div id="status-div" class="col-xs-6 form-inline" style="width: auto;float: right">
  22. <label for="pushModelSelect">状态:
  23. <select class="form-control selectpicker" id="pushModelSelect">
  24. <option value=-1>全部</option>
  25. <option value=0>开启</option>
  26. <option value=1>关闭</option></select></label>
  27. </span>
  28. <span class="input-group date date-picker" id="starttime" data-provide="datepicker">
  29. <input type="text" class="form-control form-filter input-sm" readonly name="starttime" placeholder="开始日期" />
  30. <span class="input-group-addon">
  31. <i class="fa fa-calendar"></i>
  32. </span>
  33. </span>
  34. <span class="input-group date date-picker" id="endtime" data-provide="datepicker">
  35. <input type="text" class="form-control form-filter input-sm" readonly name="endtime" placeholder="结束日期" />
  36. <span class="input-group-addon">
  37. <i class="fa fa-calendar"></i>
  38. </span>
  39. </span>
  40. <input type="button" class="btn btn-sm btn-primary" onclick="exportTask()" value="导出">
  41. <!-- <a type="button" class="btn btn-sm btn-primary" href="/front/group/task/export">导出</a>-->
  42. </div>
  43. <table id="dataTable" class="table table-bordered table-hover">
  44. <thead>
  45. <tr>
  46. <th></th>
  47. <th>公司名称</th>
  48. <th>部门名称</th>
  49. <th>规则名称</th>
  50. <th>项目名称</th>
  51. <th>用户组名称</th>
  52. <th>负责人</th>
  53. <th>清洗数据量</th>
  54. <th>任务状态</th>
  55. <th>完成进度</th>
  56. <th>任务时间</th>
  57. <th>操作</th>
  58. </tr>
  59. </thead>
  60. </table>
  61. </div>
  62. <!-- /.box-body -->
  63. </div>
  64. <!-- /.box -->
  65. </div>
  66. </div>
  67. </section>
  68. </div>
  69. {{include "com/footer.html"}}
  70. <script>
  71. menuActive("/front/group/admin/task/list");
  72. $(function () {
  73. ttable = $('#dataTable').dataTable({
  74. "paging": true,
  75. "lengthChange": false,
  76. "searching": true,
  77. "ordering": false,
  78. "info": true,
  79. "autoWidth": false,
  80. "serverSide": true,
  81. "ajax": {
  82. "url": "/front/group/admin/task/list",
  83. "type": "post",
  84. "data": {"status": "-1"}
  85. },
  86. "language": {
  87. "url": "/dist/js/dataTables.chinese.lang"
  88. },
  89. "fnDrawCallback": function () {
  90. $("ul.pagination").prepend("&nbsp;&nbsp;&nbsp;转到第 <input type='text' id='changePage' style='width:20px;'> 页 <a type='text' href='javascript:void(0);' id='dataTable-btn' style='text-align:center'>GO</a>");
  91. $('#dataTable-btn').click(function (e) {
  92. var redirectpage = 0
  93. if ($("#changePage").val() && $("#changePage").val() > 0) {
  94. var redirectpage = $("#changePage").val() - 1;
  95. }
  96. ttable.page(redirectpage).draw(false);
  97. });
  98. this.api().column(0).nodes().each(function (cell, i) {
  99. cell.innerHTML = i + 1;
  100. });
  101. },
  102. "columns": [
  103. {"data": null, width: "1%"},
  104. {"data": "s_entname", width: "4%"},
  105. {"data": "s_departname", width: "4%"},
  106. {"data": "s_rulename", width: "4%"},
  107. {"data": "s_projectname", width: "4%"},
  108. {"data": "s_groupname", width: "4%"},
  109. {"data": "s_personname", width: "4%"},
  110. {"data": "i_givenum", width: "4%"},
  111. {"data": "s_status", width: "4%"},
  112. {"data": "s_progress", width: "4%"},
  113. {
  114. "data": "_id", width: "4%", render: function (val, a, row) {
  115. let str = ""
  116. if (row['i_starttime'] === undefined) {
  117. str = "未开始"
  118. }else if (row['i_starttime'] && row['i_completetime'] === undefined) {
  119. let dt = new Date()
  120. dt.setTime(parseInt(row['i_starttime']) * 1000);
  121. str = dt.format("yyyy-MM-dd") + " - 未结束"
  122. }else {
  123. let dt = new Date()
  124. let ds = new Date()
  125. dt.setTime(parseInt(row['i_starttime']) * 1000);
  126. ds.setTime(parseInt(row["i_completetime"]) * 1000)
  127. str = dt.format("yyyy-MM-dd") + " - " + ds.format("yyyy-MM-dd")
  128. }
  129. return str
  130. }
  131. },
  132. {
  133. "data": "_id", width: "11%", render: function (val, a, row, pos) {
  134. tmp = '<div>' +
  135. '<a class="btn btn-sm btn-primary" href="/front/user/task/list?grouptaskid=' + val + '&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
  136. '<a class="btn btn-sm btn-warning" onclick="retrieveTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">收回</a>&nbsp;&nbsp;' +
  137. '<a class="btn btn-sm btn-info">质检</a>&nbsp;&nbsp;' +
  138. '<a class="btn btn-sm btn-info" onclick="closeTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +
  139. '</div>';
  140. return tmp
  141. }
  142. }
  143. ],
  144. "initComplete": function () {
  145. $("#dataTable_filter").append($('#status-div'))
  146. }
  147. });
  148. $('.date-picker').datepicker({
  149. language: 'zh-CN',
  150. autoclose: true,
  151. clearBtn: true, //清除按钮
  152. todayBtn: false, //今日按钮
  153. format: "yyyy-mm-dd"
  154. });
  155. $('#starttime').datepicker().on('changeDate', function (e) {
  156. console.log(e)
  157. console.log(e.dates[0])
  158. console.log(e.dates[0].toLocaleDateString())
  159. $('#endtime').datepicker('setStartDate', e.dates[0])
  160. })
  161. // $('#endtime').datepicker().on('changeDate', function (e) {
  162. // console.log(e.timeStamp)
  163. // })
  164. });
  165. // 收回
  166. function retrieveTask(id, sourceinfo, status) {
  167. if (status === "未开始" || status === "进行中") {
  168. $.ajax({
  169. url: "/front/project/task/retrieve",
  170. type: 'POST',
  171. data: {"s_status": status, "taskid": id, "s_sourceinfo": sourceinfo},
  172. success: function (r) {
  173. if (r.success) {
  174. ttable.api().ajax.reload()
  175. } else {
  176. showTip(r.msg);
  177. }
  178. }
  179. })
  180. }else {
  181. showTip("操作不允许")
  182. }
  183. }
  184. function closeTask(id, sourceinfo,status) {
  185. if (status === "未开始") {
  186. showConfirm("确认要关闭当前任务吗?", function () {
  187. $.ajax({
  188. url: "/front/project/task/close",
  189. type: 'POST',
  190. data: {"s_sourceinfo": sourceinfo, "s_status": status, "taskid": id},
  191. success: function (r) {
  192. if (r.success) {
  193. ttable.api().ajax.reload()
  194. } else {
  195. showTip(r.msg);
  196. }
  197. }
  198. })
  199. })
  200. }else {
  201. showTip("操作不允许")
  202. }
  203. }
  204. function exportTask() {
  205. const search = $("[type=search]").val();
  206. let s = $('#starttime').datepicker('getDate').toLocaleDateString()
  207. let sc = Date.parse(new Date(s).toString())/1000
  208. console.log(s, sc)
  209. let e = $('#endtime').datepicker('getDate').toLocaleDateString()
  210. let ec = Date.parse(new Date(e).toString())/1000
  211. console.log(e, ec)
  212. window.open("/front/group/task/export?"+"i_starttime="+sc+"&i_completetime="+ec+"&s_search="+search+"&s_status="+"-1")
  213. }
  214. </script>