161 lines
4.3 KiB
JavaScript
161 lines
4.3 KiB
JavaScript
import config from "@/config";
|
||
import storage from "@/utils/storage";
|
||
import constant from "@/utils/constant";
|
||
import { login, logout, getInfo } from "@/api/login";
|
||
import { getToken, setToken, removeToken } from "@/utils/auth";
|
||
import defaultAvatar from "@/static/images/profile.jpg";
|
||
import { loginByWX, loginByWXPhone,PhoneCodeLogin } from "@/api/system/logins";
|
||
const baseUrl = config.baseUrl;
|
||
|
||
const user = {
|
||
state: {
|
||
token: getToken(),
|
||
name: storage.get(constant.name),
|
||
avatar: storage.get(constant.avatar),
|
||
roles: storage.get(constant.roles),
|
||
permissions: storage.get(constant.permissions),
|
||
},
|
||
|
||
mutations: {
|
||
SET_TOKEN: (state, token) => {
|
||
state.token = token;
|
||
},
|
||
SET_NAME: (state, name) => {
|
||
state.name = name;
|
||
storage.set(constant.name, name);
|
||
},
|
||
SET_AVATAR: (state, avatar) => {
|
||
state.avatar = avatar;
|
||
storage.set(constant.avatar, avatar);
|
||
},
|
||
SET_ROLES: (state, roles) => {
|
||
state.roles = roles;
|
||
storage.set(constant.roles, roles);
|
||
},
|
||
SET_PERMISSIONS: (state, permissions) => {
|
||
state.permissions = permissions;
|
||
storage.set(constant.permissions, permissions);
|
||
},
|
||
},
|
||
|
||
actions: {
|
||
// 登录
|
||
Login({ commit }, userInfo) {
|
||
const username = userInfo.username.trim();
|
||
const password = userInfo.password;
|
||
const code = userInfo.code;
|
||
const uuid = userInfo.uuid;
|
||
return new Promise((resolve, reject) => {
|
||
login(username, password, code, uuid)
|
||
.then((res) => {
|
||
setToken(res.token);
|
||
commit("SET_TOKEN", res.token);
|
||
resolve();
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
|
||
//微信小程序登录
|
||
loginWX({ commit }, code) {
|
||
return new Promise((resolve, reject) => {
|
||
console.log("code2:", code);
|
||
loginByWX(code)
|
||
.then((res) => {
|
||
if (res.token != "") {
|
||
setToken(res.token);
|
||
commit("SET_TOKEN", res.token);
|
||
resolve();
|
||
}
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
|
||
//微信小程序手机号登录
|
||
loginWXPhone({ commit }, code) {
|
||
return new Promise((resolve, reject) => {
|
||
loginByWXPhone(code)
|
||
.then((res) => {
|
||
setToken(res.token);
|
||
commit("SET_TOKEN", res.token);
|
||
resolve();
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
|
||
//手机号验证码登录
|
||
loginByPhoneCode({ commit }, data) {
|
||
return new Promise((resolve, reject) => {
|
||
PhoneCodeLogin(data)
|
||
.then((res) => {
|
||
setToken(res.token);
|
||
commit("SET_TOKEN", res.token);
|
||
resolve();
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
|
||
// 获取用户信息
|
||
GetInfo({ commit, state }) {
|
||
return new Promise((resolve, reject) => {
|
||
getInfo()
|
||
.then((res) => {
|
||
console.log("res:", res);
|
||
const user = res.user;
|
||
const avatar =
|
||
user == null || user.avatar == "" || user.avatar == null
|
||
? defaultAvatar
|
||
: baseUrl + user.avatar;
|
||
const username =
|
||
user == null || user.userName == "" || user.userName == null
|
||
? ""
|
||
: user.userName;
|
||
if (res.roles && res.roles.length > 0) {
|
||
commit("SET_ROLES", res.roles);
|
||
commit("SET_PERMISSIONS", res.permissions);
|
||
} else {
|
||
commit("SET_ROLES", ["ROLE_DEFAULT"]);
|
||
}
|
||
commit("SET_NAME", username);
|
||
commit("SET_AVATAR", avatar);
|
||
resolve(res);
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
|
||
// 退出系统
|
||
LogOut({ commit, state }) {
|
||
return new Promise((resolve, reject) => {
|
||
logout(state.token)
|
||
.then(() => {
|
||
commit("SET_TOKEN", "");
|
||
commit("SET_ROLES", []);
|
||
commit("SET_PERMISSIONS", []);
|
||
removeToken();
|
||
storage.clean();
|
||
resolve();
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
},
|
||
};
|
||
|
||
export default user;
|