joblog.index.1.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. $(function() {
  2. // 过滤时间
  3. $('#filterTime').daterangepicker({
  4. timePicker: true, //是否显示小时和分钟
  5. timePickerIncrement: 10, //时间的增量,单位为分钟
  6. timePicker12Hour : false, //是否使用12小时制来显示时间
  7. format: 'YYYY-MM-DD HH:mm:ss',
  8. separator : ' - ',
  9. ranges : {
  10. '最近1小时': [moment().subtract('hours',1), moment()],
  11. '今日': [moment().startOf('day'), moment()],
  12. '昨日': [moment().subtract('days', 1).startOf('day'), moment().subtract('days', 1).endOf('day')],
  13. '最近7日': [moment().subtract('days', 6), moment()],
  14. '最近30日': [moment().subtract('days', 29), moment()]
  15. },
  16. opens : 'left', //日期选择框的弹出位置
  17. locale : {
  18. customRangeLabel : '自定义',
  19. applyLabel : '确定',
  20. cancelLabel : '取消',
  21. fromLabel : '起始时间',
  22. toLabel : '结束时间',
  23. daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ],
  24. monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ],
  25. firstDay : 1
  26. }
  27. });
  28. $('#filterTime').val( moment(new Date()).format("YYYY-MM-DD 00:00:00") + ' - ' + moment(new Date()).format("YYYY-MM-DD HH:mm:ss") );
  29. // init date tables
  30. var logTable = $("#joblog_list").dataTable({
  31. "deferRender": true,
  32. "processing" : true,
  33. "serverSide": true,
  34. "ajax": {
  35. url: base_url + "/joblog/pageList" ,
  36. data : function ( d ) {
  37. d.jobGroup = $('#jobGroup').val();
  38. d.jobName = $('#jobName').val();
  39. d.filterTime = $('#filterTime').val();
  40. }
  41. },
  42. "searching": false,
  43. "ordering": false,
  44. //"scrollX": false,
  45. "columns": [
  46. { "data": 'id', "bSortable": false, "visible" : false},
  47. {
  48. "data": 'jobGroup',
  49. "visible" : false,
  50. "bSortable": false,
  51. "render": function ( data, type, row ) {
  52. var groupMenu = $("#jobGroup").find("option");
  53. for ( var index in $("#jobGroup").find("option")) {
  54. if ($(groupMenu[index]).attr('value') == data) {
  55. return $(groupMenu[index]).html();
  56. }
  57. }
  58. return data;
  59. }
  60. },
  61. { "data": 'jobName'},
  62. { "data": 'jobCron', "visible" : false},
  63. { "data": 'jobDesc', "visible" : false},
  64. { "data": 'jobClass', "visible" : false},
  65. {
  66. "data": 'jobData',
  67. "visible" : true,
  68. "render": function ( data, type, row ) {
  69. var _jobData = eval('(' + data + ')'); // row.jobData
  70. var html = "<p title='" + data + "'>执行器:" + _jobData.handler_name +
  71. "<br>执行参数:" + _jobData.handler_params +
  72. "<br>执行机器:" + _jobData.handler_address + "</p>";
  73. return data?'<a class="logMsg" href="javascript:;" >查看<span style="display:none;">'+ html +'</span></a>':"无";
  74. }
  75. },
  76. {
  77. "data": 'triggerTime',
  78. "render": function ( data, type, row ) {
  79. return data?moment(new Date(data)).format("YYYY-MM-DD HH:mm:ss"):"";
  80. }
  81. },
  82. { "data": 'triggerStatus'},
  83. {
  84. "data": 'triggerMsg',
  85. "render": function ( data, type, row ) {
  86. return data?'<a class="logTips" href="javascript:;" >查看<span style="display:none;">'+ data +'</span></a>':"无";
  87. }
  88. },
  89. {
  90. "data": 'handleTime',
  91. "render": function ( data, type, row ) {
  92. return data?moment(new Date(data)).format("YYYY-MM-DD HH:mm:ss"):"";
  93. }
  94. },
  95. { "data": 'handleStatus',"bSortable": false},
  96. {
  97. "data": 'handleMsg',
  98. "render": function ( data, type, row ) {
  99. return data?'<a class="logTips" href="javascript:;" >查看<span style="display:none;">'+ data +'</span></a>':"无";
  100. }
  101. },
  102. { "data": 'handleMsg' , "bSortable": false,
  103. "render": function ( data, type, row ) {
  104. // better support expression or string, not function
  105. return function () {
  106. // local job do not support trigger detail log, now
  107. var _jobData = eval('(' + row.jobData + ')');
  108. if (!_jobData.handler_address) {
  109. return;
  110. }
  111. if (row.triggerStatus == 'SUCCESS'){
  112. var temp = '<a href="javascript:;" class="logDetail" _id="'+ row.id +'">查看日志</a>';
  113. if(!row.handleStatus){
  114. temp += '<br><a href="javascript:;" class="logKill" _id="'+ row.id +'">终止任务</a>';
  115. }
  116. return temp;
  117. }
  118. return null;
  119. }
  120. }
  121. }
  122. ],
  123. "language" : {
  124. "sProcessing" : "处理中...",
  125. "sLengthMenu" : "每页 _MENU_ 条记录",
  126. "sZeroRecords" : "没有匹配结果",
  127. "sInfo" : "第 _PAGE_ 页 ( 总共 _PAGES_ 页 )",
  128. "sInfoEmpty" : "无记录",
  129. "sInfoFiltered" : "(由 _MAX_ 项结果过滤)",
  130. "sInfoPostFix" : "",
  131. "sSearch" : "搜索:",
  132. "sUrl" : "",
  133. "sEmptyTable" : "表中数据为空",
  134. "sLoadingRecords" : "载入中...",
  135. "sInfoThousands" : ",",
  136. "oPaginate" : {
  137. "sFirst" : "首页",
  138. "sPrevious" : "上页",
  139. "sNext" : "下页",
  140. "sLast" : "末页"
  141. },
  142. "oAria" : {
  143. "sSortAscending" : ": 以升序排列此列",
  144. "sSortDescending" : ": 以降序排列此列"
  145. }
  146. }
  147. });
  148. // 任务数据
  149. $('#joblog_list').on('click', '.logMsg', function(){
  150. var msg = $(this).find('span').html();
  151. ComAlert.show(2, msg);
  152. });
  153. // 日志弹框提示
  154. $('#joblog_list').on('click', '.logTips', function(){
  155. var msg = $(this).find('span').html();
  156. ComAlertTec.show(msg);
  157. });
  158. // 搜索按钮
  159. $('#searchBtn').on('click', function(){
  160. logTable.fnDraw();
  161. });
  162. // 查看执行器详细执行日志
  163. $('#joblog_list').on('click', '.logDetail', function(){
  164. var _id = $(this).attr('_id');
  165. window.open(base_url + 'joblog/logDetailPage?id=' + _id);
  166. return;
  167. /*
  168. $.ajax({
  169. type : 'POST',
  170. url : base_url + 'joblog/logDetail',
  171. data : {"id":_id},
  172. dataType : "json",
  173. success : function(data){
  174. if (data.code == 200) {
  175. ComAlertTec.show('<pre style="color: white;background-color: black;width2:'+ $(window).width()*2/3 +'px;" >'+ data.content +'</pre>');
  176. } else {
  177. ComAlertTec.show(data.msg);
  178. }
  179. },
  180. });
  181. */
  182. });
  183. $('#joblog_list').on('click', '.logKill', function(){
  184. var _id = $(this).attr('_id');
  185. ComConfirm.show("确认主动终止任务?", function(){
  186. $.ajax({
  187. type : 'POST',
  188. url : base_url + 'joblog/logKill',
  189. data : {"id":_id},
  190. dataType : "json",
  191. success : function(data){
  192. if (data.code == 200) {
  193. ComAlert.show(1, '操作成功');
  194. logTable.fnDraw();
  195. } else {
  196. ComAlert.show(2, data.msg);
  197. }
  198. },
  199. });
  200. });
  201. });
  202. });