@eim-materials/eim-pc-admin-lite
Version:
该模板适用于从 0 到 1 开始搭建项目,内置基础的页面,路由和菜单展示。
57 lines (54 loc) • 1.47 kB
JavaScript
import api from '@/api/api';
/* eslint no-return-assign: 0 */
const user = {
state: {
roles: ['init'],
userInfo: {},
token: '',
},
mutations: {
SETROLES: (state, roles) => {
state.roles = roles;
localStorage.setItem('template_roles', JSON.stringify(roles));
},
SETUSERINFO: (state, info) => {
state.userInfo = info;
localStorage.setItem('template_userinfo', JSON.stringify(info));
},
SETTOKEN: (state, token) => {
state.token = token;
localStorage.setItem('template_token', token);
},
},
actions: {
// 登录获取用户信息
Login({ commit }, params) {
return new Promise((resolve, reject) => {
api.getInfo(params).then((data) => {
const roles = data.role;
const defaultRoles = ['403', '404', '500', 'except', 'login'];
commit('SETROLES', roles.concat(defaultRoles));
commit('SETUSERINFO', data);
commit('SETTOKEN', 'test');
resolve(data);
}).catch((error) => {
reject(error);
});
});
},
// 登出
LogOut({ commit, state }) {
return new Promise((resolve, reject) => {
api.logout(state.token).then(() => {
commit('SETTOKEN', '');
commit('SETROLES', []);
commit('SETUSERINFO', {});
resolve();
}).catch((error) => {
reject(error);
});
});
},
},
};
export default user;