index.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <div class="row content-nav">
  2. <div class="col-xs-12">
  3. <ul>
  4. <li><a href="javascript:;"><i></i>&nbsp;定时任务</a></li>
  5. <li><a href="javascript:;">任务列表</a></li>
  6. </ul>
  7. </div>
  8. </div>
  9. <section class="content clearfix">
  10. <div class="layui-list-box">
  11. <table class="layui-hide" id="list-box" lay-filter="list-box"></table>
  12. </div>
  13. </section>
  14. <script type="text/html" id="list-toolbar">
  15. <div class="layui-btn-container">
  16. <button lay-event="url" type="button" class="layui-btn layui-btn-sm layui-bg-light-blue"><i class="layui-icon">&#xe61f;</i> 添加</button>
  17. <button lay-event="refresh" type="button" class="layui-btn layui-btn-sm layui-bg-red"><i class="layui-icon">&#xe9aa;</i> 刷新</button>
  18. </div>
  19. </script>
  20. <script type="text/html" id="list-bar">
  21. <a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="reset">重置</a>
  22. <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="edit">编辑</a>
  23. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  24. </script>
  25. <script type="text/html" id="checkboxTpl">
  26. <input type="checkbox" name="status" value="{{d.id}}" title="开启" lay-filter="status-filter" {{ d.status == 0 ? 'checked' : '' }}>
  27. </script>
  28. <script type="text/html" id="task-info">
  29. <p>任务名称:{{ d.title }}</p>
  30. <p>任务指令:{{ d.command }}</p>
  31. </script>
  32. <script type="text/html" id="task-status">
  33. <p>创建时间:{{ d.create_time }}( 共执行 <b style="color: #FF5722;">{{ d.count }}</b> 次 )</p>
  34. <p>计划时间:{{ d.exec_time }}</p>
  35. <p>
  36. 执行时间:
  37. {{# if(d.duration_time){ }}
  38. {{ d.start_time }} ( 耗时 <b style="color: #01AAED">{{ d.duration_time }}</b> 秒 )
  39. {{# } else { }}
  40. {{# if(d.status == 2){ }}
  41. {{ d.start_time }}( 任务执行中 )
  42. {{# } else { }}
  43. 任务正在等待执行中...
  44. {{# } }}
  45. {{# } }}
  46. </p>
  47. </script>
  48. <script type="text/html" id="task-exec-status">
  49. <p>任务状态:
  50. {{# if(d.status == 1){ }}
  51. {{# if(d.end_time){ }}
  52. {{ d.end_time }}( 上次执行时间 )
  53. {{# } else { }}
  54. 任务未执行
  55. {{# } }}
  56. {{# } else if(d.status == 2) { }}
  57. 任务正在执行中...
  58. {{# } else if(d.status == 3) { }}
  59. 执行成功
  60. {{# } else if(d.status == 4) { }}
  61. 执行失败{{# if(d.exec_desc) { }}( d.exec_desc ){{# } }}
  62. {{# } }}
  63. </p>
  64. <p>任务类型:{{ d.exec_type == 1 ? "执行多次" : "执行一次" }}</p>
  65. <p>执行时段:
  66. <b style="color: #1E9FFF">{{ d.value }}</b>
  67. {{# if(d.type == 0){ }}
  68. {{# } else if(d.type == 1) { }}
  69. 小时
  70. {{# } else { }}
  71. 分钟
  72. {{# } }}
  73. 执行一次
  74. </p>
  75. </script>
  76. <style type="text/css"> .layui-table-cell{ height:auto !important; } </style>
  77. <script>
  78. layui.use(['table','form'], function () {
  79. var table = layui.table;
  80. var form = layui.form;
  81. table.render({
  82. elem: '#list-box'
  83. , url: '{:createUrl("index")}'
  84. , toolbar: '#list-toolbar'
  85. , defaultToolbar: []
  86. , title: '数据表'
  87. , cols: [[
  88. {type: 'checkbox'}
  89. , {field: 'title', title: '任务信息', templet: "#task-info", width: 350}
  90. , {field: 'title', title: '任务状态', templet: "#task-status"}
  91. , {field: 'title', title: '执行状态', templet: "#task-exec-status"}
  92. , {fixed: 'right', align: 'center', title: '操作', toolbar: '#list-bar', width: 190}
  93. ]]
  94. , text: {
  95. none: '<div><i class="layui-icon">&#xe702;</i>暂无相关数据</div>'
  96. }
  97. , page: true
  98. , height: 'full-200'
  99. // ,limit:30
  100. });
  101. //头工具栏事件
  102. table.on('toolbar(list-box)', function (obj) {
  103. switch (obj.event) {
  104. case 'url':
  105. window.location.href = "{:createUrl('editor')}";
  106. break;
  107. case 'refresh':
  108. window.location.reload();
  109. break;
  110. }
  111. });
  112. //监听行工具事件
  113. table.on('tool(list-box)', function (obj) {
  114. var data = obj.data;
  115. if (obj.event === 'del') {
  116. layer.confirm('你确定要删除吗?', function (index) {
  117. $.get('{:createUrl("delete")}',{
  118. id : data.id
  119. },function(result){
  120. layer.close(index);
  121. if(result.code){
  122. obj.del();
  123. }else{
  124. layer.msg(result.msg,{ icon : 2 });
  125. }
  126. },"json");
  127. });
  128. } else if (obj.event === 'edit') {
  129. window.location.href = '{:createUrl("editor")}?id='+data.id;
  130. }else if(obj.event == "reset"){
  131. layer.confirm('需要重新运行任务吗?', function (index) {
  132. $.get('{:createUrl("reset")}',{
  133. id : data.id
  134. },function(result){
  135. layer.close(index);
  136. if(result.code){
  137. window.location.reload();
  138. }else{
  139. layer.msg(result.msg,{ icon : 2 });
  140. }
  141. },"json");
  142. });
  143. }
  144. });
  145. //监听锁定操作
  146. form.on('checkbox(status-filter)', function(obj){
  147. var that = this;
  148. $.get('{:createUrl("field")}',{
  149. name : that.name,
  150. value : (obj.elem.checked ? 0 : 1),
  151. id : that.value
  152. },function (result){
  153. if(!result.code){
  154. layer.msg(result.msg,{ icon : 2 });
  155. }
  156. },"json");
  157. });
  158. });
  159. </script>