110 lines
2.7 KiB
JavaScript
110 lines
2.7 KiB
JavaScript
import { login, getInfo, logout } from "@/api/login";
|
|
import { getToken, setToken, removeToken } from "@/utils/auth";
|
|
|
|
const user = {
|
|
state: {
|
|
token: getToken(),
|
|
user: {},
|
|
roles: [],
|
|
// 第一次加载菜单时用到
|
|
loadMenus: false
|
|
},
|
|
|
|
mutations: {
|
|
// 是否为手动退出登录
|
|
SD_LOGOUT: (state, f) => {
|
|
state.sdLogout = f;
|
|
},
|
|
SET_TOKEN: (state, token) => {
|
|
state.token = token;
|
|
},
|
|
SET_USER: (state, user) => {
|
|
state.user = user;
|
|
},
|
|
SET_ROLES: (state, roles) => {
|
|
state.roles = roles;
|
|
},
|
|
SET_LOAD_MENUS: (state, loadMenus) => {
|
|
state.loadMenus = loadMenus;
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
// 登录
|
|
Login({ commit }, userInfo) {
|
|
const rememberMe = userInfo.rememberMe;
|
|
return new Promise((resolve, reject) => {
|
|
login(userInfo)
|
|
.then(res => {
|
|
// console.log('登录成功后返回===', res)
|
|
localStorage.setItem("logoutHandle", false);
|
|
localStorage.setItem("shopId", res.shopId);
|
|
localStorage.setItem("shopName", res.shopName);
|
|
localStorage.setItem("logo", res.logo);
|
|
setToken(res.token, rememberMe);
|
|
commit("SET_TOKEN", res.token);
|
|
setUserInfo(res.user, commit);
|
|
// 第一次加载菜单时用到, 具体见 src 目录下的 permission.js
|
|
commit("SET_LOAD_MENUS", true);
|
|
resolve();
|
|
})
|
|
.catch(error => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
// 获取用户信息
|
|
GetInfo({ commit }) {
|
|
return new Promise((resolve, reject) => {
|
|
getInfo()
|
|
.then(res => {
|
|
setUserInfo(res, commit);
|
|
resolve(res);
|
|
})
|
|
.catch(error => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
// 登出
|
|
LogOut({ commit }) {
|
|
return new Promise((resolve, reject) => {
|
|
logout()
|
|
.then(res => {
|
|
logOut(commit);
|
|
resolve();
|
|
})
|
|
.catch(error => {
|
|
logOut(commit);
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
updateLoadMenus({ commit }) {
|
|
return new Promise((resolve, reject) => {
|
|
commit("SET_LOAD_MENUS", false);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
export const logOut = commit => {
|
|
commit("SET_TOKEN", "");
|
|
commit("SET_ROLES", []);
|
|
removeToken();
|
|
};
|
|
|
|
export const setUserInfo = (res, commit) => {
|
|
// 如果没有任何权限,则赋予一个默认的权限,避免请求死循环
|
|
if (res.roles.length === 0) {
|
|
commit("SET_ROLES", ["ROLE_SYSTEM_DEFAULT"]);
|
|
} else {
|
|
commit("SET_ROLES", res.roles);
|
|
}
|
|
commit("SET_USER", res.user);
|
|
};
|
|
|
|
export default user;
|