|
|
<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')
|
|
|
},
|
|
|
// 监听隐私授权需要
|
|
|
onNeedPrivacyAuthorization(resolve) {
|
|
|
// #ifdef MP-WEIXIN
|
|
|
console.log('需要隐私授权', resolve)
|
|
|
// 用户触发隐私接口时,会触发此回调
|
|
|
// resolve 是一个函数,调用 resolve() 表示用户同意授权
|
|
|
// 调用 resolve({ buttonId: 'xxx', event: 'xxx' }) 表示用户点击了同意按钮
|
|
|
// 调用 resolve({ event: 'disagree' }) 表示用户点击了拒绝按钮
|
|
|
|
|
|
// 这里可以显示自定义的隐私授权弹窗
|
|
|
// 用户同意后调用 resolve()
|
|
|
// 用户拒绝后调用 resolve({ event: 'disagree' })
|
|
|
|
|
|
// 默认行为:直接同意(如果需要自定义弹窗,可以在这里实现)
|
|
|
// resolve()
|
|
|
// #endif
|
|
|
},
|
|
|
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> |