Commit b966d2bc17e80f7516e76040439de45fefffbe93

Authored by 夏洋涛
1 parent f596a961
Exists in master

fix:二次回退问题修复

src/views/Home/Home.vue
... ... @@ -12,7 +12,7 @@
12 12 {{ schoolNamesChoose.schoolName }}<img src="@/assets/Travel/change.png" />
13 13 </div>
14 14 </div>
15   - <p class="phone">{{ phoneDesensitization(userInfo.phone,'*') }}</p>
  15 + <p class="phone">{{ phoneDesensitization(userInfo.phone, '*') }}</p>
16 16 </div>
17 17 </div>
18 18 <HomeScan v-if="!isWechat"></HomeScan>
... ... @@ -91,7 +91,7 @@ export default {
91 91 showChildList: false,
92 92 showSchool: false,
93 93 schoolNamesChoose: '',
94   - isWechat:false
  94 + isWechat: false,
95 95 }
96 96 },
97 97  
... ... @@ -106,9 +106,9 @@ export default {
106 106 this.schoolNamesChoose = JSON.parse(schoolNamesChoose)
107 107 }
108 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 112 this.centerNo = localStorage.getItem('centerNo')
113 113 this.getUserInfo()
114 114 this.againRZ()
... ... @@ -183,20 +183,20 @@ export default {
183 183 },
184 184 //五星少年
185 185 handleStars() {
186   - this.$router.push({name: 'stars'})
  186 + this.$router.push({ name: 'stars' })
187 187 },
188 188 // 清除缓存
189 189 handleClearCache() {
190 190 this.$toast.loading({
191   - message: '正在清除',
  191 + message: '清除成功,正在重新登录',
192 192 duration: 1000,
193 193 forbidClick: true,
194 194 })
  195 + localStorage.removeItem('schoolNamesChoose')
  196 + localStorage.removeItem('schoolNames')
  197 + localStorage.removeItem('centerNo')
195 198 setTimeout(() => {
196   - this.$toast('清除成功')
197   - localStorage.removeItem('schoolNamesChoose')
198   - localStorage.removeItem('schoolNames')
199   - this.getUserInfo()
  199 + this.$router.replace({ path: '/' })
200 200 }, 1000)
201 201 },
202 202 // 获取用户信息
... ...
src/views/Service/ServiceBaseKQ.vue
... ... @@ -98,20 +98,6 @@ export default {
98 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 101 mounted() {
116 102 console.log('base mounted')
117 103 // alert('servicebase show')
... ...
src/views/Service/ServiceKQ.vue
... ... @@ -4,7 +4,7 @@
4 4  
5 5 <script>
6 6 import ServiceBasekq from './ServiceBaseKQ.vue'
7   -const userData = require('@/views/answerRank/data.json');
  7 +const userData = require('@/views/answerRank/data.json')
8 8 export default {
9 9 name: 'ServiceKQ',
10 10 data() {
... ... @@ -16,29 +16,44 @@ export default {
16 16 mounted() {
17 17 console.log('xst mounted')
18 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 35 methods: {
  36 + //支付宝二次回退方法,addEventListener和removeEventListener一定要调用方法,不然无效
  37 + listenerPopstate() {
  38 + ZWJSBridge.close()
  39 + },
25 40 checkAuth() {
26 41 let centerNo = localStorage.getItem('centerNo')
27 42 let ticket = this.common.getUrlParam('ticket') //浙里办app访问
28 43 let ticketId = this.common.getUrlParam('ticketId') //浙里办微信小程序访问
29 44 // alert(location.href)
30 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 47 // alert('有中台编号:' + centerNo)
39 48 this.centerNo = centerNo
40 49 localStorage.setItem('centerNo', centerNo)
41 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 57 } else {
43 58 const sUserAgent = window.navigator.userAgent.toLowerCase()
44 59 const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1
... ... @@ -51,7 +66,7 @@ export default {
51 66 window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=82a7a71edb794fc285895f9e33290ddc`
52 67 } else {
53 68 alert('非浙里办渠道访问,显示测试用户数据')
54   - console.log('非浙里办渠道访问,显示测试用户数据',userData)
  69 + console.log('非浙里办渠道访问,显示测试用户数据', userData)
55 70 this.centerNo = '2022031508525674030748540013076'
56 71 localStorage.setItem('centerNo', '2022031508525674030748540013076')
57 72 let userInfo = JSON.stringify(userData)
... ... @@ -125,14 +140,26 @@ export default {
125 140 },
126 141 reLoad() {
127 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 163 if (dtdreamweb) {
137 164 // alert('浙里办')
138 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 167 // alert('支付宝')
141 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 173 getUserInfo: function() {
... ...