|
|
@@ -173,7 +173,17 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
onLoad(query) {
|
|
|
- // token:优先从 query 参数,其次从场景值
|
|
|
+ // 邀请码(推荐人)统一解析:query.inviteCode / query.refCode / 场景值 ref=xxx
|
|
|
+ // 分享链接用 inviteCode,落地页内部用 refCode,二维码场景值用 ref= 前缀
|
|
|
+ var refCode = query.refCode || query.inviteCode || ''
|
|
|
+ if (!refCode && query.scene) {
|
|
|
+ var refScene = decodeURIComponent(query.scene)
|
|
|
+ if (refScene.indexOf('ref=') === 0) {
|
|
|
+ refCode = refScene.substring(4)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // token(家庭邀请):优先从 query 参数,其次从场景值
|
|
|
var token = query.token || query.inviteToken || ''
|
|
|
if (!token) {
|
|
|
var scene = query.scene
|
|
|
@@ -190,23 +200,24 @@ export default {
|
|
|
} else if (sceneDecoded.indexOf('invite=') === 0) {
|
|
|
// 旧格式兼容
|
|
|
token = sceneDecoded.substring(7)
|
|
|
+ } else if (sceneDecoded.indexOf('ref=') === 0) {
|
|
|
+ // 推广码场景值(ref=xxx),已在上方解析为 refCode,不作为 token
|
|
|
+ token = ''
|
|
|
+ } else if (sceneDecoded.length === 6) {
|
|
|
+ // 裸邀请码场景值(InviteController 生成的二维码 scene=referralCode,6位)
|
|
|
+ // 归为推广码,不作为家庭 token
|
|
|
+ refCode = refCode || sceneDecoded
|
|
|
+ token = ''
|
|
|
} else {
|
|
|
token = sceneDecoded
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // refCode:query.refCode 或场景值(ref=xxx)— 推广码注册绑定
|
|
|
- var refCode = query.refCode || ''
|
|
|
- if (!refCode && query.scene) {
|
|
|
- var refScene = decodeURIComponent(query.scene)
|
|
|
- if (refScene.indexOf('ref=') === 0) {
|
|
|
- refCode = refScene.substring(4)
|
|
|
- }
|
|
|
- }
|
|
|
if (!token && !refCode) {
|
|
|
- this.error = '邀请链接无效'
|
|
|
- this.loading = false
|
|
|
+ // 兼容旧分享链接(promotion/index.vue 旧版 onShareAppMessage 不带参数)
|
|
|
+ // 无有效邀请信息时跳转首页,不显示"邀请链接无效"死页面
|
|
|
+ uni.reLaunch({ url: '/pages/index-home/index' })
|
|
|
return
|
|
|
}
|
|
|
if (refCode) {
|
|
|
@@ -327,6 +338,10 @@ export default {
|
|
|
|
|
|
this.isLoggedIn = true
|
|
|
uni.showToast({ title: '登录成功', icon: 'success' })
|
|
|
+ // 兼容旧分享链接:登录成功后自动绑定推广码(与 login.vue 流程一致)
|
|
|
+ if (this.refCode && !this.bindDone) {
|
|
|
+ await this.bindRef()
|
|
|
+ }
|
|
|
// 重新检查家庭状态
|
|
|
await this.checkFamily()
|
|
|
}
|