zhaowc
2024-09-18 bdd84cc48ba7b2527584c44d174da8e7d20c5375
HTML/views/SystemSettings/Job.html
@@ -27,7 +27,7 @@
            id="top">
            <div class="layui-form-item">
               <div class="layui-inline">
                  <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
                  <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit id="btnAdd"
                     lay-filter="LAY-app-contlist-add">
                     <i class="layui-icon layui-icon-add-1 layuiadmin-button-btn"></i>添加
                  </button>
@@ -56,14 +56,18 @@
   <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="Play">
      <i class="layui-icon layui-icon-play"></i>开始</a>
   {{# } }}
   <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
   <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
   <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail"><i
   <a class="layui-btn layui-btn-normal layui-btn-xs btnEdit" lay-event="edit"><i
         class="layui-icon layui-icon-edit"></i>编辑</a>
   <a class="layui-btn layui-btn-danger layui-btn-xs btnDel" lay-event="del"><i
         class="layui-icon layui-icon-delete"></i>删除</a>
   <a class="layui-btn layui-btn-normal layui-btn-xs btnLog" lay-event="detail"><i
         class="layui-icon layui-icon-log"></i>日志</a>
   <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="execute"><i
   <a class="layui-btn layui-btn-normal layui-btn-xs btnExec" lay-event="execute"><i
         class="layui-icon layui-icon-triangle-r"></i>执行</a>
   </script>
   <script>
      var doing = true;
      var objRowsData = {};
      layui.config({
         base: '../../layuiadmin/' //静态资源所在路径
      }).extend({
@@ -74,23 +78,15 @@
            laypage = layui.laypage,
            layer = layui.layer;
         var h1 = GetTableHeight();
         refreshTable("", "", "", "", "");
         refreshTable();
         var tableIns;
         function refreshTable(MenuName, Type, Msg, MenuNo, ParentNo) {
            var param = {
               MenuName: MenuName,
               Type: Type,
               Msg: Msg,
               MenuNo: MenuNo,
               ParentNo: ParentNo,
            };
            ParentNo = '系统设置'; //模块名称
         function refreshTable() {
            var url = "/Job/GetAllJob";
            sendData(IP + url, {}, 'get', function (res) {
               // console.log(res.data)
               if (res.code == 200) //成功
               if (res.code == 0) //成功
               {
                  var list = res.data;
                  $.extend(infoOptions, {
@@ -142,26 +138,6 @@
                  {
                     field: 'DisplayState', title: '状态', align: 'center', width: 80
                  },
                  // {
                  //    field: 'TriggerState', title: '状态', align: 'center', width: 80, templet: function (d) {
                  //       switch (d.TriggerState) {
                  //          case 0:
                  //             return '正常'
                  //          case 1:
                  //             return '暂停'
                  //          case 2:
                  //             return '完成'
                  //          case 3:
                  //             return '异常'
                  //          case 4:
                  //             return '阻塞'
                  //          case 5:
                  //             return '不存在'
                  //          default:
                  //             return '未知';
                  //       }
                  //    }
                  // },
                  {
                     field: 'PreviousFireTime', title: '上次执行时间', align: 'center', width: 170, templet: function (d) {
                        return formatDateTime(d.PreviousFireTime)
@@ -178,7 +154,33 @@
                  {
                     field: 'caozuo', title: '操作', fixed: 'right', width: 340, align: 'left', toolbar: "#toolBar"
                  }
               ]]
               ]],
            done: function () {
               //权限
               var listRole = JSON.parse(localStorage.getItem('listRole'));
               $("#btnAdd").hide();
               $(".btnEdit").hide();
               $(".btnDel").hide();
               $(".btnLog").hide();
               $(".btnExec").hide();
               if (listRole) {
                  if (listRole.filter(s => s.MenuName == "添加任务").length > 0) {
                     $("#btnAdd").show();
                  }
                  if (listRole.filter(s => s.MenuName == "编辑任务").length > 0) {
                     $(".btnEdit").show();
                  }
                  if (listRole.filter(s => s.MenuName == "删除任务").length > 0) {
                     $(".btnDel").show();
                  }
                  if (listRole.filter(s => s.MenuName == "任务日志").length > 0) {
                     $(".btnLog").show();
                  }
                  if (listRole.filter(s => s.MenuName == "执行任务").length > 0) {
                     $(".btnExec").show();
                  }
               }
            }
         };
         table.on('tool(LAY-app-content-list)', function (obj) {
@@ -187,7 +189,7 @@
               case "execute":
                  sendData(IP + "/Job/TriggerJob", { Name: data.Name, Group: data.GroupName }, 'post', function (res) {
                     console.log(res);
                     if (res.code == 200) { //成功
                     if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                           icon: 1,
                           time: 3000 //1秒关闭(如果不配置,默认是3秒)
@@ -206,46 +208,72 @@
                  });
                  break;
               case "edit":
                  objRowsData = data;
                  layer.open({
                     type: 2,
                     title: '编辑定时任务信息',
                     content: 'JobForm.html',
                     maxmin: true,
                     area: ['650px', '550px'],
                     end: function () {
                        refreshTable();
                     }
                  });
                  break;
               case "del":
                  sendData(IP + "/Job/RemoveJob", { Name: data.Name, Group: data.GroupName }, 'post', function (res) {
                     console.log(res);
                     if (res.code == 200) { //成功
                        layer.msg(res.msg, {
                           icon: 1,
                           time: 3000 //1秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable("", "", "", "", "");
                           doing = true;
                  if (doing) {
                     doing = false;
                     layer.confirm('确定删除选中的模板?', function (index) {
                        sendData(IP + "/Job/RemoveJob", { Name: data.Name, Group: data.GroupName }, 'post', function (res) {
                           console.log(res);
                           if (res.code == 0) { //成功
                              layer.msg(res.msg, {
                                 icon: 1,
                                 time: 3000 //1秒关闭(如果不配置,默认是3秒)
                              }, function () {
                                 refreshTable();
                                 doing = true;
                              });
                           } else { //不成功
                              layer.msg(res.msg, {
                                 icon: 2,
                                 time: 3000 //2秒关闭(如果不配置,默认是3秒)
                              }, function () {
                                 refreshTable();
                                 doing = true;
                              });
                           }
                           layer.close(index);
                        });
                     } else { //不成功
                        layer.msg(res.msg, {
                           icon: 2,
                           time: 3000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable("", "", "", "", "");
                           doing = true;
                        });
                     }
                     layer.close(index);
                  });
                     });
                  }
                  break;
               case "detail":
                  sendData(IP + "/Job/GetJobLogs", { Name: data.Name, Group: data.GroupName }, 'post', function (res) {
                     console.log(res);
                     if (res.code == 200) { //成功
                        layer.open({
                           type: 1,
                           area: ['80%', '80%'], // 宽高
                           content: res.data.join('\n')
                        });
                     if (res.code == 0) { //成功
                        if (res.data) {
                           layer.open({
                              type: 1,
                              area: ['80%', '80%'], // 宽高
                              content: res.data.join('\n')
                           });
                        }
                        else {
                           layer.msg('暂无日志', {
                              icon: 2,
                              time: 3000
                           }, function () {
                              refreshTable();
                           });
                        }
                     } else { //不成功
                        layer.msg(res.msg, {
                           icon: 2,
                           time: 3000 //2秒关闭(如果不配置,默认是3秒)
                           time: 3000
                        }, function () {
                           refreshTable("", "", "", "", "");
                           doing = true;
                           refreshTable();
                        });
                     }
                     layer.close(index);
@@ -254,12 +282,12 @@
               case "Play":
                  sendData(IP + "/Job/ResumeJob", { Name: data.Name, Group: data.GroupName }, 'post', function (res) {
                     console.log(res);
                     if (res.code == 200) { //成功
                     if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                           icon: 1,
                           time: 3000 //1秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable("", "", "", "", "");
                           refreshTable();
                           doing = true;
                        });
                     } else { //不成功
@@ -267,7 +295,7 @@
                           icon: 2,
                           time: 3000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable("", "", "", "", "");
                           refreshTable();
                           doing = true;
                        });
                     }
@@ -277,12 +305,12 @@
               case "Pause":
                  sendData(IP + "/Job/StopJob", { Name: data.Name, Group: data.GroupName }, 'post', function (res) {
                     console.log(res);
                     if (res.code == 200) { //成功
                     if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                           icon: 1,
                           time: 3000 //1秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable("", "", "", "", "");
                           refreshTable();
                           doing = true;
                        });
                     } else { //不成功
@@ -290,7 +318,7 @@
                           icon: 2,
                           time: 3000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                           refreshTable("", "", "", "", "");
                           refreshTable();
                           doing = true;
                        });
                     }
@@ -299,24 +327,21 @@
                  break;
            }
         });
         //监听搜索
         form.on('submit(LAY-app-contlist-search)', function (data) {
            // console.log(data)
            var MenuName = data.field.MenuName;
            var Type = data.field.Type;
            var Msg = data.field.Msg;
            var MenuNo = data.field.MenuNo;
            //MenuName, Type, Msg, MenuNo,ParentNo
            refreshTable(MenuName, Type, Msg, MenuNo);
         //添加
         form.on('submit(LAY-app-contlist-add)', function (obj) {
            objRowsData = null;
            layer.open({
               type: 2,
               title: '添加定时任务信息',
               content: 'JobForm.html',
               maxmin: true,
               area: ['650px', '550px'],
               end: function () {
                  refreshTable();
               }
            });
         });
         var doing = true;
         // $('.layui-btn.layuiadmin-btn-list').on('click', function() {
         //    var type = $(this).data('type');
         //    active[type] ? active[type].call(this) : '';
         // });
      });
      function formatDateTime(inputDateTime) {
         // 创建一个日期对象,用于解析输入的日期时间字符串