فهرست منبع

日志完成,暂未无删除操作

soft5566 2 سال پیش
والد
کامیت
eb0eb48d14
1فایلهای تغییر یافته به همراه455 افزوده شده و 153 حذف شده
  1. 455 153
      src/views/log/log.vue

+ 455 - 153
src/views/log/log.vue

@@ -1,12 +1,13 @@
 <template>
   <div class="content-box">
     <div class="left">
-      <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
-      <span :class="taskTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="mPage.tabHandler(1)">任务日志</span>
-      <span :class="businessTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="mPage.tabHandler(2)">业务日志</span>
+      <span :class="taskTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="tabHandler(1)">任务日志</span>
+      <span :class="businessTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="tabHandler(2)">业务日志</span>
+      <span :class="debugTabVisible == true ? 'cameratxt' : 'cameratxt-grey'" @click="tabHandler(3)">调试日志</span>
     </div>
-    <div v-show="taskTabVisible">
-      <div class="scroll">
+    <!-- 任务日志 -->
+    <div v-show="taskTabVisible" style="height: 100%;">
+      <div class="scroll" style="height: 100%;">
         <div class="middle">
           <div class="filter">
             <div class="condition">
@@ -55,13 +56,13 @@
           </div>
         </div>
         <div class="footer" v-loading="mPage.loading">
-          <el-table :row-class-name="mPage.tableRowClassName" :data="mPage.tableData"
-            height="600" border style="width: 100%" :header-cell-style="{
+          <el-table :row-class-name="mPage.tableRowClassName" :data="mPage.tableData" height="600" border
+            style="width: 100%" :header-cell-style="{
               background: 'rgba(240, 243, 247, 1)',
               height: '50px',
             }">
             <!-- <el-table-column align="center" type="selection" width="55" /> -->
-            <el-table-column width="55" align="center " prop="xuhao_ds" label="序号" />
+            <el-table-column width="68" align="center " prop="xuhao" label="序号" />
             <el-table-column align="center" prop="tkLogTaskName" label="任务名称" />
             <!-- <el-table-column align="center" prop="department" label="业务部门" /> -->
             <el-table-column align="center" prop="tkLogDsSourceName" label="来源库" />
@@ -95,7 +96,8 @@
         </div>
 
         <!-- 分页组件 -->
-        <div class="pageSize">
+        <div class="pageSize" style="display: flex;">
+          <span></span>
           <el-pagination background :current-page="mPage.currentPage" :page-size="mPage.pageSize"
             layout="total, prev, pager, next, jumper, slot" :total="mPage.tableTotal"
             @update:current-page="mPage.handleCurrentChange" />
@@ -113,47 +115,31 @@
         </el-dialog>
       </div>
     </div>
-    <div v-show="businessTabVisible">
-      <div class="scroll">
+    <!-- 业务日志 -->
+    <div v-show="businessTabVisible" style="height: 100%;">
+      <div class="scroll" style="height: 100%;">
         <div class="middle">
           <div class="filter">
             <div class="condition">
-              <el-select v-model="bPage.selectTaskValue" clearable class="sel" placeholder="操作名称">
-                <el-option v-for="item in bPage.selectTaskOptions" :key="item.value" :label="item.label"
-                  :value="item.value" />
+              <el-select v-model="bPage.actionNameValue" filterable clearable style="width: 280px;" class="sel"
+                placeholder="操作名称">
+                <el-option v-for="item in bPage.actionName" :key="item.value" :label="item.label" :value="item.label" />
               </el-select>
-              <el-select v-model="bPage.tkLogAutoManualValue" clearable style="width: 120px;" class="sel"
-                placeholder="执行标识">
-                <el-option label="自动执行" value="0" />
-                <el-option label="手动执行" value="1" />
+              <el-select v-model="bPage.actionPeopleValue" filterable clearable style="width: 120px;" class="sel"
+                placeholder="操作人">
+                <el-option v-for="item in bPage.actionPeople" :key="item.value" :label="item.label" :value="item.label" />
               </el-select>
-              <el-select v-model="bPage.tkLogExeStatusValue" class="sel" style="width: 130px;" clearable
-                placeholder="执行状态">
-                <el-option label="执行中" value="1" />
-                <el-option label="执行成功" value="2" />
-                <el-option label="部分数据异常" value="3" />
-                <el-option label="执行中断" value="4" />
-                <el-option label="执行跳过" value="5" />
-                <el-option label="执行失败" value="6" />
+              <el-select v-model="bPage.actionModuleValue" filterable class="sel" style="width: 350px;" clearable
+                placeholder="操作模块">
+                <el-option v-for="item in bPage.actionModule" :key="item.value" :label="item.label" :value="item.label" />
               </el-select>
-              <el-select v-model="bPage.selectDsSourceValue" class="sel" clearable placeholder="来源数据源">
-                <el-option v-for="item in bPage.selectDsSourceOptions" :key="item.value" :label="item.label"
-                  :value="item.value" />
-              </el-select>
-              <el-select v-model="bPage.selectDsDestinationValue" class="sel" clearable placeholder="目的数据源">
-                <el-option v-for="item in bPage.selectDsDestinationOptions" :key="item.value" :label="item.label"
-                  :value="item.value" />
-              </el-select>
-              <el-select v-model="bPage.tkLogCostTimeValue" class="sel" style="width: 130px;" clearable
-                placeholder="耗时过滤">
-                <el-option label="1分钟内" value="1" />
-                <el-option label="1-5分钟" value="2" />
-                <el-option label="5-10分钟" value="3" />
-                <el-option label="10-30分钟" value="4" />
-                <el-option label="30分钟以上" value="5" />
+              <el-select v-model="bPage.actionBusinessValue" filterable class="sel" style="width: 280px;" clearable
+                placeholder="业务名称">
+                <el-option v-for="item in bPage.actionBusiness" :key="item.value" :label="item.label"
+                  :value="item.label" />
               </el-select>
-              <el-date-picker v-model="bPage.searchDateTimeVale" type="datetimerange" start-placeholder="开始时间"
-                end-placeholder="结束时间" :shortcuts="bPage.shortcuts" value-format="YYYY-MM-DD HH:mm:ss"
+              <el-date-picker v-model="bPage.searchDateTimeVale" type="datetimerange" start-placeholder="操作开始时间"
+                end-placeholder="操作结束时间" :shortcuts="bPage.shortcuts" value-format="YYYY-MM-DD HH:mm:ss"
                 style="width: 360px; margin-right: 10px;" />
               <el-button color="rgba(0, 97, 255, 1)" type="primary" class="search" @click="bPage.searchBtn"><el-icon>
                   <Search />
@@ -163,25 +149,26 @@
           </div>
         </div>
         <div class="footer" v-loading="bPage.loading">
-          <el-table :row-class-name="bPage.tableRowClassName" :data="bPage.tableData"
-            height="600" border style="width: 100%" :header-cell-style="{
+          <el-table :row-class-name="bPage.tableRowClassName" :data="bPage.tableData" height="600" border
+            style="width: 100%" :header-cell-style="{
               background: 'rgba(240, 243, 247, 1)',
               height: '50px',
             }">
-            <el-table-column width="55" align="center " prop="xuhao_ds" label="序号" />
-            <el-table-column align="center" prop="logActionName" label="操作名称" width="200" />
+            <el-table-column width="68" align="center " prop="xuhao" label="序号" />
+            <el-table-column align="center" prop="logActionName" label="操作名称" width="230" />
             <el-table-column align="center" prop="logActionPeople" label="操作人" width="100" />
             <el-table-column align="center" prop="logActionModule" label="操作模块" />
-            <el-table-column align="center" prop="logActionBusiness" label="业务名称" width="200" />
-            <el-table-column align="center" prop="logActionHost" label="操作主机ip" width="100" />
-            <el-table-column align="center" prop="logActionRemote" label="操作人ip" width="100" />
+            <el-table-column align="center" prop="logActionBusiness" label="业务名称" />
+            <el-table-column align="center" prop="logActionHost" label="操作主机ip" width="120" />
+            <el-table-column align="center" prop="logActionRemote" label="操作人ip" width="120" />
             <el-table-column align="center" prop="logActionClass" label="操作类型" width="120" />
             <el-table-column align="center" prop="logActionCreateTime" label="操作时间" width="160" />
           </el-table>
         </div>
 
         <!-- 分页组件 -->
-        <div class="pageSize">
+        <div class="pageSize" style="display: flex;">
+          <span></span>
           <el-pagination background :current-page="bPage.currentPage" :page-size="bPage.pageSize"
             layout="total, prev, pager, next, jumper, slot" :total="bPage.tableTotal"
             @update:current-page="bPage.handleCurrentChange" />
@@ -199,6 +186,62 @@
         </el-dialog>
       </div>
     </div>
+    <!-- 调试日志 -->
+    <div v-show="debugTabVisible" style="height: 100%;">
+      <div class="scroll" style="height: 100%;">
+        <div class="middle">
+          <div class="filter">
+            <div class="condition">
+              <el-select v-model="debugPage.taskIdValue" filterable clearable style="width: 280px;" class="sel"
+                placeholder="任务名称">
+                <el-option v-for="item in debugPage.taskId" :key="item.value" :label="item.label"
+                  :value="item.value" />
+              </el-select>
+              <el-date-picker v-model="debugPage.searchDateTimeVale" type="datetimerange" start-placeholder="开始时间"
+                end-placeholder="结束时间" :shortcuts="debugPage.shortcuts" value-format="YYYY-MM-DD HH:mm:ss"
+                style="width: 360px; margin-right: 10px;" />
+              <el-button color="rgba(0, 97, 255, 1)" type="primary" class="search" @click="debugPage.searchBtn"><el-icon>
+                  <Search />
+                </el-icon>
+                <span>查询</span></el-button>
+            </div>
+          </div>
+        </div>
+        <div class="footer" v-loading="debugPage.loading">
+          <el-table :row-class-name="debugPage.tableRowClassName" :data="debugPage.tableData" height="600" border
+            style="width: 100%" :header-cell-style="{
+              background: 'rgba(240, 243, 247, 1)',
+              height: '50px',
+            }">
+            <el-table-column width="68" align="center " prop="xuhao" label="序号" />
+            <el-table-column align="center" prop="etaskName" label="任务名称" width="150" />
+            <el-table-column prop="emsg" label="信息" header-align="center" />
+            <el-table-column align="center" prop="enum" label="次数" width="88" />
+            <el-table-column align="center" prop="eDateTime" label="发生时间" width="150" />
+            <el-table-column align="center" prop="eCreateTime" label="创建时间" width="150" />
+          </el-table>
+        </div>
+
+        <!-- 分页组件 -->
+        <div class="pageSize" style="display: flex;">
+          <span></span>
+          <el-pagination background :current-page="debugPage.currentPage" :page-size="debugPage.pageSize"
+            layout="total, prev, pager, next, jumper, slot" :total="debugPage.tableTotal"
+            @update:current-page="debugPage.handleCurrentChange" />
+        </div>
+
+        <!-- 查看按钮 -->
+        <el-dialog class="editDialog" v-model="debugPage.viewVisible" :close-on-click-modal="false"
+          :close-on-press-escape="false" title="日志详情" :show-close="false" align-center width="600">
+          <div>
+            {{ debugPage.content }}
+          </div>
+          <div class="options">
+            <el-button @click="debugPage.viewVisible = false">关闭</el-button>
+          </div>
+        </el-dialog>
+      </div>
+    </div>
   </div>
 </template>
 
@@ -224,24 +267,57 @@ const api = ref("");
 // const router = useRouter();
 const taskTabVisible = ref(false); // 任务面板
 const businessTabVisible = ref(true); // 业务面板
+const debugTabVisible = ref(false); // 业务面板
+
+const tabHandler = (v) => {
+  if (v == 1) {
+    taskTabVisible.value = true
+    businessTabVisible.value = false
+    debugTabVisible.value = false
+  } else if (v == 2) {
+    taskTabVisible.value = false
+    businessTabVisible.value = true
+    debugTabVisible.value = false
+  } else {
+    taskTabVisible.value = false
+    businessTabVisible.value = false
+    debugTabVisible.value = true
+  }
+};
 
-const bPage = reactive({
-  loading: ref(false),
-  viewVisible: ref(false),
-  tkLogAutoManualValue: ref(""), // 执行标识: 0自动/1手动
-  // 执行状态: 1:执行中;2:执行成功;3:部分数据异常;4:执行中断;5:执行跳过;6:执行失败
-  tkLogExeStatusValue: ref(""),
-  tkLogDsSourceId: ref(""), // 源库id
-  tkLogDsDestinationId: ref(""), // 目标库id
-  tkLogCostTimeValue: ref(""), // 耗时
-  searchDateTimeVale: ref(""), // 查询时间
+const debugPage = reactive({
+  loading: ref(false), // 加载状态
+  taskIdValue: ref(""), // 任务id值
   shortcuts: ref([
     {
+      text: '今天',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime())
+        start.setHours(0, 0, 0, 0)
+        return [start, end]
+      },
+    },
+    {
+      text: '昨天',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
+        start.setHours(0, 0, 0, 0)
+        end.setTime(start.getTime())
+        end.setHours(23, 59, 59, 999)
+        return [start, end]
+      },
+    },
+    {
       text: '最近一周',
       value: () => {
         const end = new Date()
         const start = new Date()
         start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+        start.setHours(0, 0, 0, 0)
         return [start, end]
       },
     },
@@ -251,6 +327,7 @@ const bPage = reactive({
         const end = new Date()
         const start = new Date()
         start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+        start.setHours(0, 0, 0, 0)
         return [start, end]
       },
     },
@@ -260,43 +337,69 @@ const bPage = reactive({
         const end = new Date()
         const start = new Date()
         start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+        start.setHours(0, 0, 0, 0)
         return [start, end]
       },
     },
   ]),
-  selectDsSourceValue: ref(""), // 源库下拉框
-  selectDsDestinationValue: ref(""), // 目标库下拉框
-  selectDsSourceOptions: reactive([]),
-  selectDsDestinationOptions: reactive([]),
-  selectTaskValue: ref(""), // 当前任务id
-  selectTaskOptions: reactive([]), // 任务下拉框
-  content: ref(""),
   // 表格数据
   tableData: reactive([]),
+  taskId: reactive([]), // 任务id列表对象
+  startTime: reactive([]), // 开始时间
   currentPage: ref(1), // 当前页
   pageSize: ref(10), // 每页显示条数
   tableTotal: ref(0), // 当前总数
+   // 获取任务列表
+   getTaskList: async () => {
+    let data = {
+      currentPage: 1,
+      pageCount: 300,
+      managerId: sessionStorage.getItem("token"),
+    };
+    let res = await axios({
+      method: "get",
+      url: api.value + "/wanzai/api/smartDataTask/queryPageSmartDataTask",
+      headers: {
+        // token: sessionStorage.getItem("token"),
+        // user_head: sessionStorage.getItem("userhead"),
+      },
+      params: data,
+    });
+    // console.log(res, "业务日志");
+    if (res.data.code == 200) {
+      debugPage.taskId = reactive([]);
+      res.data.data.list.forEach(element => {
+        let item = {
+          value: element.tkId,
+          label: element.tkName,
+        }
+        debugPage.taskId.push(item);
+      });
+    } else {
+      ElMessage({
+        type: "error",
+        showClose: true,
+        message: res.data.message,
+        center: true,
+      });
+    }
+  },
   // 获取列表
   getList: async () => {
-    bPage.loading = true;
+    debugPage.loading = true;
     let data = {
-      currentPage: bPage.currentPage,
-      pageCount: bPage.pageSize,
-      eTaskId: bPage.selectTaskValue,
-      tkLogAutoManual: bPage.tkLogAutoManualValue,
-      tkLogCostTime: bPage.tkLogCostTimeValue,
-      tkLogDsSourceId: bPage.selectDsSourceValue,
-      tkLogDsDestinationId: bPage.selectDsDestinationValue,
-      tkLogExeStatus: bPage.tkLogExeStatusValue,
+      currentPage: debugPage.currentPage,
+      pageCount: debugPage.pageSize,
+      eTaskId: debugPage.taskIdValue,
       managerId: sessionStorage.getItem("token"),
     };
-    if (bPage.searchDateTimeVale != null) {
-      data.startTime = bPage.searchDateTimeVale[0]
-      data.endTime = bPage.searchDateTimeVale[1]
+    if (debugPage.searchDateTimeVale != null) {
+      data.startTime = debugPage.searchDateTimeVale[0]
+      data.endTime = debugPage.searchDateTimeVale[1]
     }
     let res = await axios({
       method: "get",
-      url: api.value + "/wanzai/api/smartDataSourceLog/queryPageSmartDataSourceLog",
+      url: api.value + "/wanzai/api/smartDataTask/queryPageSmartDataTaskDebug",
       headers: {
         // token: sessionStorage.getItem("token"),
         // user_head: sessionStorage.getItem("userhead"),
@@ -305,17 +408,17 @@ const bPage = reactive({
     });
     // console.log(res, "业务日志");
     if (res.data.code == 200) {
-      bPage.loading = false;
-      bPage.tableData = reactive([]);
-      bPage.tableTotal = res.data.data.totalCount || 0;
+      debugPage.loading = false;
+      debugPage.tableData = reactive([]);
+      debugPage.tableTotal = res.data.data.total || 0;
       let i = 1;
       res.data.data.list.forEach(element => {
-        element.xuhao_ds = (bPage.currentPage - 1) * bPage.pageSize + i
-        bPage.tableData.push(element);
+        element.xuhao = (debugPage.currentPage - 1) * debugPage.pageSize + i
+        debugPage.tableData.push(element);
         i++;
       });
     } else {
-      bPage.loading = false;
+      debugPage.loading = false;
       ElMessage({
         type: "error",
         showClose: true,
@@ -324,29 +427,120 @@ const bPage = reactive({
       });
     }
   },
-  // 获取任务
-  getTask: async () => {
-    let data = {
-      currentPage: 1,
-      pageCount: 100,
-      managerId: sessionStorage.getItem("token"),
-    };
+  // 表格斑马纹颜色修改
+  tableRowClassName: ({ row, rowIndex }) => {
+    if (rowIndex % 2 === 0) {
+      return "even";
+    } else if (rowIndex % 2 !== 0) {
+      return "odd";
+    }
+    return "";
+  },
+  // 分页
+  handleCurrentChange: (value) => {
+    // console.log(value);
+    debugPage.currentPage = value;
+    debugPage.getList();
+  },
+  // 搜索功能
+  searchBtn: lodash.debounce(async () => {
+    debugPage.getList();
+  }, 300),
+});
+
+const bPage = reactive({
+  loading: ref(false), // 加载状态
+  actionNameValue: ref(""), // 操作名称
+  actionPeopleValue: ref(""), // 操作人
+  actionModuleValue: ref(""), // 操作模块
+  actionBusinessValue: ref(""), // 操作业务
+  searchDateTimeVale: ref(""), // 查询时间
+  shortcuts: ref([
+    {
+      text: '今天',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime())
+        start.setHours(0, 0, 0, 0)
+        return [start, end]
+      },
+    },
+    {
+      text: '昨天',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
+        start.setHours(0, 0, 0, 0)
+        end.setTime(start.getTime())
+        end.setHours(23, 59, 59, 999)
+        return [start, end]
+      },
+    },
+    {
+      text: '最近一周',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+        start.setHours(0, 0, 0, 0)
+        return [start, end]
+      },
+    },
+    {
+      text: '最近一个月',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+        start.setHours(0, 0, 0, 0)
+        return [start, end]
+      },
+    },
+    {
+      text: '最近三个月',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+        start.setHours(0, 0, 0, 0)
+        return [start, end]
+      },
+    },
+  ]),
+  selectTaskOptions: reactive([]), // 操作名称
+  // 表格数据
+  tableData: reactive([]),
+  actionName: reactive([]), // 操作名称
+  actionPeople: reactive([]), // 操作人
+  actionModule: reactive([]), // 操作模块
+  actionBusiness: reactive([]), // 操作业务
+  startTime: reactive([]), // 开始时间
+  currentPage: ref(1), // 当前页
+  pageSize: ref(10), // 每页显示条数
+  tableTotal: ref(0), // 当前总数
+  // 获取操作名称
+  getActionName: async () => {
     let res = await axios({
       method: "get",
-      url: api.value + "/wanzai/api/smartDataTask/queryPageSmartDataTask",
+      url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionName",
       headers: {
         // token: sessionStorage.getItem("token"),
         // user_head: sessionStorage.getItem("userhead"),
       },
-      params: data,
     });
+    // console.log(res, "操作名称");
     if (res.data.code == 200) {
-      bPage.selectTaskOptions = reactive([]);
-      res.data.data.list.forEach((element) => {
-        bPage.selectTaskOptions.push({
-          value: element.tkId,
-          label: element.tkName,
-        });
+      bPage.actionName = reactive([]);
+      let i = 1;
+      res.data.data.list.forEach(element => {
+        let item = {
+          value: i,
+          label: element,
+        };
+        bPage.actionName.push(item);
+        i++;
       });
     } else {
       ElMessage({
@@ -357,34 +551,27 @@ const bPage = reactive({
       });
     }
   },
-  // 获取数据源
-  getDs: async () => {
-    let data = {
-      currentPage: 1,
-      pageCount: 100,
-      managerId: sessionStorage.getItem("token"),
-    };
+  // 获取操作人
+  getActionPeople: async () => {
     let res = await axios({
       method: "get",
-      url: api.value + "/wanzai/api/smartDataClass/queryPageSmartDataSource",
+      url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionPeople",
       headers: {
         // token: sessionStorage.getItem("token"),
         // user_head: sessionStorage.getItem("userhead"),
       },
-      params: data,
     });
+    // console.log(res, "操作名称");
     if (res.data.code == 200) {
-      bPage.selectDsSourceOptions = reactive([]);
-      bPage.selectDsDestinationOptions = reactive([]);
-      res.data.data.list.forEach((element) => {
-        bPage.selectDsSourceOptions.push({
-          value: element.dsId,
-          label: element.dsName,
-        });
-        bPage.selectDsDestinationOptions.push({
-          value: element.dsId,
-          label: element.dsName,
-        });
+      bPage.actionPeople = reactive([]);
+      let i = 1;
+      res.data.data.list.forEach(element => {
+        let item = {
+          value: i,
+          label: element,
+        };
+        bPage.actionPeople.push(item);
+        i++;
       });
     } else {
       ElMessage({
@@ -395,19 +582,113 @@ const bPage = reactive({
       });
     }
   },
-  tabHandler: (v) => {
-    if (v == 1) {
-      taskTabVisible.value = true
-      businessTabVisible.value = false
+  // 获取操作模块
+  getActionModule: async () => {
+    let res = await axios({
+      method: "get",
+      url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionModule",
+      headers: {
+        // token: sessionStorage.getItem("token"),
+        // user_head: sessionStorage.getItem("userhead"),
+      },
+    });
+    // console.log(res, "操作名称");
+    if (res.data.code == 200) {
+      bPage.actionModule = reactive([]);
+      let i = 1;
+      res.data.data.list.forEach(element => {
+        let item = {
+          value: i,
+          label: element,
+        };
+        bPage.actionModule.push(item);
+        i++;
+      });
     } else {
-      taskTabVisible.value = false
-      businessTabVisible.value = true
+      ElMessage({
+        type: "error",
+        showClose: true,
+        message: res.data.message,
+        center: true,
+      });
     }
   },
-  //查看按钮
-  editClick: async (row) => {
-    bPage.viewVisible = true;
-    bPage.content = row.tkLogErrException;
+  // 获取操作业务
+  getActionBusiness: async () => {
+    let res = await axios({
+      method: "get",
+      url: api.value + "/wanzai/api/smartDataSourceLog/queryDistinctActionBusiness",
+      headers: {
+        // token: sessionStorage.getItem("token"),
+        // user_head: sessionStorage.getItem("userhead"),
+      },
+    });
+    // console.log(res, "操作名称");
+    if (res.data.code == 200) {
+      bPage.actionBusiness = reactive([]);
+      let i = 1;
+      res.data.data.list.forEach(element => {
+        let item = {
+          value: i,
+          label: element,
+        };
+        bPage.actionBusiness.push(item);
+        i++;
+      });
+    } else {
+      ElMessage({
+        type: "error",
+        showClose: true,
+        message: res.data.message,
+        center: true,
+      });
+    }
+  },
+  // 获取列表
+  getList: async () => {
+    bPage.loading = true;
+    let data = {
+      currentPage: bPage.currentPage,
+      pageCount: bPage.pageSize,
+      logActionName: bPage.actionNameValue,
+      logActionPeople: bPage.actionPeopleValue,
+      logActionModule: bPage.actionModuleValue,
+      logActionBusiness: bPage.actionBusinessValue,
+      managerId: sessionStorage.getItem("token"),
+    };
+    if (bPage.searchDateTimeVale != null) {
+      data.startTime = bPage.searchDateTimeVale[0]
+      data.endTime = bPage.searchDateTimeVale[1]
+    }
+    let res = await axios({
+      method: "get",
+      url: api.value + "/wanzai/api/smartDataSourceLog/queryPageSmartDataSourceLog",
+      headers: {
+        // token: sessionStorage.getItem("token"),
+        // user_head: sessionStorage.getItem("userhead"),
+      },
+      params: data,
+    });
+    // console.log(res, "业务日志");
+    if (res.data.code == 200) {
+      bPage.loading = false;
+      bPage.tableData = reactive([]);
+      bPage.tableTotal = res.data.data.totalCount || 0;
+      let i = 1;
+      res.data.data.list.forEach(element => {
+        element.xuhao = (bPage.currentPage - 1) * bPage.pageSize + i
+        bPage.tableData.push(element);
+        i++;
+      });
+    } else {
+      bPage.loading = false;
+      ElMessage({
+        type: "error",
+        showClose: true,
+        message: res.data.message,
+        center: true,
+      });
+    }
   },
   // 表格斑马纹颜色修改
   tableRowClassName: ({ row, rowIndex }) => {
@@ -442,11 +723,34 @@ const mPage = reactive({
   searchDateTimeVale: ref(""), // 查询时间
   shortcuts: ref([
     {
+      text: '今天',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime())
+        start.setHours(0, 0, 0, 0)
+        return [start, end]
+      },
+    },
+    {
+      text: '昨天',
+      value: () => {
+        const end = new Date()
+        const start = new Date()
+        start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)
+        start.setHours(0, 0, 0, 0)
+        end.setTime(start.getTime())
+        end.setHours(23, 59, 59, 999)
+        return [start, end]
+      },
+    },
+    {
       text: '最近一周',
       value: () => {
         const end = new Date()
         const start = new Date()
         start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+        start.setHours(0, 0, 0, 0)
         return [start, end]
       },
     },
@@ -456,6 +760,7 @@ const mPage = reactive({
         const end = new Date()
         const start = new Date()
         start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+        start.setHours(0, 0, 0, 0)
         return [start, end]
       },
     },
@@ -465,6 +770,7 @@ const mPage = reactive({
         const end = new Date()
         const start = new Date()
         start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+        start.setHours(0, 0, 0, 0)
         return [start, end]
       },
     },
@@ -515,7 +821,7 @@ const mPage = reactive({
       mPage.tableTotal = res.data.data.total || 0;
       let i = 1;
       res.data.data.list.forEach(element => {
-        element.xuhao_ds = (mPage.currentPage - 1) * mPage.pageSize + i
+        element.xuhao = (mPage.currentPage - 1) * mPage.pageSize + i
         mPage.tableData.push(element);
         i++;
       });
@@ -600,15 +906,6 @@ const mPage = reactive({
       });
     }
   },
-  tabHandler: (v) => {
-    if (v == 1) {
-      taskTabVisible.value = true
-      businessTabVisible.value = false
-    } else {
-      taskTabVisible.value = false
-      businessTabVisible.value = true
-    }
-  },
   //查看按钮
   editClick: async (row) => {
     mPage.viewVisible = true;
@@ -695,9 +992,15 @@ onBeforeMount(async () => {
   mPage.getList();
   mPage.getTask();
   mPage.getDs();
+
   bPage.getList();
-  bPage.getTask();
-  bPage.getDs();
+  bPage.getActionName();
+  bPage.getActionPeople();
+  bPage.getActionModule();
+  bPage.getActionBusiness();
+
+  debugPage.getList();
+  debugPage.getTaskList();
 });
 // 卸载后
 onUnmounted(() => {
@@ -722,7 +1025,8 @@ onUnmounted(() => {
     display: flex;
     align-items: center;
     height: 60px;
-    margin: 0 30px;
+    //margin: 0 30px;
+    padding: 10px 30px 0 30px;
     border-bottom: 1px solid #ccc;
     color: rgb(0, 0, 0);
     font-size: 18px;
@@ -730,8 +1034,10 @@ onUnmounted(() => {
 
     span {
       display: block;
-      height: 60px;
-      line-height: 60px;
+      height: 40px;
+      line-height: 40px;
+      padding: 5px 10px;
+      margin: 0 1px 0px 1px;
     }
 
     .is_active {
@@ -740,20 +1046,16 @@ onUnmounted(() => {
   }
 
   .cameratxt {
-    display: inline-block;
-    margin: 5px;
-    padding: 0 10px;
     background-color: rgb(6, 88, 240);
     color: #ffffff;
     cursor: pointer;
+    border-radius: 5px 5px 0 0;
   }
 
   .cameratxt-grey {
-    display: inline-block;
-    margin: 5px;
-    padding: 0 10px;
     background-color: #eee;
     cursor: pointer;
+    border-radius: 5px 5px 0 0;
   }
 
   .cameratxt:hover,