You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.4 KiB

2 years ago
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="filter-wrapper">
<el-form :inline="true" :model="dataForm" @submit.native.prevent @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="input" placeholder="关键词" class="input-with-select" clearable>
<el-select slot="prepend" v-model="select" placeholder="请选择">
2 years ago
<el-option label="工号" value="operateUserJobNumber" />
<el-option label="用户姓名" value="operateUserName" />
<el-option label="用户操作" value="operateInfo" />
2 years ago
</el-select>
<el-button slot="append" icon="el-icon-search" @click="getDataList()">{{ $t('query') }}</el-button>
</el-input>
</el-form-item>
</el-form>
<el-table
v-loading="dataListLoading"
:data="dataList"
border
style="width: 100%;"
@sort-change="dataListSortChangeHandle"
>
2 years ago
<el-table-column prop="operateUserJobNumber" :label="'工号'" header-align="center" align="center" width="120" />
<el-table-column prop="operateUserName" :label="'用户姓名'" header-align="center" align="center" width="120" />
<el-table-column prop="operateInfo" :label="'用户操作'" />
<el-table-column prop="projectName" :label="'课题'" header-align="center" align="center" show-overflow-tooltip />
<el-table-column prop="operateTime" :label="'操作时间'" header-align="center" sortable="custom" width="180" />
2 years ago
</el-table>
<!-- 分页 -->
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
/>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
export default {
mixins: [mixinViewModule],
data() {
return {
mixinViewModuleOptions: {
2 years ago
getDataListURL: '/operate/log/page',
2 years ago
getDataListIsPage: true
},
2 years ago
select: 'operateInfo',
2 years ago
input: '',
dataForm: {
2 years ago
projectId: this.$route.query.projectId,
operateUserJobNumber: '',
operateUserName: '',
operateInfo: '',
2 years ago
}
}
},
watch: {
select(val) { this.dataFormHandle() },
input(val) { this.dataFormHandle() }
},
methods: {
dataFormHandle() {
const inputValue = !(this.input) ? null : this.input
switch (this.select) {
2 years ago
case 'operateUserName':
this.dataForm.operateUserName = inputValue
this.dataForm.operateUserJobNumber = ''
this.dataForm.operateInfo = ''
2 years ago
break
2 years ago
case 'operateUserJobNumber':
this.dataForm.operateUserJobNumber = inputValue
this.dataForm.operateUserName = ''
this.dataForm.operateInfo = ''
2 years ago
break
2 years ago
case 'operateInfo':
this.dataForm.operateInfo = inputValue
this.dataForm.operateUserJobNumber = ''
this.dataForm.operateUserName = ''
2 years ago
break
}
}
}
}
</script>
<style lang="scss" scoped>
.input-with-select {
width: 500px;
::v-deep .el-select .el-input {
width: 120px;
}
::v-deep .el-input-group__prepend {
background-color: #fff;
}
}
</style>