Commit b966d2bc17e80f7516e76040439de45fefffbe93

Authored by 夏洋涛
1 parent f596a961
Exists in master

fix:二次回退问题修复

src/views/Home/Home.vue
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 {{ schoolNamesChoose.schoolName }}<img src="@/assets/Travel/change.png" /> 12 {{ schoolNamesChoose.schoolName }}<img src="@/assets/Travel/change.png" />
13 </div> 13 </div>
14 </div> 14 </div>
15 - <p class="phone">{{ phoneDesensitization(userInfo.phone,'*') }}</p> 15 + <p class="phone">{{ phoneDesensitization(userInfo.phone, '*') }}</p>
16 </div> 16 </div>
17 </div> 17 </div>
18 <HomeScan v-if="!isWechat"></HomeScan> 18 <HomeScan v-if="!isWechat"></HomeScan>
@@ -91,7 +91,7 @@ export default { @@ -91,7 +91,7 @@ export default {
91 showChildList: false, 91 showChildList: false,
92 showSchool: false, 92 showSchool: false,
93 schoolNamesChoose: '', 93 schoolNamesChoose: '',
94 - isWechat:false 94 + isWechat: false,
95 } 95 }
96 }, 96 },
97 97
@@ -106,9 +106,9 @@ export default { @@ -106,9 +106,9 @@ export default {
106 this.schoolNamesChoose = JSON.parse(schoolNamesChoose) 106 this.schoolNamesChoose = JSON.parse(schoolNamesChoose)
107 } 107 }
108 let isWechat = localStorage.getItem('isWechat') 108 let isWechat = localStorage.getItem('isWechat')
109 - if(isWechat==1){  
110 - this.isWechat = true  
111 - } 109 + if (isWechat == 1) {
  110 + this.isWechat = true
  111 + }
112 this.centerNo = localStorage.getItem('centerNo') 112 this.centerNo = localStorage.getItem('centerNo')
113 this.getUserInfo() 113 this.getUserInfo()
114 this.againRZ() 114 this.againRZ()
@@ -183,20 +183,20 @@ export default { @@ -183,20 +183,20 @@ export default {
183 }, 183 },
184 //五星少年 184 //五星少年
185 handleStars() { 185 handleStars() {
186 - this.$router.push({name: 'stars'}) 186 + this.$router.push({ name: 'stars' })
187 }, 187 },
188 // 清除缓存 188 // 清除缓存
189 handleClearCache() { 189 handleClearCache() {
190 this.$toast.loading({ 190 this.$toast.loading({
191 - message: '正在清除', 191 + message: '清除成功,正在重新登录',
192 duration: 1000, 192 duration: 1000,
193 forbidClick: true, 193 forbidClick: true,
194 }) 194 })
  195 + localStorage.removeItem('schoolNamesChoose')
  196 + localStorage.removeItem('schoolNames')
  197 + localStorage.removeItem('centerNo')
195 setTimeout(() => { 198 setTimeout(() => {
196 - this.$toast('清除成功')  
197 - localStorage.removeItem('schoolNamesChoose')  
198 - localStorage.removeItem('schoolNames')  
199 - this.getUserInfo() 199 + this.$router.replace({ path: '/' })
200 }, 1000) 200 }, 1000)
201 }, 201 },
202 // 获取用户信息 202 // 获取用户信息
src/views/Service/ServiceBaseKQ.vue
@@ -98,20 +98,6 @@ export default { @@ -98,20 +98,6 @@ export default {
98 loading: false, 98 loading: false,
99 } 99 }
100 }, 100 },
101 - watch: {  
102 - $route: {  
103 - immediate: true,  
104 - handler() {  
105 - // 设置tabbar状态  
106 - let showTab = this.$route.query.showTab  
107 - this.tabName = showTab || 'KQ'  
108 - // document.title = showTab == 'ZZY' ? '周周营' : '红色网上游——柯桥研学'  
109 - this.$nextTick(() => {  
110 - this.$refs.tabs.resize()  
111 - })  
112 - },  
113 - },  
114 - },  
115 mounted() { 101 mounted() {
116 console.log('base mounted') 102 console.log('base mounted')
117 // alert('servicebase show') 103 // alert('servicebase show')
src/views/Service/ServiceKQ.vue
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 4
5 <script> 5 <script>
6 import ServiceBasekq from './ServiceBaseKQ.vue' 6 import ServiceBasekq from './ServiceBaseKQ.vue'
7 -const userData = require('@/views/answerRank/data.json'); 7 +const userData = require('@/views/answerRank/data.json')
8 export default { 8 export default {
9 name: 'ServiceKQ', 9 name: 'ServiceKQ',
10 data() { 10 data() {
@@ -16,29 +16,44 @@ export default { @@ -16,29 +16,44 @@ export default {
16 mounted() { 16 mounted() {
17 console.log('xst mounted') 17 console.log('xst mounted')
18 this.checkAuth() 18 this.checkAuth()
  19 + //二次回退
  20 + const sUserAgent = window.navigator.userAgent.toLowerCase()
  21 + const bIsAlipayMini = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1
  22 + if (bIsAlipayMini) {
  23 + console.log('我来自支付宝,popstate')
  24 + window.addEventListener('popstate', this.listenerPopstate, true)
  25 + } else {
  26 + console.log('我来自浙里办,popstate')
  27 + window.addEventListener('popstate', this.listenerPopstate, true)
  28 + }
19 }, 29 },
20 - activated() {  
21 - console.log('KQ activated')  
22 - this.checkAuth() 30 + //销毁监听
  31 + destroyed() {
  32 + console.log('销毁支付宝监听')
  33 + window.removeEventListener('popstate', this.listenerPopstate, true)
23 }, 34 },
24 methods: { 35 methods: {
  36 + //支付宝二次回退方法,addEventListener和removeEventListener一定要调用方法,不然无效
  37 + listenerPopstate() {
  38 + ZWJSBridge.close()
  39 + },
25 checkAuth() { 40 checkAuth() {
26 let centerNo = localStorage.getItem('centerNo') 41 let centerNo = localStorage.getItem('centerNo')
27 let ticket = this.common.getUrlParam('ticket') //浙里办app访问 42 let ticket = this.common.getUrlParam('ticket') //浙里办app访问
28 let ticketId = this.common.getUrlParam('ticketId') //浙里办微信小程序访问 43 let ticketId = this.common.getUrlParam('ticketId') //浙里办微信小程序访问
29 // alert(location.href) 44 // alert(location.href)
30 // alert(ticketId) 45 // alert(ticketId)
31 - if (ticket) {  
32 - this.getCenterByTicket(ticket)  
33 - } else if (ticketId) {  
34 - // alert('getCenterByTicketId')  
35 - this.getCenterByTicketId(ticketId)  
36 - localStorage.setItem('isWechat',1)  
37 - } else if (centerNo) { 46 + if (centerNo) {
38 // alert('有中台编号:' + centerNo) 47 // alert('有中台编号:' + centerNo)
39 this.centerNo = centerNo 48 this.centerNo = centerNo
40 localStorage.setItem('centerNo', centerNo) 49 localStorage.setItem('centerNo', centerNo)
41 this.getUserInfo() 50 this.getUserInfo()
  51 + } else if (ticket) {
  52 + this.getCenterByTicket(ticket)
  53 + } else if (ticketId) {
  54 + // alert('getCenterByTicketId')
  55 + this.getCenterByTicketId(ticketId)
  56 + localStorage.setItem('isWechat', 1)
42 } else { 57 } else {
43 const sUserAgent = window.navigator.userAgent.toLowerCase() 58 const sUserAgent = window.navigator.userAgent.toLowerCase()
44 const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1 59 const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1
@@ -51,7 +66,7 @@ export default { @@ -51,7 +66,7 @@ export default {
51 window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc` 66 window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc`
52 } else { 67 } else {
53 alert('非浙里办渠道访问,显示测试用户数据') 68 alert('非浙里办渠道访问,显示测试用户数据')
54 - console.log('非浙里办渠道访问,显示测试用户数据',userData) 69 + console.log('非浙里办渠道访问,显示测试用户数据', userData)
55 this.centerNo = '2022031508525674030748540013076' 70 this.centerNo = '2022031508525674030748540013076'
56 localStorage.setItem('centerNo', '2022031508525674030748540013076') 71 localStorage.setItem('centerNo', '2022031508525674030748540013076')
57 let userInfo = JSON.stringify(userData) 72 let userInfo = JSON.stringify(userData)
@@ -125,14 +140,26 @@ export default { @@ -125,14 +140,26 @@ export default {
125 }, 140 },
126 reLoad() { 141 reLoad() {
127 console.log('reload') 142 console.log('reload')
128 - ZWJSBridge.confirm({  
129 - title: '警告',  
130 - buttonLabels: ['重新载入'],  
131 - message: '用户身份验证失败,请重新加载',  
132 - }).then((res) => {  
133 - const sUserAgent = window.navigator.userAgent.toLowerCase()  
134 - const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1  
135 - const miniprogram = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 143 + const sUserAgent = window.navigator.userAgent.toLowerCase()
  144 + const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1
  145 + const miniprogram = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1
  146 + if (localStorage.getItem('reloadCount') == 2) {
  147 + localStorage.setItem('reloadCount', 1)
  148 + ZWJSBridge.confirm({
  149 + title: '警告',
  150 + buttonLabels: ['重新载入'],
  151 + message: '用户身份验证失败,请重新加载',
  152 + }).then((res) => {
  153 + if (dtdreamweb) {
  154 + // alert('浙里办')
  155 + window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=82a7a71edb794fc285895f9e33290ddc`
  156 + } else if (miniprogram) {
  157 + // alert('支付宝')
  158 + window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc`
  159 + }
  160 + })
  161 + } else {
  162 + localStorage.setItem('reloadCount', 2)
136 if (dtdreamweb) { 163 if (dtdreamweb) {
137 // alert('浙里办') 164 // alert('浙里办')
138 window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=82a7a71edb794fc285895f9e33290ddc` 165 window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=82a7a71edb794fc285895f9e33290ddc`
@@ -140,7 +167,7 @@ export default { @@ -140,7 +167,7 @@ export default {
140 // alert('支付宝') 167 // alert('支付宝')
141 window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc` 168 window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc`
142 } 169 }
143 - }) 170 + }
144 }, 171 },
145 // 获取用户信息 172 // 获取用户信息
146 getUserInfo: function() { 173 getUserInfo: function() {