|
|
@ -5,12 +5,13 @@ |
|
|
|
<!-- <el-button v-permission="permission.download" :loading="crud.downloadLoading" :disabled="!selections.length" size="mini" icon="el-icon-download" @click="handleDownload">导出</el-button> --> |
|
|
|
<el-button :loading="crud.downloadLoading" size="mini" icon="el-icon-download" @click="handleDownload">导出</el-button> |
|
|
|
<el-input |
|
|
|
v-model="keyWord" |
|
|
|
v-model="query.blurry" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入关键词" |
|
|
|
style="width: 300px;margin-right:10px;padding-left:10px" |
|
|
|
class="input-prepend filter-item" |
|
|
|
@keyup.enter.native="crud.toQuery" |
|
|
|
> |
|
|
|
<!-- <el-select slot="prepend" v-model="optionVal" style="width: 100px" @keyup.enter.native="crud.toQuery"> --> |
|
|
|
<el-select slot="prepend" v-model="optionVal" style="width: 100px"> |
|
|
@ -22,7 +23,7 @@ |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-input> |
|
|
|
<date-range-picker v-model="queryTime" class="date-item" /> |
|
|
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
|
|
|
<rrOperation /> |
|
|
|
</div> |
|
|
|
<el-table |
|
|
@ -35,12 +36,20 @@ |
|
|
|
> |
|
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
|
<el-table-column type="index" label="序号" width="100" align="center" /> |
|
|
|
<el-table-column prop="" label="登录账号" min-width="150" align="center" /> |
|
|
|
<el-table-column prop="" label="用户名" align="center" min-width="150" /> |
|
|
|
<el-table-column prop="" label="用户角色" align="center" min-width="150" /> |
|
|
|
<el-table-column prop="" label="所属部门" align="center" min-width="180" /> |
|
|
|
<el-table-column prop="" label="IP地址" align="center" min-width="180" /> |
|
|
|
<el-table-column prop="" label="登录时间" align="center" min-width="180" /> |
|
|
|
<el-table-column prop="account" label="登录账号" min-width="150" align="center" /> |
|
|
|
<el-table-column prop="username" label="用户名" align="center" min-width="150" /> |
|
|
|
<el-table-column prop="role" label="用户角色" align="center" min-width="150"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.role | parseRole }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="det" label="所属部门" align="center" min-width="180" /> |
|
|
|
<el-table-column prop="requestIp" label="IP地址" align="center" min-width="180" /> |
|
|
|
<el-table-column prop="create_time" label="操作时间" align="center" min-width="180"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.create_time | parseTime }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<pagination /> |
|
|
|
|
|
|
@ -49,18 +58,27 @@ |
|
|
|
|
|
|
|
<script> |
|
|
|
import rrOperation from '@crud/RR.operation' |
|
|
|
import CRUD, { presenter, crud } from '@crud/crud' |
|
|
|
import CRUD, { presenter, crud, header } from '@crud/crud' |
|
|
|
import DateRangePicker from '@/components/DateRangePicker' |
|
|
|
import pagination from '@crud/Pagination' |
|
|
|
|
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
import { parseTime, saveAs, getBlob } from '@/utils/index' |
|
|
|
export default { |
|
|
|
name: 'LoginLog', |
|
|
|
components: { rrOperation, DateRangePicker, pagination }, |
|
|
|
mixins: [presenter(), crud()], |
|
|
|
filters: { |
|
|
|
parseRole(val) { |
|
|
|
const arr = val.split(',') |
|
|
|
const arr1 = arr.filter(item => item.includes('name')) |
|
|
|
const role = arr1[0].split('=')[1] |
|
|
|
return role |
|
|
|
} |
|
|
|
}, |
|
|
|
mixins: [presenter(), crud(), header()], |
|
|
|
cruds() { |
|
|
|
return CRUD({ |
|
|
|
url: 'api/storage/initStorageLogList', |
|
|
|
sort: ['update_time,desc'], |
|
|
|
url: 'api/loginlogs/list', |
|
|
|
// sort: ['update_time,desc'], |
|
|
|
// crudMethod: caseCrudMethod, |
|
|
|
optShow: { |
|
|
|
add: false, |
|
|
@ -83,10 +101,20 @@ export default { |
|
|
|
queryTime: null |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
...mapGetters([ |
|
|
|
'baseApi' |
|
|
|
]) |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 导出 |
|
|
|
handleDownload() { |
|
|
|
|
|
|
|
this.crud.downloadLoading = true |
|
|
|
const fileName = parseTime(new Date()) + '-登录日志' |
|
|
|
getBlob(this.baseApi + '/api/loginlogs/download', function(blob) { |
|
|
|
saveAs(blob, fileName) |
|
|
|
}) |
|
|
|
this.crud.downloadLoading = false |
|
|
|
}, |
|
|
|
test() { |
|
|
|
console.log(this.crud, 'crud') |
|
|
|