From b966d2bc17e80f7516e76040439de45fefffbe93 Mon Sep 17 00:00:00 2001 From: xiayt <x1027869635@gmail.com> Date: Thu, 10 Nov 2022 09:01:48 +0800 Subject: [PATCH] fix:二次回退问题修复 --- src/views/Home/Home.vue | 22 +++++++++++----------- src/views/Service/ServiceBaseKQ.vue | 14 -------------- src/views/Service/ServiceKQ.vue | 69 ++++++++++++++++++++++++++++++++++++++++++++++++--------------------- 3 files changed, 59 insertions(+), 46 deletions(-) diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue index c53f1f1..eddf6ae 100644 --- a/src/views/Home/Home.vue +++ b/src/views/Home/Home.vue @@ -12,7 +12,7 @@ {{ schoolNamesChoose.schoolName }}<img src="@/assets/Travel/change.png" /> </div> </div> - <p class="phone">{{ phoneDesensitization(userInfo.phone,'*') }}</p> + <p class="phone">{{ phoneDesensitization(userInfo.phone, '*') }}</p> </div> </div> <HomeScan v-if="!isWechat"></HomeScan> @@ -91,7 +91,7 @@ export default { showChildList: false, showSchool: false, schoolNamesChoose: '', - isWechat:false + isWechat: false, } }, @@ -106,9 +106,9 @@ export default { this.schoolNamesChoose = JSON.parse(schoolNamesChoose) } let isWechat = localStorage.getItem('isWechat') - if(isWechat==1){ - this.isWechat = true - } + if (isWechat == 1) { + this.isWechat = true + } this.centerNo = localStorage.getItem('centerNo') this.getUserInfo() this.againRZ() @@ -183,20 +183,20 @@ export default { }, //五星少年 handleStars() { - this.$router.push({name: 'stars'}) + this.$router.push({ name: 'stars' }) }, // 清除缓存 handleClearCache() { this.$toast.loading({ - message: '正在清除', + message: '清除成功,正在重新登录', duration: 1000, forbidClick: true, }) + localStorage.removeItem('schoolNamesChoose') + localStorage.removeItem('schoolNames') + localStorage.removeItem('centerNo') setTimeout(() => { - this.$toast('清除成功') - localStorage.removeItem('schoolNamesChoose') - localStorage.removeItem('schoolNames') - this.getUserInfo() + this.$router.replace({ path: '/' }) }, 1000) }, // 获取用户信息 diff --git a/src/views/Service/ServiceBaseKQ.vue b/src/views/Service/ServiceBaseKQ.vue index 180c5e5..e22ca7b 100644 --- a/src/views/Service/ServiceBaseKQ.vue +++ b/src/views/Service/ServiceBaseKQ.vue @@ -98,20 +98,6 @@ export default { loading: false, } }, - watch: { - $route: { - immediate: true, - handler() { - // 设置tabbar状态 - let showTab = this.$route.query.showTab - this.tabName = showTab || 'KQ' - // document.title = showTab == 'ZZY' ? '周周营' : '红色网上游——柯桥研学' - this.$nextTick(() => { - this.$refs.tabs.resize() - }) - }, - }, - }, mounted() { console.log('base mounted') // alert('servicebase show') diff --git a/src/views/Service/ServiceKQ.vue b/src/views/Service/ServiceKQ.vue index 3dd959f..d7d8445 100644 --- a/src/views/Service/ServiceKQ.vue +++ b/src/views/Service/ServiceKQ.vue @@ -4,7 +4,7 @@ <script> import ServiceBasekq from './ServiceBaseKQ.vue' -const userData = require('@/views/answerRank/data.json'); +const userData = require('@/views/answerRank/data.json') export default { name: 'ServiceKQ', data() { @@ -16,29 +16,44 @@ export default { mounted() { console.log('xst mounted') this.checkAuth() + //二次回退 + const sUserAgent = window.navigator.userAgent.toLowerCase() + const bIsAlipayMini = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 + if (bIsAlipayMini) { + console.log('我来自支付宝,popstate') + window.addEventListener('popstate', this.listenerPopstate, true) + } else { + console.log('我来自浙里办,popstate') + window.addEventListener('popstate', this.listenerPopstate, true) + } }, - activated() { - console.log('KQ activated') - this.checkAuth() + //销毁监听 + destroyed() { + console.log('销毁支付宝监听') + window.removeEventListener('popstate', this.listenerPopstate, true) }, methods: { + //支付宝二次回退方法,addEventListener和removeEventListener一定要调用方法,不然无效 + listenerPopstate() { + ZWJSBridge.close() + }, checkAuth() { let centerNo = localStorage.getItem('centerNo') let ticket = this.common.getUrlParam('ticket') //浙里办app访问 let ticketId = this.common.getUrlParam('ticketId') //浙里办微信小程序访问 // alert(location.href) // alert(ticketId) - if (ticket) { - this.getCenterByTicket(ticket) - } else if (ticketId) { - // alert('getCenterByTicketId') - this.getCenterByTicketId(ticketId) - localStorage.setItem('isWechat',1) - } else if (centerNo) { + if (centerNo) { // alert('有中台编号:' + centerNo) this.centerNo = centerNo localStorage.setItem('centerNo', centerNo) this.getUserInfo() + } else if (ticket) { + this.getCenterByTicket(ticket) + } else if (ticketId) { + // alert('getCenterByTicketId') + this.getCenterByTicketId(ticketId) + localStorage.setItem('isWechat', 1) } else { const sUserAgent = window.navigator.userAgent.toLowerCase() const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1 @@ -51,7 +66,7 @@ export default { window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc` } else { alert('非浙里办渠道访问,显示测试用户数据') - console.log('非浙里办渠道访问,显示测试用户数据',userData) + console.log('非浙里办渠道访问,显示测试用户数据', userData) this.centerNo = '2022031508525674030748540013076' localStorage.setItem('centerNo', '2022031508525674030748540013076') let userInfo = JSON.stringify(userData) @@ -125,14 +140,26 @@ export default { }, reLoad() { console.log('reload') - ZWJSBridge.confirm({ - title: '警告', - buttonLabels: ['重新载入'], - message: '用户身份验证失败,请重新加载', - }).then((res) => { - const sUserAgent = window.navigator.userAgent.toLowerCase() - const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1 - const miniprogram = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 + const sUserAgent = window.navigator.userAgent.toLowerCase() + const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1 + const miniprogram = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 + if (localStorage.getItem('reloadCount') == 2) { + localStorage.setItem('reloadCount', 1) + ZWJSBridge.confirm({ + title: '警告', + buttonLabels: ['重新载入'], + message: '用户身份验证失败,请重新加载', + }).then((res) => { + if (dtdreamweb) { + // alert('浙里办') + window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=82a7a71edb794fc285895f9e33290ddc` + } else if (miniprogram) { + // alert('支付宝') + window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc` + } + }) + } else { + localStorage.setItem('reloadCount', 2) if (dtdreamweb) { // alert('浙里办') window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=82a7a71edb794fc285895f9e33290ddc` @@ -140,7 +167,7 @@ export default { // alert('支付宝') window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc` } - }) + } }, // 获取用户信息 getUserInfo: function() { -- libgit2 0.21.0