田源
2025-01-13 03e602bbaee807c42a22df05f1f00c558ffe9fa0
Source/plt-web/plt-web-ui/src/views/system/log/index.vue
@@ -11,10 +11,15 @@
      @search-change="handleSearch"
      @search-reset="handleReset"
      @size-change="sizeChange"
      @row-click="rowClickHandler"
      @current-change="currentChange"
    >
      <template slot="menuLeft" slot-scope="scope">
        <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">导出</el-button>
        <el-button v-if="permissionList.exportBtn" class="button-custom-icon" plain size="small" type="primary"
                   @click="exportClickHandler">
          <icon-show :name="permissionList.exportBtn.source"></icon-show>
          导出
        </el-button>
      </template>
    </avue-crud>
  </basic-container>
@@ -22,75 +27,76 @@
<script>
import basicOption from "@/util/basic-option";
import {getLogListByContion,getOperatingUsers,exportLog} from "@/api/system/log/logBasic";
import {getLogListByContion, getOperatingUsers, exportLog} from "@/api/system/log/logBasic";
import func from "@/util/func";
import {mapGetters} from "vuex";
export default {
name: "index",
  name: "index",
  data: function () {
    return {
      tableLoading: false,
      tableData: [],
      option: {
        ...basicOption,
        addBtn:false,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        calcHeight: -60,
        align:'left',
        headerAlign:'center',
        menu:false,
        align: 'left',
        headerAlign: 'center',
        menu: false,
        searchMenuSpan: 6,
        searchIcon:false,
        searchIcon: false,
        column: [
          {
            label: '用户名',
            prop: 'truename',
            search:true,
            prop: 'username',
            search: true,
            searchSpan: 4,
            searchLabel:'操作用户',
            type:'select',
            dicUrl:'/api/loginBasicController/getOperatingUsers',
            sortable:true,
            width: 150
            searchLabel: '操作用户',
            type: 'select',
            dicUrl: '/api/loginBasicController/getOperatingUsers',
            sortable: true,
            width: 200
          }, {
            label: '姓名',
            prop: 'username',
            sortable:true,
            prop: 'truename',
            sortable: true,
            width: 150
          },{
          }, {
            label: '用户IP',
            prop: 'userIp',
            search:true,
            search: true,
            searchSpan: 4,
            sortable:true,
            sortable: true,
            width: 150
          },{
          }, {
            label: '模块',
            prop: 'moduleName',
            sortable:true,
            sortable: true,
            overHidden: true,
          },{
          }, {
            label: '操作',
            prop: 'type',
            sortable:true,
            sortable: true,
            width: 150
          },{
          }, {
            label: '时间',
            prop: 'date',
            type:'date',
            search:true,
            type: 'date',
            search: true,
            searchOrder: 1,
            searchSpan: 8,
            searchRange: true,
            searchLabel:'查询日期',
            valueFormat:'yyyy-MM-dd',
            searchLabel: '查询日期',
            valueFormat: 'yyyy-MM-dd',
            width: 160
          },{
          }, {
            label: '描述',
            prop: 'result',
            overHidden: true,
            width:380,
            width: 380,
          },
        ]
      },
@@ -100,7 +106,9 @@
        total: 0,
        pageSizes: [10, 30, 50, 100],
      },
      searchParams: {}
      searchParams: {},
      selectList: [],
    }
  },
  watch: {
@@ -108,13 +116,27 @@
      this.getTableList();
    }
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false),
      };
    },
  },
  created() {
  },
  methods: {
    // 表格请求
    getTableList() {
      this.tableLoading = true;
      getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => {
      getLogListByContion(this.page.currentPage, this.page.pageSize, {
        'logType': this.$route.query.logType,
        'roleType': this.$route.query.roleType, ...this.searchParams
      }).then(res => {
        this.tableData = res.data.data;
        this.page.total = res.data.total;
        this.selectList = [];
        this.tableLoading = false;
      })
    },
@@ -122,10 +144,10 @@
    // 搜索查询
    handleSearch(params, done) {
      this.searchParams = {
        userName:params.truename,
        ipText:params.userIp,
        startDate:params.date[0],
        endDate:params.date[1]
        userName: params.truename,
        ipText: params.userIp,
        startDate: params.date[0],
        endDate: params.date[1]
      };
      this.getTableList();
@@ -148,19 +170,38 @@
      this.page.currentPage = val;
    },
    handleRefresh(){
    handleRefresh() {
      this.getTableList();
    },
    // 导出
    exportClickHandler() {
      const loading = this.$loading({});
      exportLog().then(res => {
      exportLog({
        'pageNo': 1,
        'pageSize': -1,
        'logType': this.$route.query.logType,
        'roleType': this.$route.query.roleType, ...this.searchParams
      }).then(res => {
        func.downloadFileByBlobHandler(res);
        this.createdLoading = false
        this.$message.success('导出成功');
        loading.close();
      })
    },
    // 行单选
    rowClickHandler(row) {
      func.rowClickHandler(
        row,
        this.$refs.logCrud,
        this.lastIndex,
        (newIndex) => {
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [row];
        }
      );
    },
  }
}
</script>