张晓波
2023-09-19 164694c47c35d6654df69b533e8dbf8b5423efc5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<template>
  <div class="main">
    <div class="main_header">
      <div class="header_item">
        <el-button :size="size" icon="el-icon-search"  v-if="showButton('search')" @click="searchLogInfo(true)">查询</el-button>
      </div>
    </div>
    <div class="main_content">
      <el-table
        v-loading="loading"
        :data="logList"
        height="100%">
        <el-table-column label="序号" width="55" align="center">
          <template #default="scope">
            <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="opModules" label="操作模块" align="center"></el-table-column>
        <el-table-column prop="opDesc" label="操作描述" align="center"></el-table-column>
        <el-table-column prop="logIp" label="日志IP" align="center"></el-table-column>
        <el-table-column prop="logUrl" label="日志Url" align="center"></el-table-column>
        <el-table-column prop="opType" label="日志类型" align="center"></el-table-column>
        <el-table-column prop="userName" label="操作人" align="center"></el-table-column>
        <el-table-column prop="opTime" label="操作时间" align="center"></el-table-column>
      </el-table>
    </div>
    <div class="main_footer">
      <el-pagination
        background
        @current-change="changePageNum"
        @size-change="changePageSize"
        :current-page="pageNum"
        :page-sizes="[10, 20, 50, 100]"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total">
      </el-pagination>
    </div>
  </div>
</template>
 
<script>
import { buttonPinia } from '../../pinia/index';
import { changeSize } from '../../plugins/public'; // 动态切换组件尺寸方法
  export default {
    data() {
      return {
        size: changeSize(),
        pageNum: 1,
        pageSize: 10,
        total: 0,
        loading: false,
        logList: [], // 日志列表信息
      }
    },
    mounted() {
      const that = this;
      // 根据窗口大小动态修改组件尺寸
      window.onresize = () => {
        that.size = changeSize();
      }
      that.searchLogInfo(true);
    },
    methods: {
      // 查询日志信息
      searchLogInfo(bol) {
        if(bol) {
          this.pageNum = 1;
        }
        let params = {
          pageNum: this.pageNum,
          pageSize: this.pageSize
        }
        this.loading = true;
        this.$api.System.searchLogInfo(params).then((res) => {
          if(res.statusMsg === 'ok') {
            this.total = res.data.total;
            this.logList = res.data.list;
          }
          this.loading = false;
        })
      },
      // 判断按钮权限信息
      showButton(str) {
        const pinia = buttonPinia();
        return pinia.$state.buttonInfo.includes(str);
      },
      // 切换页数
      changePageNum(page) {
        this.pageNum = page;
        this.searchLogInfo();
      },
      // 切换每页条数
      changePageSize(size) {
        this.pageSize = size;
        this.searchLogInfo();
      }
    }
  }
</script>
 
<style lang="sass" scoped>
@import '../../style/layout-main.scss';
</style>