From 5bd66255ccd4e995337b9039094964d2677db4cc Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 22 二月 2022 17:19:06 +0800
Subject: [PATCH] 完善日志监控模块, 需要配合valog-server使用

---
 src/pages/syslog/index/App.vue |  208 ++++++++++++++++++----------------------
 src/api/log.ts                 |   49 +++++----
 2 files changed, 122 insertions(+), 135 deletions(-)

diff --git a/src/api/log.ts b/src/api/log.ts
index 603edc8..c1d29a8 100644
--- a/src/api/log.ts
+++ b/src/api/log.ts
@@ -1,35 +1,42 @@
-import request from "@/scripts/httpRequest";
-
+import request from "@/scripts/httpRequest"
 
 // /data/api-v//
 
-
 export const queryOperationLog = (data: any) => {
-    return request({
-        url: "/data/api-v/log/queryOperationLog",
-        method: "post",
-        data
-    })
+  return request({
+    url: "/data/api-v/log/queryOperationLog",
+    method: "post",
+    data
+  })
 }
 
 export const getOperations = (query: any) => {
-    return request({
-        url: "/data/api-v/log/operations",
-        method: "get",
+  return request({
+    url: "/data/api-v/log/operations",
+    method: "get",
     params: query
-    })
+  })
 }
 export const getModules = (query: any) => {
-    return request({
-        url: "/data/api-v/log/modules",
-        method: "get",
+  return request({
+    url: "/data/api-v/log/modules",
+    method: "get",
     params: query
-    })
+  })
 }
+
 export const queryScheduleLog = (data: any) => {
-    return request({
-        url: "/data/api-v/log/queryScheduleLog",
-        method: "post",
-        data
-    })
+  return request({
+    url: "/data/api-v/log/queryScheduleLog",
+    method: "post",
+    data
+  })
+}
+
+export const querySystemLog = (data: any) => {
+  return request({
+    url: "/data/api-l/vasystemLogs",
+    method: "post",
+    data
+  })
 }
diff --git a/src/pages/syslog/index/App.vue b/src/pages/syslog/index/App.vue
index e9e8c79..be427c5 100644
--- a/src/pages/syslog/index/App.vue
+++ b/src/pages/syslog/index/App.vue
@@ -2,7 +2,7 @@
   <div class="s-log-management">
     <div class="top">
       <!-- <b>鏃ュ織绫诲瀷:</b>
-      <el-select v-model="logValue" placeholder="璇烽�夋嫨" size="small">
+      <el-select v-model="logLevel" placeholder="璇烽�夋嫨" size="small">
         <el-option
           v-for="item in logOptions"
           :key="item.value"
@@ -18,25 +18,12 @@
         range-separator="鑷�"
         start-placeholder="寮�濮嬫棩鏈�"
         end-placeholder="缁撴潫鏃ユ湡"
+        value-format="yyyy-MM-dd HH:mm:ss"
         style="width: 244px;"
       ></el-date-picker>
-      <b>妯″潡:</b>
-      <el-select v-model="logValue" placeholder="璇烽�夋嫨" size="mini">
-        <el-option
-          v-for="item in logOptions"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-        ></el-option>
-      </el-select>
-      <b>鍔熻兘:</b>
-      <el-select v-model="logValue" placeholder="璇烽�夋嫨" size="mini">
-        <el-option
-          v-for="item in logOptions"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-        ></el-option>
+      <b>鏃ュ織绾у埆:</b>
+      <el-select v-model="logLevel" placeholder="璇烽�夋嫨" size="mini">
+        <el-option v-for="item in logOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
       </el-select>
       <el-input
         v-model="searchValue"
@@ -45,9 +32,9 @@
         style="width: 150px;margin: 0px 10px;"
         size="mini"
       ></el-input>
-      <el-button type="primary" size="mini">鎼滅储</el-button>
-      <el-button type="danger" size="mini" @click="delSelected">鎵归噺鍒犻櫎</el-button>
-      <el-button type="text" size="mini" style="font-size: 13px;font-weight: 600;">瀵煎嚭</el-button>
+      <el-button type="primary" size="mini" @click="getVaSystemLog">鎼滅储</el-button>
+      <!-- <el-button type="danger" size="mini" @click="delSelected">鎵归噺鍒犻櫎</el-button> -->
+      <!-- <el-button type="text" size="mini" style="font-size: 13px;font-weight: 600;">瀵煎嚭</el-button> -->
     </div>
     <div class="foot-table s-table">
       <el-table
@@ -55,123 +42,116 @@
         highlight-current-row
         :data="tableData"
         style="width: 100%"
-        :header-cell-style="{background:'#f8f8f8',color:'#222222'}"
+        :header-cell-style="{ background: '#f8f8f8', color: '#222222' }"
         @selection-change="handleSelectionChange"
       >
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="index" label="搴忓彿"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="logtype" label="鏃ュ織绫诲瀷"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="username" label="鐢ㄦ埛鍚�"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="ipaddress" label="IP鍦板潃"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="operation" label="鎿嶄綔鍔熻兘"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="operatetime" label="鎿嶄綔鏃堕棿"></el-table-column>
-        <el-table-column :align="'center'" sortable prop="operateinfo" label="鎿嶄綔淇℃伅"></el-table-column>
-        <el-table-column label="鎿嶄綔" :align="'center'">
+        <el-table-column :align="'center'" prop="createDate" label="鍒涘缓鏃ユ湡" width="200px"></el-table-column>
+        <el-table-column :align="'center'" prop="procName" label="鏃ュ織妯″潡" width="100px"></el-table-column>
+        <el-table-column :align="'center'" prop="level" label="鏃ュ織绛夌骇" width="100px">
           <template slot-scope="scope">
-            <el-button
-              type="text"
-              style="color: red;font-size:16px"
-              @click="handleDelete(scope.$index, scope.row)"
-              icon="el-icon-delete"
-            ></el-button>
+            <span>{{ scope.row.level | leverFilter }}</span>
           </template>
         </el-table-column>
+        <el-table-column :align="'left'" prop="info" label="鏃ュ織鍐呭"></el-table-column>
       </el-table>
     </div>
+
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="page"
+      :page-sizes="[15, 30, 50, 100]"
+      :page-size="15"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="total"
+    >
+    </el-pagination>
   </div>
 </template>
 
 <script>
+import { querySystemLog } from "@/api/log"
+let logLevels = [
+  {
+    value: -1,
+    label: "鍏ㄩ儴"
+  },
+  {
+    value: 0,
+    label: "閿欒"
+  },
+  {
+    value: 1,
+    label: "璀﹀憡"
+  },
+  {
+    value: 2,
+    label: "淇℃伅"
+  }
+]
 export default {
   data() {
     return {
-      tableData: [
-        {
-          index: "1",
-          logtype: "寮傚父",
-          username: "admin",
-          ipaddress: "192.168.10.110",
-          operation: "娣诲姞鎽勫儚鏈�",
-          operatetime: "2019-5-31 16:38:21",
-          operateinfo: "娣诲姞鎿嶄綔"
-        },
-        {
-          index: "2",
-          logtype: "淇℃伅",
-          username: "admin",
-          ipaddress: "192.168.10.108",
-          operation: "鍒犻櫎鎽勫儚鏈�",
-          operatetime: "2019-5-31 16:38:21",
-          operateinfo: "娣诲姞鎿嶄綔"
-        },
-        {
-          index: "3",
-          logtype: "鎿嶄綔",
-          username: "admin",
-          ipaddress: "192.168.10.110",
-          operation: "娣诲姞鎽勫儚鏈�",
-          operatetime: "2019-5-31 16:38:21",
-          operateinfo: "娣诲姞鎿嶄綔"
-        },
-        {
-          index: "4",
-          logtype: "寮傚父",
-          username: "admin",
-          ipaddress: "192.168.10.110",
-          operation: "娣诲姞鎽勫儚鏈�",
-          operatetime: "2019-5-31 16:38:21",
-          operateinfo: "娣诲姞鎿嶄綔"
-        },
-        {
-          index: "5",
-          logtype: "寮傚父",
-          username: "admin",
-          ipaddress: "192.168.10.110",
-          operation: "鍒犻櫎鎽勫儚鏈�",
-          operatetime: "2019-5-31 16:38:21",
-          operateinfo: "娣诲姞鎿嶄綔"
-        },
-        {
-          index: "6",
-          logtype: "寮傚父",
-          username: "admin",
-          ipaddress: "192.168.10.110",
-          operation: "娣诲姞鎽勫儚鏈�",
-          operatetime: "2019-5-31 16:38:21",
-          operateinfo: "娣诲姞鎿嶄綔"
-        }
-      ],
+      tableData: [],
       multipleSelection: [],
-      logOptions: [
-        {
-          value: "鍏ㄩ儴绫诲瀷",
-          label: "鍏ㄩ儴绫诲瀷"
-        },
-        {
-          value: "鍏朵粬绫诲瀷",
-          label: "鍏朵粬绫诲瀷"
+      logOptions: logLevels,
+      logLevel: -1,
+      timeValue: "",
+      searchValue: "",
+      page: 1,
+      pageSize: 15,
+      total: 0
+    }
+  },
+  filters: {
+    leverFilter(val) {
+      for (let i = 0; i < logLevels.length; i++) {
+        if (val == logLevels[i].value) {
+          return logLevels[i].label
         }
-      ],
-      logValue: "鍏ㄩ儴绫诲瀷",
-      timeValue: [
-        new Date(2000, 10, 10, 10, 10),
-        new Date(2000, 10, 11, 10, 10)
-      ],
-      searchValue: ""
-    };
+      }
+    }
+  },
+  mounted() {
+    this.getVaSystemLog()
   },
   methods: {
     handleDelete(index, row) {
-      console.log(index, row);
+      console.log(index, row)
     },
     handleSelectionChange(val) {
-      this.multipleSelection = val;
+      this.multipleSelection = val
     },
     delSelected() {
-      console.log(this.multipleSelection);
+      console.log(this.multipleSelection)
+    },
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.getVaSystemLog()
+    },
+    handleCurrentChange(val) {
+      this.page = val
+      this.getVaSystemLog()
+    },
+    getVaSystemLog() {
+      let body = {
+        FuzzySearch: this.searchValue,
+        level: this.logLevel,
+        page: this.page,
+        pageSize: this.pageSize
+      }
+      if (!!this.timeValue && this.timeValue.length == 2) {
+        body.timeStart = this.timeValue[0]
+        body.timeEnd = this.timeValue[1]
+      }
+
+      querySystemLog(body).then((res) => {
+        this.tableData = res.data.list
+        this.total = res.data.total
+      })
     }
   }
-};
+}
 </script>
 <style lang="scss">
 .s-log-management {
@@ -181,7 +161,7 @@
   box-sizing: border-box;
   .top {
     width: 100%;
-    
+
     margin-bottom: 20px;
     overflow-y: auto;
     min-width: 1156px;

--
Gitblit v1.8.0