IDCDatasync-vue/src/views/system/LogList.vue
2025-04-23 21:53:15 +08:00

205 lines
5.8 KiB
Vue

<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="4" :sm="8">
<a-form-item label="登录地址">
<a-input placeholder="请输入" v-model="queryParam.ipInfo"></a-input>
</a-form-item>
</a-col>
<a-col :md="4" :sm="8">
<a-form-item label="登录名称">
<a-input placeholder="请输入" v-model="queryParam.keyWord"></a-input>
</a-form-item>
</a-col>
<a-col :md="4" :sm="8">
<a-form-item label="开始日期">
<a-date-picker v-model="queryParam.startTime" />
</a-form-item>
</a-col>
<a-col :md="4" :sm="8">
<a-form-item label="结束日期">
<a-date-picker v-model="queryParam.endTime" />
</a-form-item>
</a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="4" :sm="24">
<a-button type="primary" style="left: 10px" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload"
style="margin-left: 8px;left: 10px">重置</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div class="linese"></div>
<!-- table区域-begin -->
<div style="height:calc(100vh - 316px);background: #e6e9f1;overflow:hidden;padding: 15px;">
<a-table ref="table" size="middle" rowKey="id" :columns="columns" :dataSource="dataSource"
:pagination="ipagination" :loading="loading" @change="handleTableChange">
<!-- 字符串超长截取省略号显示-->
<span slot="logContent" slot-scope="text, record">
<j-ellipsis :value="text" :length="40" />
</span>
<!-- <span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">详情</a>
</span> -->
</a-table>
</div>
<div class="linese"></div>
<!-- table区域-end -->
</a-card>
</template>
<script>
import { filterObj } from '@/utils/util';
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import JEllipsis from '@/components/jeecg/JEllipsis'
export default {
name: "LogList",
mixins: [JeecgListMixin],
components: {
JEllipsis
},
data() {
return {
description: '这是日志管理页面',
// 查询条件
queryParam: {
ipInfo: '',
createTimeRange: [],
logType: '1',
keyWord: '',
},
tabKey: "1",
// 表头
columns: [
{
title: '访问编号',
dataIndex: '',
key: 'rowIndex',
align: "center",
customRender: function (t, r, index) {
return parseInt(index) + 1;
}
},
{
title: '登录用户',
align: "left",
dataIndex: 'userid',
scopedSlots: { customRender: 'logContent' },
sorter: true
},
{
title: '用户名称',
dataIndex: 'username',
align: "center",
sorter: true
},
{
title: '登录地址',
dataIndex: 'ip',
align: "center",
sorter: true
},
{
title: '操作信息',
dataIndex: 'logContent',
align: "center",
sorter: true
},
{
title: '登录时间',
dataIndex: 'createTime',
align: "center",
sorter: true
},
// {
// title: '操作',
// dataIndex: 'action',
// align: "center",
// width: 180,
// scopedSlots: { customRender: 'action' },
// }
],
operateColumn:
{
title: '操作类型',
dataIndex: 'operateType_dictText',
align: "center",
},
labelCol: {
xs: { span: 1 },
sm: { span: 2 },
},
wrapperCol: {
xs: { span: 10 },
sm: { span: 16 },
},
url: {
list: "/sys/log/list",
},
}
},
methods: {
getQueryParams() {
var param = Object.assign({}, this.queryParam, this.isorter);
param.field = this.getQueryField();
param.pageNo = this.ipagination.current;
param.pageSize = this.ipagination.pageSize;
delete param.createTimeRange; // 时间参数不传递后台
if (this.superQueryParams) {
param['superQueryParams'] = encodeURI(this.superQueryParams)
param['superQueryMatchType'] = this.superQueryMatchType
}
return filterObj(param);
},
// 重置
searchReset() {
var that = this;
var logType = that.queryParam.logType;
that.queryParam = {
ipInfo: '',
createTimeRange: [],
logType: '1',
keyWord: '',
}; //清空查询区域参数
that.queryParam.logType = logType;
that.loadData(this.ipagination.current);
},
// 日志类型
callback(key) {
// 动态添加操作类型列
if (key == 2) {
this.tabKey = '2';
this.columns.splice(7, 0, this.operateColumn);
} else if (this.columns.length == 9) {
this.tabKey = '1';
this.columns.splice(7, 1);
}
let that = this;
that.queryParam.logType = key;
that.loadData();
},
onDateChange: function (value, dateString) {
console.log(dateString[0], dateString[1]);
this.queryParam.createTime_begin = dateString[0];
this.queryParam.createTime_end = dateString[1];
},
onDateOk(value) {
console.log(value);
},
}
}
</script>
<style scoped>
@import '~@assets/less/common.less'
</style>