2024-04-28 19:19:02 +08:00
|
|
|
|
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";
|
2024-05-04 12:00:42 +08:00
|
|
|
|
import { loginByWX, loginByWXPhone,PhoneCodeLogin } from "@/api/system/logins";
|
2024-05-24 23:20:46 +08:00
|
|
|
|
import {getQNdomain} from '@/api/system/fileList';
|
2024-04-28 19:19:02 +08:00
|
|
|
|
const baseUrl = config.baseUrl;
|
2024-05-24 23:20:46 +08:00
|
|
|
|
const qnDomain = config.qnDomain;
|
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),
|
2024-04-28 19:19:02 +08:00
|
|
|
|
permissions: storage.get(constant.permissions),
|
2024-05-24 23:20:46 +08:00
|
|
|
|
QNDomain: storage.get(constant.QNDomain) || qnDomain,
|
|
|
|
|
phoneType:storage.get(constant.phoneType)
|
2024-04-23 23:01:35 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
mutations: {
|
|
|
|
|
SET_TOKEN: (state, token) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
state.token = token;
|
2024-04-23 23:01:35 +08:00
|
|
|
|
},
|
|
|
|
|
SET_NAME: (state, name) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
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) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
state.avatar = avatar;
|
|
|
|
|
storage.set(constant.avatar, avatar);
|
2024-04-23 23:01:35 +08:00
|
|
|
|
},
|
|
|
|
|
SET_ROLES: (state, roles) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
state.roles = roles;
|
|
|
|
|
storage.set(constant.roles, roles);
|
2024-04-23 23:01:35 +08:00
|
|
|
|
},
|
|
|
|
|
SET_PERMISSIONS: (state, permissions) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
state.permissions = permissions;
|
|
|
|
|
storage.set(constant.permissions, permissions);
|
|
|
|
|
},
|
2024-05-24 23:20:46 +08:00
|
|
|
|
SET_QNDOMIAN: (state, QNDomain) => {
|
|
|
|
|
state.QNDomain = QNDomain;
|
|
|
|
|
storage.set(constant.QNDomain, QNDomain);
|
|
|
|
|
},
|
|
|
|
|
SET_PHONETYPE: (state, phoneType) => {
|
|
|
|
|
state.phoneType = phoneType;
|
|
|
|
|
storage.set(constant.phoneType, phoneType);
|
|
|
|
|
}
|
2024-04-23 23:01:35 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
actions: {
|
|
|
|
|
// 登录
|
|
|
|
|
Login({ commit }, userInfo) {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
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) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
console.log("code2:", code);
|
|
|
|
|
loginByWX(code)
|
|
|
|
|
.then((res) => {
|
2024-05-04 12:00:42 +08:00
|
|
|
|
if (res.token != "") {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
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);
|
2024-05-04 12:00:42 +08:00
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//手机号验证码登录
|
|
|
|
|
loginByPhoneCode({ commit }, data) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
2024-06-13 00:46:01 +08:00
|
|
|
|
console.log(12);
|
2024-05-04 12:00:42 +08:00
|
|
|
|
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) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
getInfo()
|
|
|
|
|
.then((res) => {
|
2024-05-04 12:00:42 +08:00
|
|
|
|
console.log("res:", res);
|
2024-04-28 19:19:02 +08:00
|
|
|
|
const user = res.user;
|
|
|
|
|
const avatar =
|
|
|
|
|
user == null || user.avatar == "" || user.avatar == null
|
|
|
|
|
? defaultAvatar
|
2024-06-04 18:57:45 +08:00
|
|
|
|
: qnDomain + user.avatar;
|
2024-04-28 19:19:02 +08:00
|
|
|
|
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);
|
2024-04-28 19:19:02 +08:00
|
|
|
|
commit("SET_AVATAR", avatar);
|
2024-05-06 00:06:10 +08:00
|
|
|
|
commit("SET_SEX", user.sex);
|
2024-04-28 19:19:02 +08:00
|
|
|
|
resolve(res);
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
reject(error);
|
|
|
|
|
});
|
|
|
|
|
});
|
2024-04-23 23:01:35 +08:00
|
|
|
|
},
|
2024-05-24 23:20:46 +08:00
|
|
|
|
//获取七牛云配置域名
|
|
|
|
|
getQNDomainInfo({ commit, state }) {
|
|
|
|
|
getQNdomain().then((e) => {
|
|
|
|
|
if (e.domain && e.domain !== qnDomain) {
|
|
|
|
|
commit("SET_QNDOMIAN", e.domain);
|
|
|
|
|
commit("SET_AVATAR", e.domain + state.avatar);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
//获取当前登录设备的信息
|
|
|
|
|
getPhoneType({ commit, state }) {
|
|
|
|
|
commit("SET_PHONETYPE",uni.getSystemInfoSync().uniPlatform );
|
|
|
|
|
},
|
2024-04-23 23:01:35 +08:00
|
|
|
|
|
|
|
|
|
// 退出系统
|
|
|
|
|
LogOut({ commit, state }) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
2024-04-28 19:19:02 +08:00
|
|
|
|
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
|
|
|
|
|
2024-04-28 19:19:02 +08:00
|
|
|
|
export default user;
|