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.
 
 
 
 
 

111 lines
3.9 KiB

import addRoutes from '@/libs/route/addRoutes'
import Setting from '@/setting'
import util from '@/libs/util'
import { Message } from 'element-ui'
import {post,get} from '@/plugins/requests/index.js'
import api from '@/api'
import bus from '@/libs/bus'
/**
* 用户信息
* */
export default {
namespaced: true,
state: {
avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
token: '',
userId: '',
roleId: '',
userName: '',
account: '',
phone: '',
clientId: '',
clientName: '',
},
mutations: {
SET_INFO: (state, info) => {
info.avatar && (state.avatar = info.avatar)
state.userId = info.userId
state.roleId = info.roleId
state.userName = info.userName
state.account = info.account
state.phone = info.phone
state.clientId = info.clientId
state.clientName = info.clientName
},
SET_TOKEN: (state, token) => {
state.token = token
},
SET_USERNAME: (state, userName) => {
state.userName = userName
},
SET_AVATAR: (state, avatar) => {
state.avatar = avatar
},
SET_ROLEID: (state, roleId) => {
state.roleId = roleId
},
SET_CLIENTID: (state, clientId) => {
state.clientId = clientId
},
SET_CLIENTNAME: (state, clientName) => {
state.clientName = clientName
},
},
actions: {
login({ state,commit }, userInfo) {
const { username, password } = userInfo
return new Promise((resolve, reject) => {
get(api.logins,{ account: username.trim(), password: password }).then(res => {
if(res.success){
let user = res.data.userInfo
if((user.isPort == 0 || user.isPort == 2) && user.roleId != 4){
let routes = res.data.permissions[0].children
commit('SET_INFO',{
avatar: user.userAvatars,
userId: user.userId,
roleId: user.roleId,
userName: user.userName,
account: user.account,
phone: user.phone,
clientId: user.clientId,
clientName: user.clientName,
})
Setting.dynamicRoute && addRoutes(routes)
util.session.set(Setting.usernameKey, user.userName)
util.session.set(Setting.storeKey, JSON.stringify(state))
util.successMsg('登录成功')
resolve()
}else{
util.errorMsg('该用户没有权限')
}
}else{
util.errorMsg(res.message)
}
}).catch(error => {
reject(error)
})
})
},
logout({ commit, state, dispatch },router) {
return new Promise((resolve, reject) => {
util.session.remove(Setting.usernameKey);
util.session.remove(Setting.storeKey);
// router.push('/login')
location.reload()
resolve()
})
},
setAvatar({ state,commit },avatar) {
commit('SET_AVATAR',avatar)
let data = {
userId: state.userId,
userAvatars: avatar
}
post(api.userinfoUpdate,data).then(res => {}).catch(res => {})
},
setUserName({ state,commit },userName) {
commit('SET_USERNAME',userName)
},
}
}