import { login, logout } from '@/api/user'
|
import { getSessionId, setSessionId, removeSessionId,getUserName,setUserName,removeUserName
|
,getAccount,setAccount,removeAccount,getRoleName,removeRoleName,setRoleName,removeBtnIds,getUserId,removeUserId,setUserId } from '@/utils/auth'
|
import { resetRouter } from '@/router'
|
import router from '@/router'
|
import meunUtils from '@/utils/MenuUtils';
|
import md5 from 'js-md5';
|
const getDefaultState = () => {
|
return {
|
sessionId: getSessionId(),
|
name: getUserName(),
|
avatar: getAccount(),
|
qyp_btnIds: JSON.parse(localStorage.getItem('qyp_btnIds')) ,
|
roleName:getRoleName(),
|
userId:getUserId()
|
}
|
}
|
|
const state = getDefaultState()
|
|
const mutations = {
|
RESETQYP_STATE: (state) => {
|
Object.assign(state, getDefaultState())
|
},
|
SETQYP_SESSIONID: (state, getSessionId) => {
|
state.getSessionId = getSessionId
|
},
|
SETQYP_NAME: (state, name) => {
|
state.name = name
|
},
|
SETQYP_AVATAR: (state, avatar) => {
|
state.avatar = avatar
|
},
|
SETQYP_bTNIDS: (state, btnIds) => {
|
state.qyp_btnIds = btnIds
|
},
|
SETQYP_ROLENAME: (state, roleName) => {
|
state.roleName = roleName
|
},
|
SETQYP_USERID: (state, userId) => {
|
state.userId = userId
|
}
|
|
}
|
|
const actions = {
|
// user login
|
login({ commit }, userInfo) {
|
const { username, password } = userInfo;
|
return new Promise((resolve, reject) => {
|
login({ userNo: username.trim(), password: md5(username.trim() + password),sysType:4}).then(({body}) => {
|
let allMenuList = body.roleInfo.powerInfos;
|
// 处理菜单
|
localStorage.setItem('qyp_routers', JSON.stringify(allMenuList))
|
localStorage.setItem('qyp_btnIds', JSON.stringify(body.roleInfo.btnInfos));
|
let tempMenu = allMenuList;
|
let data = tempMenu ? tempMenu : [];
|
let _router = meunUtils(data);
|
router.addRoutes(_router);
|
router.options.routes=_router;
|
commit('SETQYP_bTNIDS', body.roleInfo.btnInfos)
|
commit('SETQYP_ROLENAME', body.roleName)
|
setRoleName(body.roleName)
|
commit('SETQYP_SESSIONID', body.sessionId)
|
setSessionId(body.sessionId)
|
commit('SETQYP_NAME', body.name)
|
setUserName(body.name)
|
commit('SETQYP_AVATAR', body.account)
|
setUserId(body.id)
|
commit('SETQYP_USERID', body.id)
|
setAccount(body.account)
|
resolve(true)
|
}).catch(error => {
|
reject(error)
|
})
|
})
|
},
|
// user logout
|
logout({ commit, state }) {
|
return new Promise((resolve, reject) => {
|
logout().then(() => {
|
removeSessionId() // must remove token first
|
removeUserName()
|
removeAccount()
|
resetRouter()
|
removeRoleName()
|
removeBtnIds()
|
removeUserId();
|
// dispatch('tagsView/delAllViews', null, { root: true })
|
localStorage.removeItem("qyp_routers")
|
commit('RESETQYP_STATE')
|
resolve()
|
}).catch(error => {
|
reject(error)
|
})
|
})
|
},
|
|
// remove token
|
resetToken({ commit }) {
|
return new Promise(resolve => {
|
removeToken() // must remove token first
|
commit('RESETQYP_STATE')
|
resolve()
|
})
|
}
|
}
|
|
export default {
|
namespaced: true,
|
state,
|
mutations,
|
actions
|
}
|