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.
62 lines
1.3 KiB
62 lines
1.3 KiB
4 years ago
|
import { getToken } from 'apis/index';
|
||
|
|
||
|
export default {
|
||
|
namespaced: true,
|
||
|
|
||
|
state: { user: null },
|
||
|
|
||
|
getters: {
|
||
|
token({ user }) {
|
||
|
if (!user) return null;
|
||
|
return user.token;
|
||
|
},
|
||
|
userId({ user }) {
|
||
|
if (!user) return null;
|
||
|
return user.id;
|
||
|
},
|
||
|
account({ user }) {
|
||
|
if (!user) return null;
|
||
|
return user.account;
|
||
|
},
|
||
|
isAdmin({ user }) {
|
||
|
if (!user) return false;
|
||
|
return user.account === 'iacdadmin';
|
||
|
},
|
||
|
},
|
||
|
|
||
|
mutations: {
|
||
|
/**
|
||
|
* 设置state.user
|
||
|
* @param {*} state
|
||
|
* @param {object|null} user 用户信息
|
||
|
*/
|
||
|
setUser(state, user) {
|
||
|
state.user = user;
|
||
|
if (user) {
|
||
|
sessionStorage.setItem('token', user.token);
|
||
|
sessionStorage.setItem('user', JSON.stringify(user));
|
||
|
} else {
|
||
|
sessionStorage.removeItem('token');
|
||
|
sessionStorage.removeItem('user');
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
|
||
|
actions: {
|
||
|
/**
|
||
|
* 根据userId获取token级user信息
|
||
|
* @param {*} param0
|
||
|
* @param {string} userId 用户id
|
||
|
*/
|
||
|
async getTokenByUserId({ commit }, userId) {
|
||
|
try {
|
||
|
const data = await getToken(userId);
|
||
|
commit('setUser', data || null);
|
||
|
return data;
|
||
|
} catch (error) {
|
||
|
throw new Error(error);
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
};
|