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.
75 lines
1.5 KiB
75 lines
1.5 KiB
import api from '@/common/request.api.js'
|
|
import authtoken from "@/utils/auth.token.js"
|
|
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
Vue.use(Vuex)
|
|
const store = new Vuex.Store({
|
|
state: {
|
|
token: authtoken.getToken(),
|
|
hasLogin: false,
|
|
userinfo: {}
|
|
},
|
|
mutations: {
|
|
SET_TOKEN: (state, token) => {
|
|
state.token = token
|
|
authtoken.setToken(token)
|
|
},
|
|
SET_HASLOGIN: (state, hasLogin) => {
|
|
state.hasLogin = hasLogin
|
|
},
|
|
SET_USERINFO: (state, userinfo) => {
|
|
state.userinfo = userinfo
|
|
}
|
|
},
|
|
getters: {
|
|
token: state => state.token,
|
|
hasLogin: state => state.hasLogin,
|
|
userinfo: state => state.userinfo,
|
|
},
|
|
actions: {
|
|
login({
|
|
commit
|
|
}, loginUserInfo) {
|
|
return new Promise((resolve, reject) => {
|
|
api.login(loginUserInfo).then(res => {
|
|
console.log('login-result-info:', res)
|
|
commit('SET_HASLOGIN', true)
|
|
commit('SET_TOKEN', res.token)
|
|
commit('SET_USERINFO', {
|
|
userid: '123456',
|
|
name: res.name
|
|
})
|
|
resolve(res)
|
|
}).catch(err => {
|
|
reject(err)
|
|
})
|
|
})
|
|
},
|
|
logined({
|
|
commit
|
|
}, loginUserInfo) {
|
|
return new Promise((resolve, reject) => {
|
|
commit('SET_HASLOGIN', true)
|
|
commit('SET_TOKEN', loginUserInfo.token)
|
|
commit('SET_USERINFO', {
|
|
userid: '123456',
|
|
name: loginUserInfo.name
|
|
})
|
|
resolve()
|
|
})
|
|
},
|
|
logout({
|
|
commit,
|
|
state
|
|
}) {
|
|
return new Promise((resolve, reject) => {
|
|
commit('SET_HASLOGIN', false)
|
|
commit('SET_TOKEN', null)
|
|
commit('SET_USERINFO', null)
|
|
resolve()
|
|
})
|
|
}
|
|
}
|
|
})
|
|
|
|
export default store
|
|
|