xxl-job

joblog.index.1.js 8.8KB

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