|
|
@@ -84,10 +84,9 @@ export default {
|
|
|
uni.setStorageSync('inviteCode', options.inviteCode)
|
|
|
uni.setStorageSync('inviteType', options.inviteType || 'family')
|
|
|
}
|
|
|
- // 处理推广码(refCode):来自 join.vue 的推广绑定流程
|
|
|
+ // 处理推荐码(refCode):来自 join.vue 的推广绑定流程,推荐码统一存 refCode storage
|
|
|
if (options.refCode) {
|
|
|
- uni.setStorageSync('inviteCode', options.refCode)
|
|
|
- uni.setStorageSync('inviteType', '')
|
|
|
+ uni.setStorageSync('refCode', options.refCode)
|
|
|
}
|
|
|
// 存储登录后跳转地址
|
|
|
if (options.redirect) {
|
|
|
@@ -180,30 +179,34 @@ export default {
|
|
|
handlePostLoginRouting() {
|
|
|
const inviteCode = uni.getStorageSync('inviteCode')
|
|
|
const inviteType = uni.getStorageSync('inviteType')
|
|
|
+ const refCode = uni.getStorageSync('refCode')
|
|
|
|
|
|
if (inviteCode && inviteType === 'team') {
|
|
|
this.handleTeamInviteFlow(inviteCode)
|
|
|
+ } else if (refCode) {
|
|
|
+ this.handleReferralBind(refCode)
|
|
|
} else if (inviteCode) {
|
|
|
- // 非 team 邀请码(如分享文章/商品/活动的邀请码),绑定推荐关系
|
|
|
+ // 兼容:历史 storage inviteCode 承载推荐码的残留
|
|
|
this.handleReferralBind(inviteCode)
|
|
|
} else {
|
|
|
this.navigateToHome()
|
|
|
}
|
|
|
},
|
|
|
- async handleReferralBind(inviteCode) {
|
|
|
+ async handleReferralBind(refCode) {
|
|
|
try {
|
|
|
- var res = await bindReferral(inviteCode)
|
|
|
+ var res = await bindReferral(refCode)
|
|
|
if (res && res.code === 200) {
|
|
|
- console.log('登录后绑定邀请码成功', inviteCode)
|
|
|
+ console.log('登录后绑定推荐人成功', refCode)
|
|
|
}
|
|
|
} catch (e) {
|
|
|
// 后端 Result.error(code=500) → request() 已 toast「已绑定推荐人,不可修改」等业务消息
|
|
|
if (e && e.code !== undefined && e.code !== 401) {
|
|
|
- console.log('登录后邀请码业务拒绝', inviteCode, e.message || '')
|
|
|
+ console.log('登录后推荐码业务拒绝', refCode, e.message || '')
|
|
|
} else {
|
|
|
- console.log('登录后邀请码绑定失败', e)
|
|
|
+ console.log('登录后推荐码绑定失败', e)
|
|
|
}
|
|
|
}
|
|
|
+ uni.removeStorageSync('refCode')
|
|
|
uni.removeStorageSync('inviteCode')
|
|
|
uni.removeStorageSync('inviteType')
|
|
|
this.navigateToHome()
|