Browse Source

修改动态appid

feature
战立标 2 years ago
parent
commit
8ea3c59a3c
  1. 107
      src/router/index.js
  2. 6
      src/router/router.config.js
  3. 22
      src/views/errorPage/index.vue
  4. 10
      src/views/event/index.vue
  5. 2
      src/views/login/index.vue
  6. 10
      src/views/register/index.vue

107
src/router/index.js

@ -5,7 +5,7 @@ import { constantRouterMap } from './router.config.js'
import { checkWxmpRegister, login } from '@/api/user'
import { title } from '@/config'
const whiteList = ['/login']
const whiteList = ['/login', '/register', '/errorPage']
const originalPush = Router.prototype.push
Router.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
@ -54,60 +54,71 @@ router.beforeEach((to, from, next) => {
if (urlParams.appId) {
store.commit('SET_APP_ID', urlParams.appId)
localStorage.setItem('appId', urlParams.appId)
if (localStorage.getItem('appId') && urlParams.appId !== localStorage.getItem('appId')) {
localStorage.removeItem('token')
location.reload()
}
} else {
store.commit('SET_APP_ID', localStorage.getItem('appId'))
}
console.log(store.state.app.appId, 'store.state.app.appId')
if (to.params.type) {
document.title = to.params.type === 'edit' ? '编辑' : '注册'
} else {
document.title = to.meta.title ? to.meta.title : title
}
if (localStorage.getItem('token')) {
store.dispatch('getUserInfo').then(() => {
checkWxmpRegister({
userId: store.state.app.userInfo.userId
}).then(res => {
if (res) {
next()
} else {
next('/register')
}
})
})
if (!localStorage.getItem('appId') && to.path !== '/errorPage') {
next('/errorPage')
} else {
if (getQueryStringByName('code')) {
// return
login({ wxCode: getQueryStringByName('code') }).then(res => {
localStorage.setItem('token', res.token)
let state = decodeURIComponent(getQueryStringByName('state'))
state = state.replace(/[\\\b\f\n\r\t]/g, '')
state = state.replace(/(\s*?{\s*?|\s*?,\s*?)(['"])?([a-zA-Z0-9]+)(['"])?:/g, '$1"$3":')
state = state
.replace(/":/g, '":"')
.replace(/,"/g, '","')
.replace(/},/g, '"},')
.replace(/}]/g, '"}]')
.replace(/}}/g, '"}}')
.replace(/"{/g, '{')
.replace(/:{"}/g, ':{}')
console.log(state)
let path = `${location.origin}${location.pathname === '/' ? '' : location.pathname}`
if (state && state != 'undefined') {
state = JSON.parse(state)
console.log(state, 'state')
console.log(`${path}/#${state.path}?${paramsFormat(state.query)}`, 'sss')
location.href = `${path}/#${state.path}?${paramsFormat(state.query)}`
} else {
location.href = path
}
if (to.params.type) {
document.title = to.params.type === 'edit' ? '编辑' : '注册'
} else {
document.title = to.meta.title ? to.meta.title : title
}
if (localStorage.getItem('token')) {
store.dispatch('getUserInfo').then(() => {
checkWxmpRegister({
userId: store.state.app.userInfo.userId
}).then(res => {
if (res) {
next()
} else {
if (to.path === '/register') {
next()
} else {
console.log(to)
next({ path: '/register', query: { redirect: to.path, params: JSON.stringify(to.query) } })
}
}
})
})
} else {
// 账号密码登录
if (whiteList.includes(to.path)) {
next()
if (getQueryStringByName('code')) {
// return
login({ wxCode: getQueryStringByName('code') }).then(res => {
localStorage.setItem('token', res.token)
let state = decodeURIComponent(getQueryStringByName('state'))
state = state.replace(/[\\\b\f\n\r\t]/g, '')
state = state.replace(/(\s*?{\s*?|\s*?,\s*?)(['"])?([a-zA-Z0-9]+)(['"])?:/g, '$1"$3":')
state = state
.replace(/":/g, '":"')
.replace(/,"/g, '","')
.replace(/},/g, '"},')
.replace(/}]/g, '"}]')
.replace(/}}/g, '"}}')
.replace(/"{/g, '{')
.replace(/:{"}/g, ':{}')
console.log(state)
let path = `${location.origin}${location.pathname === '/' ? '' : location.pathname}`
if (state && state != 'undefined') {
state = JSON.parse(state)
console.log(state, 'state')
console.log(`${path}/#${state.path}?${paramsFormat(state.query)}`, 'sss')
location.href = `${path}/#${state.path}?${paramsFormat(state.query)}`
} else {
location.href = path
}
})
} else {
next({ path: '/login', query: { redirect: to.path, params: JSON.stringify(to.query) } })
if (whiteList.includes(to.path)) {
next()
} else {
next({ path: '/login', query: { redirect: to.path, params: JSON.stringify(to.query) } })
}
}
}
}

6
src/router/router.config.js

@ -55,5 +55,11 @@ export const constantRouterMap = [
name: 'register',
component: () => import('@/views/register'),
meta: { title: '注册', keepAlive: false }
},
{
path: '/errorPage',
name: 'errorPage',
component: () => import('@/views/errorPage'),
meta: { title: '错误', keepAlive: false }
}
]

22
src/views/errorPage/index.vue

@ -0,0 +1,22 @@
<template>
<div>
<p>公众号尚未完成配置请联系管理员</p>
</div>
</template>
<script>
export default {
name: "errorPage"
}
</script>
<style scoped>
p {
font-size: 14px;
display: flex;
align-items: center;
justify-content: center;
height: 80vh;
text-align: center;
}
</style>

10
src/views/event/index.vue

@ -35,6 +35,16 @@
<div>{{ address }}</div>
</van-cell>
</div>
<div class="block">
<van-cell title="联系人" @click="$refs.map.show = true" is-link>
<div>{{ address }}</div>
</van-cell>
</div>
<div class="block">
<van-cell title="联系电话" @click="$refs.map.show = true" is-link>
<div>{{ address }}</div>
</van-cell>
</div>
<van-button round block @click="submit" color="linear-gradient(to right, #81B5FB, #3E92FF)">提交</van-button>
<Perfect />

2
src/views/login/index.vue

@ -25,7 +25,7 @@ export default {
query: this.$route.query.params ? this.$route.query.params : ''
}
let path = `${location.origin}${location.pathname === '/' ? '' : location.pathname}`
let url = `//open.weixin.qq.com/connect/oauth2/authorize?appid=${wxId}&redirect_uri=${encodeURI(
let url = `//open.weixin.qq.com/connect/oauth2/authorize?appid=${this.$store.state.app.appId}&redirect_uri=${encodeURI(
path
)}&state=${encodeURIComponent(JSON.stringify(state))}&response_type=code&scope=snsapi_userinfo#wechat_redirect`
console.log(url)

10
src/views/register/index.vue

@ -1,7 +1,7 @@
<template>
<div class="container">
<div class="block">
<van-field v-model="phone" label="手机号" placeholder="请输入" required />
<van-field v-model="phone" label="手机号" placeholder="请输入" required/>
<van-field v-model="smsCode" label="验证码" placeholder="请输入" required>
<template #button>
<van-button v-if="time === 60" round size="mini" type="info" @click="getCode">获取验证码</van-button>
@ -14,7 +14,7 @@
</template>
<script>
import { register, sendsmscode } from '@/api/user'
import {register, sendsmscode} from '@/api/user'
var leftTime
export default {
@ -62,9 +62,9 @@ export default {
}
register(params).then(res => {
localStorage.setItem('token', res.token)
this.$toast.success('登录成功')
let path = '/'
this.$router.replace(path)
this.$toast.success('注册成功')
let query = this.$route.query
this.$router.replace({ path: query.redirect, query: query.params ? JSON.parse(query.params) : {} })
})
},
getCode() {

Loading…
Cancel
Save