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.
94 lines
2.7 KiB
94 lines
2.7 KiB
import store from '@/store'
|
|
import storage from '@/utils/storage'
|
|
import constant from '@/utils/constant'
|
|
import { login, logout, getInfo } from '@/api/login'
|
|
import { getToken, setToken, removeToken } from '@/utils/token'
|
|
|
|
const user = {
|
|
state: {
|
|
token: getToken(),
|
|
userInfo: storage.get(constant.userInfo),
|
|
loginInfo: storage.get(constant.loginInfo),
|
|
name: storage.get(constant.name),
|
|
avatar: storage.get(constant.avatar)
|
|
},
|
|
|
|
mutations: {
|
|
SET_TOKEN: (state, token) => {
|
|
state.token = token
|
|
},
|
|
SET_USER_INFO: (state, userInfo) => {
|
|
state.userInfo = userInfo
|
|
storage.set(constant.userInfo, userInfo)
|
|
},
|
|
SET_LOGIN_INFO: (state, loginInfo) => {
|
|
state.loginInfo = loginInfo
|
|
storage.set(constant.loginInfo, loginInfo)
|
|
},
|
|
SET_NAME: (state, name) => {
|
|
state.name = name
|
|
storage.set(constant.name, name)
|
|
},
|
|
SET_AVATAR: (state, avatar) => {
|
|
state.avatar = avatar
|
|
storage.set(constant.avatar, avatar)
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
// 登录
|
|
Login({ commit }, userInfo) {
|
|
const loginType = userInfo.loginType
|
|
const userName = userInfo.userName
|
|
const password = userInfo.password
|
|
const smsCode = userInfo.smsCode
|
|
const registerFlag = userInfo.registerFlag
|
|
const code = userInfo.code
|
|
const uuid = userInfo.uuid
|
|
return new Promise((resolve, reject) => {
|
|
login(loginType, userName, password, smsCode, registerFlag, code, uuid).then(res => {
|
|
setToken(res.data.token)
|
|
commit('SET_TOKEN', res.data.token)
|
|
commit('SET_LOGIN_INFO', userInfo) // 保存登录信息,后续可以自动登录
|
|
resolve()
|
|
}).catch(error => {
|
|
reject(error)
|
|
})
|
|
})
|
|
},
|
|
|
|
// 获取用户信息
|
|
GetInfo({ commit, state }) {
|
|
return new Promise((resolve, reject) => {
|
|
getInfo().then(res => {
|
|
const user = res.data.user
|
|
const avatar = (user == null || user.avatar == "" || user.avatar == null) ? "/static/image/user/yy.png" : user.avatar
|
|
const userName = (user == null || user.userName == "" || user.userName == null) ? "" : user.userName
|
|
commit('SET_USER_INFO', user)
|
|
commit('SET_NAME', userName)
|
|
commit('SET_AVATAR', avatar)
|
|
resolve(res)
|
|
}).catch(error => {
|
|
reject(error)
|
|
})
|
|
})
|
|
},
|
|
|
|
// 退出系统
|
|
LogOut({ commit, state }) {
|
|
return new Promise((resolve, reject) => {
|
|
logout(state.token).then(() => {
|
|
commit('SET_TOKEN', '')
|
|
commit('SET_USER_INFO', {})
|
|
removeToken()
|
|
storage.clean()
|
|
resolve()
|
|
}).catch(error => {
|
|
reject(error)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
export default user
|