197 lines
5.6 KiB
JavaScript
197 lines
5.6 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";
|
||
import {getQNdomain} from '@/api/system/fileList';
|
||
const baseUrl = config.baseUrl;
|
||
const qnDomain = config.qnDomain;
|
||
const user = {
|
||
state: {
|
||
token: getToken(),
|
||
name: storage.get(constant.name),
|
||
nickName: storage.get(constant.nickName),
|
||
sex: storage.get(constant.sex),
|
||
avatar: storage.get(constant.avatar),
|
||
roles: storage.get(constant.roles),
|
||
permissions: storage.get(constant.permissions),
|
||
QNDomain: storage.get(constant.QNDomain) || qnDomain,
|
||
phoneType:storage.get(constant.phoneType)
|
||
},
|
||
|
||
mutations: {
|
||
SET_TOKEN: (state, token) => {
|
||
state.token = token;
|
||
},
|
||
SET_NAME: (state, name) => {
|
||
state.name = name;
|
||
storage.set(constant.name, name);
|
||
},
|
||
SET_SEX: (state, sex) => {
|
||
state.sex = sex;
|
||
storage.set(constant.sex, sex);
|
||
},
|
||
SET_NICKNAME: (state, nickName) => {
|
||
state.nickName = nickName;
|
||
storage.set(constant.nickName, nickName);
|
||
},
|
||
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);
|
||
},
|
||
SET_QNDOMIAN: (state, QNDomain) => {
|
||
state.QNDomain = QNDomain;
|
||
storage.set(constant.QNDomain, QNDomain);
|
||
},
|
||
SET_PHONETYPE: (state, phoneType) => {
|
||
state.phoneType = phoneType;
|
||
storage.set(constant.phoneType, phoneType);
|
||
}
|
||
},
|
||
|
||
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_NICKNAME", user.nickName);
|
||
commit("SET_AVATAR", avatar);
|
||
commit("SET_SEX", user.sex);
|
||
resolve(res);
|
||
})
|
||
.catch((error) => {
|
||
reject(error);
|
||
});
|
||
});
|
||
},
|
||
//获取七牛云配置域名
|
||
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 );
|
||
},
|
||
|
||
// 退出系统
|
||
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;
|