talk_appAmin/store/modules/user.js

173 lines
4.7 KiB
JavaScript
Raw Normal View History

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;
2024-04-23 23:01:35 +08:00
const user = {
state: {
token: getToken(),
name: storage.get(constant.name),
2024-05-06 00:06:10 +08:00
nickName: storage.get(constant.nickName),
sex: storage.get(constant.sex),
2024-04-23 23:01:35 +08:00
avatar: storage.get(constant.avatar),
roles: storage.get(constant.roles),
permissions: storage.get(constant.permissions),
2024-04-23 23:01:35 +08:00
},
mutations: {
SET_TOKEN: (state, token) => {
state.token = token;
2024-04-23 23:01:35 +08:00
},
SET_NAME: (state, name) => {
state.name = name;
storage.set(constant.name, name);
2024-04-23 23:01:35 +08:00
},
2024-05-06 00:06:10 +08:00
SET_SEX: (state, sex) => {
state.sex = sex;
storage.set(constant.sex, sex);
},
SET_NICKNAME: (state, nickName) => {
state.nickName = nickName;
storage.set(constant.nickName, nickName);
},
2024-04-23 23:01:35 +08:00
SET_AVATAR: (state, avatar) => {
state.avatar = avatar;
storage.set(constant.avatar, avatar);
2024-04-23 23:01:35 +08:00
},
SET_ROLES: (state, roles) => {
state.roles = roles;
storage.set(constant.roles, roles);
2024-04-23 23:01:35 +08:00
},
SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions;
storage.set(constant.permissions, permissions);
},
2024-04-23 23:01:35 +08:00
},
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) {
2024-04-23 23:01:35 +08:00
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);
});
});
2024-04-23 23:01:35 +08:00
},
// 获取用户信息
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);
2024-05-06 00:06:10 +08:00
commit("SET_NICKNAME", user.nickName);
commit("SET_AVATAR", avatar);
2024-05-06 00:06:10 +08:00
commit("SET_SEX", user.sex);
resolve(res);
})
.catch((error) => {
reject(error);
});
});
2024-04-23 23:01:35 +08:00
},
// 退出系统
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);
});
});
},
},
};
2024-04-23 23:01:35 +08:00
export default user;