✨ 登录记录查看
This commit is contained in:
parent
27927492b5
commit
37b67ec651
76
components/common/user/login-records.vue
Normal file
76
components/common/user/login-records.vue
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<template>
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<h1>登录记录</h1>
|
||||||
|
</el-col>
|
||||||
|
<el-col>
|
||||||
|
<el-table
|
||||||
|
:data="records.records"
|
||||||
|
style="width: 100%">
|
||||||
|
<el-table-column
|
||||||
|
label="登录 IP"
|
||||||
|
prop="loginIp"
|
||||||
|
width="200">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="浏览器"
|
||||||
|
width="180"
|
||||||
|
prop="loginBrowser">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="登录时间"
|
||||||
|
width="180"
|
||||||
|
prop="createdTime">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-col>
|
||||||
|
<el-col>
|
||||||
|
<el-pagination
|
||||||
|
:hide-on-single-page="true"
|
||||||
|
@current-change="currentChange"
|
||||||
|
:current-page="records.pagination.currentPage"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:page-size="records.pagination.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="records.pagination.total">
|
||||||
|
</el-pagination>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "loginRecords",
|
||||||
|
props: {
|
||||||
|
idUser: '',
|
||||||
|
records: {
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
idUser() {
|
||||||
|
this.resetSearchDate()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
currentChange(page) {
|
||||||
|
let _ts = this;
|
||||||
|
let startDate = _ts.searchDate[0]
|
||||||
|
let endDate = _ts.searchDate[1]
|
||||||
|
let search = {
|
||||||
|
page: page,
|
||||||
|
startDate: startDate,
|
||||||
|
endDate: endDate
|
||||||
|
}
|
||||||
|
_ts.$emit('currentChange', search);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
@ -18,6 +18,10 @@
|
|||||||
<i class="el-icon-unlock"></i>
|
<i class="el-icon-unlock"></i>
|
||||||
<span slot="title">账户安全</span>
|
<span slot="title">账户安全</span>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
|
<el-menu-item index="login-record">
|
||||||
|
<i class="el-icon-monitor"></i>
|
||||||
|
<span slot="title">登录记录</span>
|
||||||
|
</el-menu-item>
|
||||||
<el-menu-item v-show="false" index="notification">
|
<el-menu-item v-show="false" index="notification">
|
||||||
<i class="el-icon-bell"></i>
|
<i class="el-icon-bell"></i>
|
||||||
<span slot="title">通知方式</span>
|
<span slot="title">通知方式</span>
|
||||||
|
65
pages/user/settings/login-record.vue
Normal file
65
pages/user/settings/login-record.vue
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<template>
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<login-records :records="records" :idUser="idUser" @currentChange="handleCurrentChange"></login-records>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {mapState} from 'vuex';
|
||||||
|
import LoginRecords from "@/components/common/user/login-records";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "loginRecord",
|
||||||
|
components: {LoginRecords},
|
||||||
|
computed: {
|
||||||
|
...mapState({
|
||||||
|
idUser: state => state.oauth.idUser
|
||||||
|
})
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
records: {
|
||||||
|
records: [],
|
||||||
|
pagination: {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleCurrentChange(search) {
|
||||||
|
let _ts = this;
|
||||||
|
_ts.$axios.$get('api/user-info/login-records', {
|
||||||
|
params: {
|
||||||
|
idUser: _ts.idUser,
|
||||||
|
page: search.page
|
||||||
|
}
|
||||||
|
}).then(function (res) {
|
||||||
|
if (res) {
|
||||||
|
_ts.records = res
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getData() {
|
||||||
|
let _ts = this
|
||||||
|
_ts.$axios.$get('api/user-info/login-records', {
|
||||||
|
params: {
|
||||||
|
idUser: _ts.idUser
|
||||||
|
}
|
||||||
|
}).then(function (res) {
|
||||||
|
if (res) {
|
||||||
|
_ts.records = res
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$store.commit('setActiveMenu', 'login-record');
|
||||||
|
this.getData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user