wangfukang 1 month ago
parent
commit
c26c94de1a
  1. 4
      package2/group/groupBuySingle.vue
  2. 41
      package2/login/login.vue

4
package2/group/groupBuySingle.vue

@ -2797,7 +2797,9 @@
}, },
back() { back() {
const pages = getCurrentPages(); const pages = getCurrentPages();
if (pages.length > 1) { const prev = pages.length > 1 ? pages[pages.length - 2] : null;
const prevRoute = prev && prev.route ? '/' + prev.route : '';
if (pages.length > 1 && prevRoute.indexOf('/package2/login/login') !== 0) {
uni.navigateBack(); uni.navigateBack();
} else { } else {
this.backHome(); this.backHome();

41
package2/login/login.vue

@ -93,7 +93,7 @@
</template> </template>
<script> <script>
import { resolveHomeShareTarget, getEnterShareTarget } from '@/utils/sharePath.js' import { resolveHomeShareTarget, getEnterShareTarget, resolveMiniCodeSceneTarget, reopenShareEnter } from '@/utils/sharePath.js'
export default { export default {
data() { data() {
return { return {
@ -331,11 +331,40 @@
} }
}) })
}, },
isGroupBuyPage(url) {
const value = String(url || '')
return value.indexOf('/package2/group/groupBuySingle') === 0 || value.indexOf('package2/group/groupBuySingle') === 0
},
openGroupPageViaHome(targetPath, done, fallbackHome) {
reopenShareEnter(targetPath)
uni.setStorageSync('pendingShareTargetPath', targetPath)
uni.switchTab({
url: '/pages/index/index',
success: done,
fail: () => {
uni.reLaunch({
url: '/pages/index/index',
success: done,
fail: fallbackHome
})
}
})
},
resolveEnterTargetPath() {
let options = null
try {
if (uni.getEnterOptionsSync) options = uni.getEnterOptionsSync()
} catch (e) {}
const query = options && options.query
return resolveMiniCodeSceneTarget(query && query.scene) || getEnterShareTarget(options) || ''
},
goAfterLogin(clearRedirect) { goAfterLogin(clearRedirect) {
const pendingPath = this.redirectKey ? uni.getStorageSync(this.redirectKey) : '' const pendingPath = this.redirectKey ? uni.getStorageSync(this.redirectKey) : ''
const fallbackTargetPath = uni.getStorageSync('authPendingTargetPath') || uni.getStorageSync('pendingShareTargetPath') || getEnterShareTarget() || '' const fallbackTargetPath = uni.getStorageSync('authPendingTargetPath') || uni.getStorageSync('pendingShareTargetPath') || this.resolveEnterTargetPath() || ''
const targetUrl = pendingPath || fallbackTargetPath || '/pages/index/index' const targetUrl = pendingPath || fallbackTargetPath || '/pages/index/index'
const homeTargetPath = this.extractHomeTargetPath(targetUrl) const homeTargetPath = this.extractHomeTargetPath(targetUrl)
const shareTargetPath = homeTargetPath || (targetUrl.indexOf('/pages/index/index') === 0 || targetUrl.indexOf('pages/index/index') === 0 ? '' : targetUrl)
if (shareTargetPath) reopenShareEnter(shareTargetPath)
if (homeTargetPath) { if (homeTargetPath) {
uni.setStorageSync('pendingShareTargetPath', homeTargetPath) uni.setStorageSync('pendingShareTargetPath', homeTargetPath)
} }
@ -353,8 +382,10 @@
} }
const fallbackHome = () => { const fallbackHome = () => {
if (homeTargetPath) { if (homeTargetPath) {
reopenShareEnter(homeTargetPath)
uni.setStorageSync('pendingShareTargetPath', homeTargetPath) uni.setStorageSync('pendingShareTargetPath', homeTargetPath)
} else if (targetUrl && targetUrl.indexOf('/pages/index/index') !== 0 && targetUrl.indexOf('pages/index/index') !== 0) { } else if (targetUrl && targetUrl.indexOf('/pages/index/index') !== 0 && targetUrl.indexOf('pages/index/index') !== 0) {
reopenShareEnter(targetUrl)
uni.setStorageSync('pendingShareTargetPath', targetUrl) uni.setStorageSync('pendingShareTargetPath', targetUrl)
} }
uni.reLaunch({ uni.reLaunch({
@ -369,6 +400,7 @@
}) })
} }
if (needsAreaBeforeTarget) { if (needsAreaBeforeTarget) {
reopenShareEnter(targetUrl)
uni.setStorageSync('pendingShareTargetPath', targetUrl) uni.setStorageSync('pendingShareTargetPath', targetUrl)
uni.reLaunch({ uni.reLaunch({
url: '/pages/index/index', url: '/pages/index/index',
@ -385,6 +417,11 @@
}) })
return return
} }
const groupTargetPath = this.isGroupBuyPage(shareTargetPath) ? shareTargetPath : (this.isGroupBuyPage(targetUrl) ? targetUrl : '')
if (groupTargetPath) {
this.openGroupPageViaHome(groupTargetPath, done, fallbackHome)
return
}
uni.redirectTo({ uni.redirectTo({
url: targetUrl, url: targetUrl,
success: done, success: done,

Loading…
Cancel
Save