mi-assessment/uniapp/App.vue
zpc c22a743eb0
Some checks failed
continuous-integration/drone/push Build is failing
fix: 多项修复和优化
- 预约详情: 隐藏用户手机、修复性别/年级映射、添加家庭氛围和期望字段、格式化日期时间
- 邀请页面: 规则弹窗文字间距修复、提现记录红色标题栏、邀请记录红色标题栏+边框、提现记录弹窗列宽优化
- 系统配置: 邀请规则改为多行文本框
- 邀请绑定: 添加前后端完整链路日志用于排查上下级绑定问题
- 首页: 专业测评区域改为横向滚动、更多区域改为全图片模式
2026-03-25 14:55:37 +08:00

81 lines
2.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>