index.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. {extend name='table'}
  2. {block name="button"}
  3. <!--{if isset($isSuper) and $isSuper}-->
  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-shadow">
  19. <div class="layui-row layui-col-space20 portal-block-container notselect">
  20. <div class="layui-col-sm6 layui-col-md6 layui-col-lg3">
  21. <div class="portal-block-item nowrap" style="background:linear-gradient(-125deg,#57bdbf,#2f9de2)">
  22. <div class="font-w7 font-s16">等待处理</div>
  23. <div>{$total.pre|default=0}</div>
  24. <div>待处理的任务数量</div>
  25. </div>
  26. <i class="portal-block-icon layui-icon layui-icon-star"></i>
  27. </div>
  28. <div class="layui-col-sm6 layui-col-md6 layui-col-lg3">
  29. <div class="portal-block-item nowrap" style="background:linear-gradient(-125deg,#ff7d7d,#fb2c95)">
  30. <div class="font-w7 font-s16">正在处理</div>
  31. <div>{$total.dos|default=0}</div>
  32. <div>处理中的任务数量</div>
  33. </div>
  34. <i class="portal-block-icon layui-icon layui-icon-log"></i>
  35. </div>
  36. <div class="layui-col-sm6 layui-col-md6 layui-col-lg3">
  37. <div class="portal-block-item nowrap" style="background:linear-gradient(-113deg,#c543d8,#925cc3)">
  38. <div class="font-w7 font-s16">处理完成</div>
  39. <div>{$total.oks|default=0}</div>
  40. <div>处理完成的任务数量</div>
  41. </div>
  42. <i class="portal-block-icon layui-icon layui-icon-release"></i>
  43. </div>
  44. <div class="layui-col-sm6 layui-col-md6 layui-col-lg3">
  45. <div class="portal-block-item nowrap" style="background:linear-gradient(-141deg,#ecca1b,#f39526)">
  46. <div class="font-w7 font-s16">处理失败</div>
  47. <div>{$total.ers|default=0}</div>
  48. <div>处理失败的任务数量</div>
  49. </div>
  50. <i class="portal-block-icon layui-icon layui-icon-engine"></i>
  51. </div>
  52. </div>
  53. {include file='queue/index_search'}
  54. <table id="QueueData" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
  55. </div>
  56. {/block}
  57. {block name='script'}
  58. <script>
  59. $(function () {
  60. $('#QueueData').layTable({
  61. even: true,
  62. sort: {field: 'loops_time desc,id', type: 'desc'},
  63. cols: [[
  64. {checkbox: true, fixed: 'left'},
  65. {field: 'code', title: '任务编号', width: 140, sort: true},
  66. {field: 'title', title: '任务名称', minWidth: 150},
  67. {field: 'command', title: '任务指令', minWidth: 150},
  68. {
  69. field: 'exec_time', title: '计划时间', minWidth: 245, templet: function (d) {
  70. d.exec_time = d.exec_time || 0, d.loops_time = d.loops_time || 0;
  71. if (d.loops_time > 0) {
  72. return d.exec_time + ' ( 每 <b class="color-blue">' + d.loops_time + '</b> 秒 ) ';
  73. } else {
  74. return d.exec_time + ' <span class="color-desc">( 单次任务 )</span> ';
  75. }
  76. }
  77. },
  78. {
  79. field: 'enter_time', title: '执行时间', minWidth: 180, templet: function (d) {
  80. d.enter_time = d.enter_time || '', d.outer_time = d.outer_time || '0.0000';
  81. if (d.enter_time.length > 12) {
  82. return d.enter_time.substr(12) + '<span class="color-desc"> ( 耗时 ' + d.outer_time + ' )</span>';
  83. } else {
  84. return '<span class="color-desc">任务未执行</span>'
  85. }
  86. }
  87. },
  88. {field: 'attempts', title: '执行次数', width: 95, align: 'center', sort: true, templet: "<div>{{d.attempts||0}}</div>"},
  89. {field: 'exec_desc', title: '执行结果', minWidth: 180},
  90. {field: 'create_at', title: '创建时间', minWidth: 170},
  91. {toolbar: '#toolbar', title: '操作面板', align: 'left', fixed: 'right', minWidth: 225}
  92. ]]
  93. });
  94. });
  95. </script>
  96. <script type="text/html" id="toolbar">
  97. {{# if(d.loops_time>0){ }}
  98. <span class="layui-badge think-bg-blue">循</span>
  99. {{# } }}
  100. {{# if(d.rscript===1){ }}
  101. <span class="layui-badge layui-bg-green">复</span>
  102. {{# }else{ }}
  103. <span class="layui-badge think-bg-violet">单</span>
  104. {{# } }}
  105. {{# if(d.status===1){ }}
  106. <span class="layui-badge layui-bg-black">等待处理</span>
  107. {{# }else if(d.status===2){ }}
  108. <span class="layui-badge layui-bg-green">正在处理</span>
  109. {{# }else if(d.status===3){ }}
  110. <span class="layui-badge layui-bg-blue">处理完成</span>
  111. {{# }else if(d.status===4){ }}
  112. <span class="layui-badge layui-bg-red">处理失败</span>
  113. <!--{if auth('redo')}-->
  114. <a class="layui-badge layui-bg-green" data-confirm="确定要重置该任务吗?" data-queue="{:url('redo')}?code={{d.code}}">
  115. <i class="layui-icon font-s12">&#xe669;</i>
  116. </a>
  117. <!--{/if}-->
  118. {{# } }}
  119. <!--{if auth('remove')}-->
  120. <a class='layui-badge layui-bg-red' data-confirm="确定要删除该任务吗?" data-action='{:url("remove")}' data-value="id#{{d.id}}">
  121. <i class="layui-icon font-s12">&#xe640;</i>
  122. </a>
  123. <!--{/if}-->
  124. <a class='layui-badge layui-bg-orange' onclick="$.loadQueue('{{d.code}}',false)">
  125. <i class="layui-icon font-s12">&#xe705;</i>
  126. </a>
  127. </script>
  128. {/block}