fix: logout reset state

permission-control
花裤衩 2019-12-29 14:33:13 +08:00
commit d22a1ae14d
3 changed files with 23 additions and 11 deletions

View File

@ -30,6 +30,8 @@ if (process.env.NODE_ENV === 'production') {
// set ElementUI lang to EN // set ElementUI lang to EN
Vue.use(ElementUI, { locale }) Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui按如下方式声明
// Vue.use(ElementUI)
Vue.config.productionTip = false Vue.config.productionTip = false

View File

@ -2,14 +2,21 @@ import { login, logout, getInfo } from '@/api/user'
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from '@/utils/auth'
import { resetRouter } from '@/router' import { resetRouter } from '@/router'
const state = { const getDefaultState = () => {
return {
token: getToken(), token: getToken(),
name: '', name: '',
avatar: '', avatar: '',
roles: [] roles: []
} }
}
const state = getDefaultState()
const mutations = { const mutations = {
RESET_STATE: (state) => {
Object.assign(state, getDefaultState())
},
SET_TOKEN: (state, token) => { SET_TOKEN: (state, token) => {
state.token = token state.token = token
}, },
@ -71,9 +78,8 @@ const actions = {
logout({ commit, state }) { logout({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
logout(state.token).then(() => { logout(state.token).then(() => {
commit('SET_TOKEN', '') removeToken() // must remove token first
commit('SET_ROLES', []) commit('RESET_STATE')
removeToken()
resetRouter() resetRouter()
resolve() resolve()
}).catch(error => { }).catch(error => {
@ -85,9 +91,8 @@ const actions = {
// remove token // remove token
resetToken({ commit }) { resetToken({ commit }) {
return new Promise(resolve => { return new Promise(resolve => {
commit('SET_TOKEN', '') removeToken() // must remove token first
commit('SET_ROLES', []) commit('RESET_STATE')
removeToken()
resolve() resolve()
}) })
} }

View File

@ -42,3 +42,8 @@
display: block display: block
} }
} }
// to fix el-date-picker css style
.el-range-separator {
box-sizing: content-box;
}