<template>
|
<div class="logLog_box">
|
<My-bread
|
:list="[
|
`${$t('operatManage.operatManage')}`,
|
`${$t('operatManage.logLog')}`,
|
]"
|
></My-bread>
|
<el-divider />
|
<div class="inquire">
|
<div class="herder_box">
|
{{ $t('operatManage.operationLogObj.queryRegion') }}
|
</div>
|
<el-form ref="formData1" :model="form" :inline="true">
|
<el-form-item
|
:label="$t('operatManage.operationLogObj.username')"
|
prop="uname"
|
>
|
<el-input
|
v-model="form.uname"
|
:placeholder="$t('operatManage.operationLogObj.pleaseInput')"
|
/>
|
</el-form-item>
|
|
<el-form-item
|
:label="$t('operatManage.operationLogObj.operationType')"
|
prop="type"
|
>
|
<el-select
|
clearable
|
v-model="form.type"
|
:placeholder="$t('operatManage.operationLogObj.pleaseSelect')"
|
>
|
<el-option :label="$t('loglog.login')" value="1" />
|
<el-option :label="$t('loglog.checkout')" value="2" />
|
<el-option :label="$t('loglog.logout')" value="3" />
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
prop="start"
|
:label="$t('operatManage.operationLogObj.startTime')"
|
>
|
<el-date-picker
|
format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
v-model="form.start"
|
style="width: 100%"
|
type="datetime"
|
:placeholder="$t('operatManage.operationLogObj.optionDate')"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item
|
prop="end"
|
:label="$t('operatManage.operationLogObj.endTime')"
|
>
|
<el-date-picker
|
format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
v-model="form.end"
|
style="width: 100%"
|
type="datetime"
|
:placeholder="$t('operatManage.operationLogObj.optionDate')"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item>
|
<el-button @click="onSubmit" icon="el-icon-search">{{
|
$t('operatManage.operationLogObj.inquire')
|
}}</el-button>
|
<el-button @click="onEmpty('formData1')" icon="el-icon-delete">{{
|
$t('operatManage.operationLogObj.empty')
|
}}</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
<!-- 表格显示 -->
|
<div class="table_box">
|
<el-table :data="tableData" stripe style="width: 100%" height="85%">
|
<el-table-column
|
width="150"
|
type="index"
|
:label="$t('loglog.serialnumber')"
|
/>
|
<el-table-column prop="uname" :label="$t('loglog.username')" />
|
<el-table-column
|
prop="appid"
|
:label="$t('loglog.applicationProgram')"
|
:formatter="formatAppid"
|
/>
|
<el-table-column prop="ip" :label="$t('loglog.ipadress')" />
|
<el-table-column prop="descr" :label="$t('loglog.describe')" />
|
<el-table-column
|
prop="optime"
|
:formatter="formatData"
|
:label="$t('loglog.operationtime')"
|
/>
|
<el-table-column
|
prop="type"
|
:formatter="formatType"
|
:label="$t('loglog.operationtype')"
|
/>
|
<el-table-column
|
prop="status"
|
:formatter="formatStatus"
|
:label="$t('loglog.operationStatus')"
|
/>
|
</el-table>
|
<!-- 分页 -->
|
<div style="margin-top: 40px" class="pagination_box">
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="listData.pageIndex"
|
:page-sizes="[10, 20, 30, 40]"
|
:page-size="listData.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="count"
|
>
|
</el-pagination>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import MyBread from '../../components/MyBread.vue';
|
import { loginSelectByPageAndCount } from '../../api/api';
|
export default {
|
//import引入的组件需要注入到对象中才能使用
|
components: {
|
MyBread,
|
},
|
|
data() {
|
return {
|
currentPage4: 1,
|
form: {},
|
tableData: [],
|
listData: {
|
pageIndex: 1,
|
pageSize: 10,
|
},
|
count: 0,
|
};
|
},
|
methods: {
|
//格式化列表
|
formatType(row, column) {
|
let data;
|
switch (row[column.property]) {
|
case 1:
|
data = '登录';
|
break;
|
case 2:
|
data = '校验';
|
break;
|
case 3:
|
data = '登出';
|
break;
|
}
|
return data;
|
},
|
formatStatus(row, column) {
|
let data;
|
switch (row[column.property]) {
|
case 1:
|
data = '成功';
|
break;
|
case 0:
|
data = '失败';
|
break;
|
}
|
return data;
|
},
|
formatAppid(row, column) {
|
let data;
|
switch (row[column.property]) {
|
case 1:
|
data = '管道基础大数据平台';
|
break;
|
case 2:
|
data = '外部系统集成';
|
break;
|
}
|
return data;
|
},
|
//格式化时间
|
add0(m) {
|
return m < 10 ? '0' + m : m;
|
},
|
//格式化时间
|
format(shijianchuo) {
|
//shijianchuo是整数,否则要parseInt转换
|
var time = new Date(shijianchuo);
|
var y = time.getFullYear();
|
var m = time.getMonth() + 1;
|
var d = time.getDate();
|
var h = time.getHours();
|
var mm = time.getMinutes();
|
var s = time.getSeconds();
|
return (
|
y + '-' + this.add0(m) + '-' + this.add0(d)
|
// " " +
|
// this.add0(h) +
|
// ":" +
|
// this.add0(mm) +
|
// ":" +
|
// this.add0(s)
|
);
|
},
|
//格式化列表
|
formatData(row, column) {
|
let data = row[column.property];
|
if (data == null) {
|
return data;
|
}
|
return this.format(data);
|
},
|
handleSizeChange(val) {
|
this.listData.pageSize = val;
|
this.getList();
|
},
|
handleCurrentChange(val) {
|
this.listData.pageIndex = val;
|
this.getList();
|
},
|
onSubmit() {
|
this.listData = { ...this.listData, ...this.form };
|
// console.log(this.listData)
|
this.getList();
|
},
|
onEmpty(formData1) {
|
this.$refs[formData1].resetFields(); //重置表单数据
|
// this.form = {};
|
this.form.start = null;
|
this.form.end = null;
|
},
|
async getList() {
|
const data = await loginSelectByPageAndCount(this.listData);
|
|
if (data.code != 200) {
|
return this.$message.error('列表调用失败');
|
}
|
this.tableData = data.result;
|
this.count = data.count;
|
},
|
},
|
created() {
|
var val = this.$store.state.currentPerms;
|
var permsEntity = this.$store.state.permsEntity;
|
for (var i = 0; i < permsEntity.length; i++) {
|
if (permsEntity[i].perms == val) {
|
// this.showPermsMenu(permsEntity[i]);
|
console.log(permsEntity[i].tag);
|
}
|
}
|
this.getList();
|
},
|
};
|
</script>
|
<style lang="less" scoped>
|
//@import url(); 引入公共css类
|
.logLog_box {
|
background: rgb(240, 242, 245);
|
border-radius: 10px;
|
height: 100%;
|
padding: 10px;
|
box-sizing: border-box;
|
.inquire {
|
padding: 10px;
|
margin-top: 20px;
|
background: #fff;
|
border-radius: 5px;
|
border: 1px solid rgb(202, 201, 204);
|
margin-bottom: 20px;
|
.herder_box {
|
padding: 10px;
|
border-bottom: 1px solid #ccc;
|
margin-bottom: 20px;
|
font-size: 14px;
|
}
|
}
|
.table_box {
|
padding: 10px;
|
background: #fff;
|
border-radius: 5px;
|
border: 1px solid rgb(202, 201, 204);
|
overflow: auto;
|
height: 70%;
|
}
|
.text-center {
|
text-align: center;
|
}
|
}
|
</style>
|