Some checks failed
continuous-integration/drone/push Build is failing
- 预约详情: 隐藏用户手机、修复性别/年级映射、添加家庭氛围和期望字段、格式化日期时间 - 邀请页面: 规则弹窗文字间距修复、提现记录红色标题栏、邀请记录红色标题栏+边框、提现记录弹窗列宽优化 - 系统配置: 邀请规则改为多行文本框 - 邀请绑定: 添加前后端完整链路日志用于排查上下级绑定问题 - 首页: 专业测评区域改为横向滚动、更多区域改为全图片模式
81 lines
2.2 KiB
Vue
81 lines
2.2 KiB
Vue
<script>
|
||
import { useUserStore } from './store/user.js'
|
||
import { useAppStore } from './store/app.js'
|
||
import { setupRouteGuard } from './utils/routeGuard.js'
|
||
|
||
export default {
|
||
onLaunch: function(options) {
|
||
console.log('App Launch', options)
|
||
// 初始化路由守卫(未登录跳转登录页)
|
||
setupRouteGuard()
|
||
|
||
// 初始化系统信息
|
||
const appStore = useAppStore()
|
||
appStore.initSystemInfo()
|
||
|
||
// 恢复用户状态
|
||
const userStore = useUserStore()
|
||
userStore.restoreFromStorage()
|
||
|
||
// 解析邀请人参数(二维码扫码 scene 或分享链接 query)
|
||
this.parseInviterFromLaunch(options)
|
||
|
||
// 已登录时从服务器刷新用户信息
|
||
if (userStore.isLoggedIn) {
|
||
userStore.fetchUserInfo()
|
||
}
|
||
},
|
||
onShow: function() {
|
||
console.log('App Show')
|
||
},
|
||
onHide: function() {
|
||
console.log('App Hide')
|
||
},
|
||
methods: {
|
||
/**
|
||
* 解析邀请人参数
|
||
* 来源1: 扫描小程序码 scene 参数,格式 inviter={userId}
|
||
* 来源2: 分享链接 query 参数 inviteUid={uid}
|
||
*/
|
||
parseInviterFromLaunch(options) {
|
||
if (!options) return
|
||
|
||
console.log('[App] parseInviterFromLaunch 原始options:', JSON.stringify(options))
|
||
|
||
let inviterId = null
|
||
|
||
// 1. 扫码进入:解析 scene 参数(inviter={userId})
|
||
if (options.scene) {
|
||
const scene = decodeURIComponent(options.scene)
|
||
console.log('[App] 扫码 scene 解码后:', scene)
|
||
const match = scene.match(/inviter=(\d+)/)
|
||
if (match) {
|
||
inviterId = match[1]
|
||
console.log('[App] 从scene解析到inviterId:', inviterId)
|
||
} else {
|
||
console.log('[App] scene中未匹配到inviter参数')
|
||
}
|
||
}
|
||
|
||
// 2. 分享链接进入:解析 inviterId 参数
|
||
if (!inviterId && options.inviterId) {
|
||
inviterId = options.inviterId
|
||
console.log('[App] 从query参数获取inviterId:', inviterId)
|
||
}
|
||
|
||
// 存储邀请人ID(仅未登录用户需要绑定)
|
||
if (inviterId) {
|
||
console.log('[App] 存储inviterId到Storage:', inviterId)
|
||
uni.setStorageSync('inviterId', inviterId)
|
||
} else {
|
||
console.log('[App] 未检测到邀请人参数')
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
/*每个页面公共css */
|
||
</style>
|