You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script>
export default {
onLaunch: async function() {
try {
// 获取小程序启动参数
const launchOptions = uni.getLaunchOptionsSync()
console.log('小程序启动参数:', launchOptions)
// 判断是否从分享链接进入
const isFromShare = launchOptions.scene === 1007 ||
launchOptions.scene === 1008 ||
launchOptions.scene === 1044 ||
(launchOptions.referrerInfo && launchOptions.referrerInfo.appId) ||
(launchOptions.query && Object.keys(launchOptions.query).length > 0)
console.log('是否从分享链接进入:', isFromShare)
// 存储分享进入状态
uni.setStorageSync('isFromShare', isFromShare)
// 如果是从分享链接进入检查是否是orderStaffDetail页面
if (isFromShare) {
// 存储分享进入的详细信息
uni.setStorageSync('shareLaunchTime', Date.now())
if (launchOptions.query) {
uni.setStorageSync('shareQuery', launchOptions.query)
}
if (launchOptions.referrerInfo) {
uni.setStorageSync('shareReferrer', launchOptions.referrerInfo)
}
// 检查是否是orderStaffDetail页面的分享
const isOrderDetailShare = this.orderStaffDetail(launchOptions.query)
uni.setStorageSync('isOrderDetailShare', isOrderDetailShare)
if (isOrderDetailShare) {
console.log('从orderStaffDetail页面分享进入跳过token检查')
// uni.showToast({
// title: '从订单详情分享进入跳过token检查',
// icon: 'none'
// })
return // 跳过token检查
} else {
console.log('从其他页面分享进入需要检查token')
// 清除分享缓存,因为需要正常登录
this.clearShareCache()
}
} else {
// 不是从分享进入,清除可能存在的分享缓存
this.clearShareCache()
}
// 进行正常的token检查
if(this.base.isNull(this.vuex_token)){
uni.redirectTo({
url:'/package_sub/login/login'
})
}else{
const user = await this.$u.api.getUser()
console.log("user",user)
this.$u.vuex('vuex_user', user)
}
} catch (err) {
console.error(err)
}
},
onShow: function() {
},
onHide: function() {
console.log('App Hide')
},
methods: {
// 检查是否是orderStaffDetail页面的分享
orderStaffDetail(query) {
// 检查查询参数中是否有id这通常表示是订单详情页
if (query && query.id) {
console.log('检测到订单详情页分享订单ID:', query.id)
return true
}
// 检查路径参数(如果有的话)
if (query && query.path) {
const path = query.path
if (path.includes('orderStaffDetail') || path.includes('orderDetail')) {
console.log('检测到订单详情页分享,路径:', path)
return true
}
}
return false
},
// 清除分享缓存
clearShareCache() {
uni.removeStorageSync('isFromShare')
uni.removeStorageSync('shareLaunchTime')
uni.removeStorageSync('shareQuery')
uni.removeStorageSync('shareReferrer')
uni.removeStorageSync('isOrderDetailShare')
}
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import "uview-ui/index.scss";
</style>