forked from AkkomaGang/admin-fe
Users table
This commit is contained in:
parent
a9dd349869
commit
a9847bc59c
4 changed files with 47 additions and 54 deletions
|
@ -2,11 +2,15 @@ import { fetchUsers } from '@/api/users'
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
state: {
|
state: {
|
||||||
fetchedUsers: []
|
fetchedUsers: [],
|
||||||
|
loading: true
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
SET_USERS: (state, users) => {
|
SET_USERS: (state, users) => {
|
||||||
state.fetchedUsers = users
|
state.fetchedUsers = users
|
||||||
|
},
|
||||||
|
SET_LOADING: (state, status) => {
|
||||||
|
state.loading = status
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
@ -14,6 +18,7 @@ const user = {
|
||||||
const response = await fetchUsers()
|
const response = await fetchUsers()
|
||||||
|
|
||||||
commit('SET_USERS', response.data)
|
commit('SET_USERS', response.data)
|
||||||
|
commit('SET_LOADING', false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<sidebar class="sidebar-container"/>
|
<sidebar class="sidebar-container"/>
|
||||||
<div class="main-container">
|
<div class="main-container">
|
||||||
<navbar/>
|
<navbar/>
|
||||||
<tags-view/>
|
|
||||||
<app-main/>
|
<app-main/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,32 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<hamburger :toggle-click="toggleSideBar" :is-active="sidebar.opened" class="hamburger-container"/>
|
|
||||||
|
|
||||||
<breadcrumb class="breadcrumb-container"/>
|
|
||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<template v-if="device!=='mobile'">
|
|
||||||
<search class="right-menu-item" />
|
|
||||||
|
|
||||||
<error-log class="errLog-container right-menu-item hover-effect"/>
|
|
||||||
|
|
||||||
<screenfull class="right-menu-item hover-effect"/>
|
|
||||||
|
|
||||||
<el-tooltip :content="$t('navbar.size')" effect="dark" placement="bottom">
|
|
||||||
<size-select class="right-menu-item hover-effect"/>
|
|
||||||
</el-tooltip>
|
|
||||||
|
|
||||||
<lang-select class="right-menu-item hover-effect"/>
|
|
||||||
|
|
||||||
<el-tooltip :content="$t('navbar.theme')" effect="dark" placement="bottom">
|
|
||||||
<theme-picker class="right-menu-item hover-effect"/>
|
|
||||||
</el-tooltip>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
|
||||||
<div class="avatar-wrapper">
|
<div class="avatar-wrapper">
|
||||||
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
||||||
<i class="el-icon-caret-bottom"/>
|
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<router-link to="/">
|
<router-link to="/">
|
||||||
|
@ -34,11 +11,6 @@
|
||||||
{{ $t('navbar.dashboard') }}
|
{{ $t('navbar.dashboard') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</router-link>
|
</router-link>
|
||||||
<a target="_blank" href="https://github.com/PanJiaChen/vue-element-admin/">
|
|
||||||
<el-dropdown-item>
|
|
||||||
{{ $t('navbar.github') }}
|
|
||||||
</el-dropdown-item>
|
|
||||||
</a>
|
|
||||||
<el-dropdown-item divided>
|
<el-dropdown-item divided>
|
||||||
<span style="display:block;" @click="logout">{{ $t('navbar.logOut') }}</span>
|
<span style="display:block;" @click="logout">{{ $t('navbar.logOut') }}</span>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
@ -50,26 +22,8 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import Breadcrumb from '@/components/Breadcrumb'
|
|
||||||
import Hamburger from '@/components/Hamburger'
|
|
||||||
import ErrorLog from '@/components/ErrorLog'
|
|
||||||
import Screenfull from '@/components/Screenfull'
|
|
||||||
import SizeSelect from '@/components/SizeSelect'
|
|
||||||
import LangSelect from '@/components/LangSelect'
|
|
||||||
import ThemePicker from '@/components/ThemePicker'
|
|
||||||
import Search from '@/components/HeaderSearch'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
|
||||||
Breadcrumb,
|
|
||||||
Hamburger,
|
|
||||||
ErrorLog,
|
|
||||||
Screenfull,
|
|
||||||
SizeSelect,
|
|
||||||
LangSelect,
|
|
||||||
ThemePicker,
|
|
||||||
Search
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'sidebar',
|
'sidebar',
|
||||||
|
@ -145,8 +99,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar-container {
|
.avatar-container {
|
||||||
margin-right: 30px;
|
|
||||||
|
|
||||||
.avatar-wrapper {
|
.avatar-wrapper {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
|
@ -1,6 +1,26 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="users-container">
|
<div class="users-container">
|
||||||
123
|
<h1>Users</h1>
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="users"
|
||||||
|
style="width: 100%">
|
||||||
|
<el-table-column
|
||||||
|
prop="id"
|
||||||
|
label="ID"
|
||||||
|
width="100" />
|
||||||
|
<el-table-column
|
||||||
|
prop="fullname"
|
||||||
|
label="Name" />
|
||||||
|
<el-table-column
|
||||||
|
fixed="right"
|
||||||
|
label="Operations"
|
||||||
|
width="120">
|
||||||
|
<template>
|
||||||
|
<el-button type="text" size="small" @click="handleRevoke">Disable user</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -8,15 +28,32 @@
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Users',
|
name: 'Users',
|
||||||
data: function() {
|
computed: {
|
||||||
return {
|
loading() {
|
||||||
users: []
|
return this.$store.state.users.loading
|
||||||
|
},
|
||||||
|
users() {
|
||||||
|
return this.$store.state.users.fetchedUsers
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted: function() {
|
mounted: function() {
|
||||||
this.$store.dispatch('FetchUsers')
|
this.$store.dispatch('FetchUsers')
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleRevoke() {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
|
||||||
|
.users-container {
|
||||||
|
h1 {
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
Loading…
Reference in a new issue