index.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. {extend name='table'}
  2. {block name="button"}
  3. <!--{if isset($super) and $super}-->
  4. <a class="layui-btn layui-btn-sm layui-btn-primary" data-queue="{:url('admin/api.plugs/optimize')}">优化数据库</a>
  5. {if $iswin}
  6. <button data-load='{:url("admin/api.queue/start")}' class='layui-btn layui-btn-sm layui-btn-primary'>开启后台服务</button>
  7. <button data-load='{:url("admin/api.queue/stop")}' class='layui-btn layui-btn-sm layui-btn-primary'>关闭后台服务</button>
  8. {/if}
  9. <!--{/if}-->
  10. <!--{if auth("clean")}-->
  11. <button data-queue='{:url("clean")}' class='layui-btn layui-btn-sm layui-btn-primary'>定时清理数据</button>
  12. <!--{/if}-->
  13. <!--{if auth("remove")}-->
  14. <button data-action='{:url("remove")}' data-rule="id#{id}" data-table-id="QueueData" data-confirm="确定批量删除记录吗?" class='layui-btn layui-btn-sm layui-btn-primary'>批量删除任务</button>
  15. <!--{/if}-->
  16. {/block}
  17. {block name="content"}
  18. <div class="think-box-notify">
  19. <b>任务统计:</b>待处理 {$total.pre|default=0} 个任务,处理中 {$total.dos|default=0} 个任务,待处理 {$total.oks|default=0} 个任务,已失败 {$total.ers|default=0} 个任务。
  20. </div>
  21. <div class="think-box-shadow">
  22. {include file='queue/index_search'}
  23. <table id="QueueData" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
  24. </div>
  25. {/block}
  26. {block name='script'}
  27. <style>
  28. #QueueData + div tbody .layui-table-cell {
  29. height: 42px;
  30. line-height: 22px;
  31. }
  32. #QueueData + div tbody .layui-table-cell .layui-btn {
  33. margin-top: 8px;
  34. }
  35. #QueueData + div tbody .layui-table-cell.laytable-cell-checkbox {
  36. line-height: 42px;
  37. }
  38. </style>
  39. <script>
  40. $(function () {
  41. $('#QueueData').layTable({
  42. height: 'full',
  43. even: true, sort: {field: 'loops_time desc,id', type: 'desc'},
  44. cols: [[
  45. {checkbox: true, fixed: 'left'},
  46. {
  47. field: 'id', title: '任务名称', minWidth: 230, sort: true, templet: function (d) {
  48. if (d.loops_time > 0) {
  49. d.one = '<span class="layui-badge think-bg-blue">循</span>';
  50. } else {
  51. d.one = '<span class="layui-badge think-bg-red">次</span>';
  52. }
  53. if (d.rscript === 1) {
  54. d.two = '<span class="layui-badge layui-bg-green">复</span>';
  55. } else {
  56. d.two = '<span class="layui-badge think-bg-violet">单</span>';
  57. }
  58. return laytpl('{{d.one}}任务编号:<b>{{d.code}}</b><br>{{d.two}}任务名称:{{d.title}}').render(d);
  59. }
  60. },
  61. {
  62. field: 'exec_time', title: '任务计划', minWidth: 300, templet: function (d) {
  63. d.html = '执行指令:' + d.command + '<br>计划执行:' + d.exec_time;
  64. if (d.loops_time > 0) {
  65. return d.html + ' ( 每 <b class="color-blue">' + d.loops_time + '</b> 秒 ) ';
  66. } else {
  67. return d.html + ' <span class="color-desc">( 单次任务 )</span> ';
  68. }
  69. }
  70. },
  71. {
  72. field: 'loops_time', title: '执行状态', width: 400, templet: function (d) {
  73. d.html = [
  74. '<span class="layui-badge layui-badge-middle layui-bg-gray pull-left" style="width:2em">未知</span>',
  75. '<span class="layui-badge layui-badge-middle layui-bg-black pull-left" style="width:2em">等待</span>',
  76. '<span class="layui-badge layui-badge-middle layui-bg-blue pull-left" style="width:2em">执行</span>',
  77. '<span class="layui-badge layui-badge-middle layui-bg-green pull-left" style="width:2em">完成</span>',
  78. '<span class="layui-badge layui-badge-middle layui-bg-red pull-left" style="width:2em">失败</span>',
  79. ][d.status] || '';
  80. d.html += '执行时间:';
  81. d.enter_time = d.enter_time || '', d.outer_time = d.outer_time || '0.0000';
  82. if (d.enter_time.length > 12) {
  83. d.html += d.enter_time.substring(12) + '<span class="color-desc"> ( 耗时 ' + d.outer_time + ' )</span>';
  84. d.html += ',已执行 <b>' + (d.attempts || 0) + '</b> 次';
  85. } else {
  86. d.html += '<span class="color-desc">任务未执行</span>'
  87. }
  88. return d.html + '<br>执行结果:<span class="color-blue">' + (d.exec_desc || '-') + '</span>';
  89. }
  90. },
  91. {toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 200}
  92. ]]
  93. });
  94. });
  95. </script>
  96. <script type="text/html" id="toolbar">
  97. <!--{if auth('redo')}-->
  98. {{# if(d.status===4||d.status===3){ }}
  99. <a class="layui-btn layui-btn-sm" data-confirm="确定要重置该任务吗?" data-queue="{:url('redo')}?code={{d.code}}">重 置</a>
  100. {{# }else{ }}
  101. <a class="layui-btn layui-btn-sm layui-btn-disabled">重 置</a>
  102. {{# } }}
  103. <!--{/if}-->
  104. <!--{if auth('remove')}-->
  105. <a class='layui-btn layui-btn-sm layui-btn-danger' data-confirm="确定要删除该任务吗?" data-action='{:url("remove")}' data-value="id#{{d.id}}">删 除</a>
  106. <!--{/if}-->
  107. <a class='layui-btn layui-btn-sm layui-btn-normal' onclick="$.loadQueue('{{d.code}}',false,this)">日 志</a>
  108. </script>
  109. {/block}