...
|
...
|
@@ -3,6 +3,12 @@ import event from '../../utils/event.js' |
|
|
|
|
|
const login = new LoginService().yohoApi();
|
|
|
|
|
|
const USER_GET_PHONENUMBER_ERROR = 'user-get-phonenumber-error';
|
|
|
const USER_LOGIN_CALLBACK = 'user-login-callback';
|
|
|
const USER_LOGIN_SUCCESS = 'user-login-success';
|
|
|
const MY_USER_LOGIN_SUCCESS = 'my-user-login-success';
|
|
|
const USER_CHANGE_LOGIN_STATUS = 'change-login-status';
|
|
|
|
|
|
export const loginAction = (callBack) => {
|
|
|
return wx.login({
|
|
|
success(res) {
|
...
|
...
|
@@ -74,7 +80,9 @@ export const decodeUnionId = (srd_session, result) => { |
|
|
throw new Error('union_id is null');
|
|
|
}
|
|
|
// 网络上传头像,union_id,昵称
|
|
|
login.sendWeChatUserDataWithUnionId(data.union_id, nickName, avatarUrl).catch(error => {});
|
|
|
login.sendWeChatUserDataWithUnionId(data.union_id, nickName, avatarUrl).catch(error => {
|
|
|
console.log(error);
|
|
|
});
|
|
|
return {
|
|
|
union_id: union_id,
|
|
|
userInfo: res.userInfo
|
...
|
...
|
@@ -111,6 +119,7 @@ export const wechatUserIsBind = (union_id, userInfo) => { |
|
|
message: '微信用户已绑定手机号'
|
|
|
});
|
|
|
} else {
|
|
|
console.log('login ------------ globalData: ', globalData);
|
|
|
return Promise.resolve({
|
|
|
code: 10004,
|
|
|
message: '微信用户未绑定手机号'
|
...
|
...
|
@@ -158,20 +167,29 @@ const isStringEmpty = (str) => { |
|
|
}
|
|
|
}
|
|
|
|
|
|
const checkEventName = (eventName, fromPage) => {
|
|
|
if (fromPage) {
|
|
|
console.log(fromPage);
|
|
|
return `${fromPage}-${eventName}`;
|
|
|
}
|
|
|
return eventName;
|
|
|
}
|
|
|
|
|
|
export const getUserInfo = (e) => {
|
|
|
const fromPage = e.currentTarget.dataset.from;
|
|
|
if (e.detail.errMsg === 'getUserInfo:ok') {
|
|
|
loginAction((error, loginData) => {
|
|
|
if (error) {
|
|
|
event.emit('user-get-phonenumber-error', e.detail);
|
|
|
event.emit(checkEventName(USER_GET_PHONENUMBER_ERROR, fromPage), error.message);
|
|
|
return;
|
|
|
}
|
|
|
decodeUnionId(loginData.srd_session, e).then(data => {
|
|
|
wechatUserIsBind(data.union_id, data.userInfo).then(message => {
|
|
|
|
|
|
if (message.code === 10003) {
|
|
|
event.emit('user-login-success');
|
|
|
event.emit(checkEventName(USER_LOGIN_SUCCESS, fromPage));
|
|
|
setTimeout(() => {
|
|
|
event.emit('my-user-login-success');
|
|
|
event.emit(MY_USER_LOGIN_SUCCESS);
|
|
|
}, 1000);
|
|
|
wx.showToast({
|
|
|
icon: 'none',
|
...
|
...
|
@@ -179,7 +197,7 @@ export const getUserInfo = (e) => { |
|
|
duration: 3000
|
|
|
});
|
|
|
} else if (message.code === 10004) {
|
|
|
event.emit('change-login-status', {
|
|
|
event.emit(checkEventName(USER_CHANGE_LOGIN_STATUS, fromPage), {
|
|
|
text: '绑定手机号',
|
|
|
tips: '还差一步,绑定手机号码,加入Yoho!Family'
|
|
|
});
|
...
|
...
|
@@ -189,25 +207,25 @@ export const getUserInfo = (e) => { |
|
|
duration: 3000
|
|
|
});
|
|
|
}
|
|
|
event.emit('user-login-callback', message);
|
|
|
event.emit(checkEventName(USER_LOGIN_CALLBACK, fromPage), message);
|
|
|
}).catch(error => {
|
|
|
event.emit('user-login-callback', error);
|
|
|
console.log(error);
|
|
|
event.emit(checkEventName(USER_LOGIN_CALLBACK, fromPage), error);
|
|
|
});
|
|
|
}).catch(error => {
|
|
|
event.emit('user-login-callback', error);
|
|
|
console.log(error);
|
|
|
event.emit(checkEventName(USER_LOGIN_CALLBACK, fromPage), error);
|
|
|
});
|
|
|
});
|
|
|
} else {
|
|
|
loginAction((error, loginAction) => {
|
|
|
if (error) {
|
|
|
event.emit('user-get-phonenumber-error', e.detail);
|
|
|
return;
|
|
|
}
|
|
|
event.emit(checkEventName(USER_GET_PHONENUMBER_ERROR, fromPage), e.detail.errMsg);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
export const getPhoneNumber = (e) => {
|
|
|
const fromPage = e.currentTarget.dataset.from;
|
|
|
if (e.detail.errMsg === 'getPhoneNumber:ok') {
|
|
|
const srd_session = wx.getStorageSync('srd_session');
|
|
|
const globalData = getGlobalData();
|
...
|
...
|
@@ -223,23 +241,25 @@ export const getPhoneNumber = (e) => { |
|
|
return login.bindMiniAppByAuto(union_id, phoneNumber, countryCode);
|
|
|
}
|
|
|
throw new Error('手机号获取失败,请重新获取');
|
|
|
}).then(res => {
|
|
|
if (data.data.is_register !== undefined && data.data.is_register === 0) {
|
|
|
}).then(result => {
|
|
|
if (result.is_register !== undefined && result.is_register === 0) {
|
|
|
const newUserInfo = {
|
|
|
is_bind: data.is_bind,
|
|
|
mobile: data.profile,
|
|
|
session_key: data.session_key,
|
|
|
uid: data.uid,
|
|
|
ssouid: data.ssouid,
|
|
|
is_bind: result.is_bind,
|
|
|
mobile: result.profile,
|
|
|
session_key: result.session_key,
|
|
|
uid: result.uid,
|
|
|
ssouid: result.ssouid,
|
|
|
union_id: union_id,
|
|
|
vip: data.vip
|
|
|
vip: result.vip
|
|
|
};
|
|
|
|
|
|
let userInfo = wx.getStorageSync('userInfo');
|
|
|
userInfo = Object.assign(userInfo, newUserInfo);
|
|
|
setStorageWithValueForKey('userInfo', userInfo);
|
|
|
setStorageWithValueForKey('session_key', result.session_key);
|
|
|
event.emit(checkEventName(USER_LOGIN_SUCCESS, fromPage));
|
|
|
setTimeout(() => {
|
|
|
event.emit('my-user-login-success');
|
|
|
event.emit(MY_USER_LOGIN_SUCCESS);
|
|
|
}, 1000);
|
|
|
wx.showToast({
|
|
|
icon: 'none',
|
...
|
...
|
@@ -248,15 +268,10 @@ export const getPhoneNumber = (e) => { |
|
|
});
|
|
|
}
|
|
|
}).catch(error => {
|
|
|
wx.showToast({
|
|
|
icon: 'none',
|
|
|
title: error.message,
|
|
|
duration: 3000
|
|
|
});
|
|
|
event.emit('user-get-phonenumber-error', error);
|
|
|
event.emit(checkEventName(USER_GET_PHONENUMBER_ERROR, fromPage), error.message);
|
|
|
});
|
|
|
} else {
|
|
|
event.emit('user-get-phonenumber-error', e.detail.errMsg);
|
|
|
event.emit(checkEventName(USER_GET_PHONENUMBER_ERROR, fromPage), e.detail.errMsg);
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
|