|
@@ -1,123 +1,214 @@
|
|
|
import { getUserInfo, setWxAuthUserInfo, getThirdInfo, createAccount, changePhone } from '@/api/user.js';
|
|
|
import store from '@/store';
|
|
|
import config from '@/config';
|
|
|
+import { login } from '@/api/user.js';
|
|
|
+import { getAppId } from '@/utils/index';
|
|
|
|
|
|
// 获取用户数据
|
|
|
function getUserData() {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- Promise.all([getUserInfo(), getThirdInfo()]).then(([userInfoRes, thirdInfores]) => {
|
|
|
- let userInfo = userInfoRes.data || {};
|
|
|
- let thirdInfo = thirdInfores.data || {};
|
|
|
- let cachedInfo = wx.getStorageSync('UserInfo');
|
|
|
- userInfo = { ...cachedInfo, ...userInfo, ...thirdInfo };
|
|
|
- userInfo.userName = userInfo.userName || '';
|
|
|
- // test 用户身份
|
|
|
- // userInfo.roles = ['tenant.admin', 'operator', 'owner'];
|
|
|
- // userInfo.phone = '';wxLogin
|
|
|
- // userInfo.nickName = '';
|
|
|
- // userInfo.userName = ''
|
|
|
- userInfo = addRolesInfoToUserInfo(userInfo);
|
|
|
- if (!userInfo.userName) {
|
|
|
- userInfo.defaultUserName = 'Hello';
|
|
|
- }
|
|
|
- // todo 模拟银泰配置 接口增加buildingLogo
|
|
|
- if (config.projectName === 'yintai') {
|
|
|
- userInfo.buildingLogo = `${config.h5StaticPath}/page-yintai/project-logo.png`;
|
|
|
- }
|
|
|
- // userInfo.companyId = 'c68dcccd57984277ab7736f2d257cd0c'
|
|
|
- store.commit('setUserInfo', userInfo);
|
|
|
- resolve(userInfo);
|
|
|
- }).catch((res) => {
|
|
|
- reject(res);
|
|
|
- })
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ Promise.all([getUserInfo(), getThirdInfo()]).then(([userInfoRes, thirdInfores]) => {
|
|
|
+ let userInfo = userInfoRes.data || {};
|
|
|
+ let thirdInfo = thirdInfores.data || {};
|
|
|
+ let cachedInfo = wx.getStorageSync('UserInfo');
|
|
|
+ userInfo = { ...cachedInfo, ...userInfo, ...thirdInfo };
|
|
|
+ userInfo.userName = userInfo.userName || '';
|
|
|
+ // test 用户身份
|
|
|
+ // userInfo.roles = ['tenant.admin', 'operator', 'owner'];
|
|
|
+ // userInfo.phone = '';wxLogin
|
|
|
+ // userInfo.nickName = '';
|
|
|
+ // userInfo.userName = ''
|
|
|
+ userInfo = addRolesInfoToUserInfo(userInfo);
|
|
|
+ if (!userInfo.userName) {
|
|
|
+ userInfo.defaultUserName = 'Hello';
|
|
|
+ }
|
|
|
+ // todo 模拟银泰配置 接口增加buildingLogo
|
|
|
+ if (config.projectName === 'yintai') {
|
|
|
+ userInfo.buildingLogo = `${config.h5StaticPath}/page-yintai/project-logo.png`;
|
|
|
+ }
|
|
|
+ // userInfo.companyId = 'c68dcccd57984277ab7736f2d257cd0c'
|
|
|
+ store.commit('setUserInfo', userInfo);
|
|
|
+ resolve(userInfo);
|
|
|
+ }).catch((res) => {
|
|
|
+ reject(res);
|
|
|
})
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
// 检查登录
|
|
|
function checkLogin(needGetetUserInfo = true) {
|
|
|
- let token = store.state.user.token;
|
|
|
- if (!token) {
|
|
|
- return wxLogin(needGetetUserInfo);
|
|
|
- } else {
|
|
|
- return Promise.resolve();
|
|
|
- }
|
|
|
+ let token = store.state.user.token;
|
|
|
+ if (!token) {
|
|
|
+ return wxLogin(needGetetUserInfo);
|
|
|
+ } else {
|
|
|
+ return Promise.resolve();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 检查用户信息
|
|
|
function checkHasUserInfo() {
|
|
|
- let userInfo = store.state.user.userInfo;
|
|
|
- if (userInfo && JSON.stringify(userInfo) !== '{}') {
|
|
|
- return Promise.resolve(userInfo);
|
|
|
- } else {
|
|
|
- return checkLogin(false).then(() => {
|
|
|
- return getUserData();
|
|
|
- })
|
|
|
- }
|
|
|
+ let userInfo = store.state.user.userInfo;
|
|
|
+ if (userInfo && JSON.stringify(userInfo) !== '{}') {
|
|
|
+ return Promise.resolve(userInfo);
|
|
|
+ } else {
|
|
|
+ return checkLogin(false).then(() => {
|
|
|
+ return getUserData();
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function setUserInfoByAuth() {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- // if (ing) {
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // ing = true;
|
|
|
- // let { userInfo = {} } = store.state.user;
|
|
|
- // // 如果已经保存过了
|
|
|
- // let nickName = userInfo.nickName;
|
|
|
- // if (nickName) {
|
|
|
- // ing = false;
|
|
|
- // resolve();
|
|
|
- // return;
|
|
|
- // }
|
|
|
- wx.getUserProfile({
|
|
|
- desc: '用于完善用户信息',
|
|
|
- success: res => {
|
|
|
- let detail = res;
|
|
|
- wx.login({
|
|
|
- success: loginRes => {
|
|
|
- // ing = false;
|
|
|
- // if (loginRes.code) {
|
|
|
- // let params = {
|
|
|
- // encryptedData: detail.encryptedData,
|
|
|
- // iv: detail.iv,
|
|
|
- // jsCode: loginRes.code
|
|
|
- // };
|
|
|
- // setWxAuthUserInfo(params).then(res => {
|
|
|
- // let userInfo = JSON.parse(detail.rawData);
|
|
|
- // let cachedInfo = wx.getStorageSync('UserInfo');
|
|
|
- // userInfo = {
|
|
|
- // ...cachedInfo,
|
|
|
- // ...userInfo,
|
|
|
- // headImgUrl: userInfo.avatarUrl
|
|
|
- // };
|
|
|
- // delete userInfo.avatarUrl;
|
|
|
- // store.commit('setUserInfo', {
|
|
|
- // ...userInfo
|
|
|
- // });
|
|
|
- // wx.setStorageSync('UserInfo', { ...userInfo });
|
|
|
- // resolve(res.data);
|
|
|
- // });
|
|
|
- // }
|
|
|
- },
|
|
|
- fail: res => {
|
|
|
- // ing = false;
|
|
|
- // reject(res);
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ // if (ing) {
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // ing = true;
|
|
|
+ // let { userInfo = {} } = store.state.user;
|
|
|
+ // // 如果已经保存过了
|
|
|
+ // let nickName = userInfo.nickName;
|
|
|
+ // if (nickName) {
|
|
|
+ // ing = false;
|
|
|
+ // resolve();
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ wx.getUserProfile({
|
|
|
+ desc: '用于完善用户信息',
|
|
|
+ success: res => {
|
|
|
+ let detail = res;
|
|
|
+ wx.login({
|
|
|
+ success: loginRes => {
|
|
|
+ // ing = false;
|
|
|
+ // if (loginRes.code) {
|
|
|
+ // let params = {
|
|
|
+ // encryptedData: detail.encryptedData,
|
|
|
+ // iv: detail.iv,
|
|
|
+ // jsCode: loginRes.code
|
|
|
+ // };
|
|
|
+ // setWxAuthUserInfo(params).then(res => {
|
|
|
+ // let userInfo = JSON.parse(detail.rawData);
|
|
|
+ // let cachedInfo = wx.getStorageSync('UserInfo');
|
|
|
+ // userInfo = {
|
|
|
+ // ...cachedInfo,
|
|
|
+ // ...userInfo,
|
|
|
+ // headImgUrl: userInfo.avatarUrl
|
|
|
+ // };
|
|
|
+ // delete userInfo.avatarUrl;
|
|
|
+ // store.commit('setUserInfo', {
|
|
|
+ // ...userInfo
|
|
|
+ // });
|
|
|
+ // wx.setStorageSync('UserInfo', { ...userInfo });
|
|
|
+ // resolve(res.data);
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ // ing = false;
|
|
|
+ // reject(res);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ // ing = false;
|
|
|
+ // wx.showToast({
|
|
|
+ // icon: 'none',
|
|
|
+ // title: '授权用户公开信息后方可进入下一步操作'
|
|
|
+ // });
|
|
|
+ // reject();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 检查用户是否注册过小程序及绑定过租户
|
|
|
+function checkRegist() {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ wx.login({
|
|
|
+ success(wxLoginRes) {
|
|
|
+ const jsCode = wxLoginRes.code;
|
|
|
+ const appId = getAppId();
|
|
|
+ if (jsCode) {
|
|
|
+ let params = {
|
|
|
+ "appId": appId,
|
|
|
+ "wxCode": jsCode
|
|
|
+ }
|
|
|
+ login(params).then(res => {
|
|
|
+ if (res.result == 'success') {
|
|
|
+ let data = res.data || []
|
|
|
+ resolve(data)
|
|
|
+ } else {
|
|
|
+ reject('login接口返回fail');
|
|
|
}
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ wx.showToast({
|
|
|
+ title: `网络异常, 请稍后重试`,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 5e3
|
|
|
});
|
|
|
- },
|
|
|
- fail: res => {
|
|
|
- // ing = false;
|
|
|
- // wx.showToast({
|
|
|
- // icon: 'none',
|
|
|
- // title: '授权用户公开信息后方可进入下一步操作'
|
|
|
- // });
|
|
|
- // reject();
|
|
|
+ reject('wx.login接口返回code为空');
|
|
|
}
|
|
|
- });
|
|
|
+ },
|
|
|
+ fail(res) {
|
|
|
+ reject(res);
|
|
|
+ wx.showToast({
|
|
|
+ title: `网络异常, 请稍后重试`,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 5e3
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
- }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 登录
|
|
|
+function wxLogin() {
|
|
|
+ store.commit('setTokenIsValid', false);
|
|
|
+ store.commit('setToken', '');
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ wx.login({
|
|
|
+ success(wxLoginRes) {
|
|
|
+ const jsCode = wxLoginRes.code;
|
|
|
+ const appId = wx.getAccountInfoSync().miniProgram.appId;
|
|
|
+ if (jsCode) {
|
|
|
+ let params = {
|
|
|
+ "appId": appId,
|
|
|
+ "wxCode": jsCode
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ wx.hideLoading();
|
|
|
+ wx.showToast({
|
|
|
+ title: `网络异常, 请稍后重试`,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 5e3
|
|
|
+ });
|
|
|
+ reject('wx.login接口返回code为空');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail(res) {
|
|
|
+ reject(res);
|
|
|
+ wx.showToast({
|
|
|
+ title: `网络异常, 请稍后重试`,
|
|
|
+ icon: 'none',
|
|
|
+ duration: 5e3
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 本地保存用户头像
|
|
|
+function setAvatar(avatar) {
|
|
|
+ wx.setStorageSync('avatarBase64', avatar);
|
|
|
+}
|
|
|
+function getAvatar() {
|
|
|
+ wx.getStorageSync('avatarBase64');
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
export {
|
|
|
- checkHasUserInfo,
|
|
|
- setUserInfoByAuth
|
|
|
+ checkHasUserInfo,
|
|
|
+ checkRegist,
|
|
|
+ setAvatar,
|
|
|
+ getAvatar,
|
|
|
+ setUserInfoByAuth
|
|
|
}
|