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 { checkWxmpRegister, login } from '@/api/user'
import { title } from '@/config' import { title } from '@/config'
const whiteList = ['/login'] const whiteList = ['/login', '/register', '/errorPage']
const originalPush = Router.prototype.push const originalPush = Router.prototype.push
Router.prototype.push = function push(location, onResolve, onReject) { Router.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject) return originalPush.call(this, 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) { if (urlParams.appId) {
store.commit('SET_APP_ID', urlParams.appId) store.commit('SET_APP_ID', urlParams.appId)
localStorage.setItem('appId', urlParams.appId) localStorage.setItem('appId', urlParams.appId)
if (localStorage.getItem('appId') && urlParams.appId !== localStorage.getItem('appId')) {
localStorage.removeItem('token')
location.reload()
}
} else { } else {
store.commit('SET_APP_ID', localStorage.getItem('appId')) store.commit('SET_APP_ID', localStorage.getItem('appId'))
} }
console.log(store.state.app.appId, 'store.state.app.appId') if (!localStorage.getItem('appId') && to.path !== '/errorPage') {
if (to.params.type) { next('/errorPage')
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')
}
})
})
} else { } else {
if (getQueryStringByName('code')) { if (to.params.type) {
// return document.title = to.params.type === 'edit' ? '编辑' : '注册'
login({ wxCode: getQueryStringByName('code') }).then(res => { } else {
localStorage.setItem('token', res.token) document.title = to.meta.title ? to.meta.title : title
let state = decodeURIComponent(getQueryStringByName('state')) }
state = state.replace(/[\\\b\f\n\r\t]/g, '') if (localStorage.getItem('token')) {
state = state.replace(/(\s*?{\s*?|\s*?,\s*?)(['"])?([a-zA-Z0-9]+)(['"])?:/g, '$1"$3":') store.dispatch('getUserInfo').then(() => {
state = state checkWxmpRegister({
.replace(/":/g, '":"') userId: store.state.app.userInfo.userId
.replace(/,"/g, '","') }).then(res => {
.replace(/},/g, '"},') if (res) {
.replace(/}]/g, '"}]') next()
.replace(/}}/g, '"}}') } else {
.replace(/"{/g, '{') if (to.path === '/register') {
.replace(/:{"}/g, ':{}') next()
console.log(state) } else {
let path = `${location.origin}${location.pathname === '/' ? '' : location.pathname}` console.log(to)
if (state && state != 'undefined') { next({ path: '/register', query: { redirect: to.path, params: JSON.stringify(to.query) } })
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 { } else {
// 账号密码登录 if (getQueryStringByName('code')) {
if (whiteList.includes(to.path)) { // return
next() 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 { } 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', name: 'register',
component: () => import('@/views/register'), component: () => import('@/views/register'),
meta: { title: '注册', keepAlive: false } 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> <div>{{ address }}</div>
</van-cell> </van-cell>
</div> </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> <van-button round block @click="submit" color="linear-gradient(to right, #81B5FB, #3E92FF)">提交</van-button>
<Perfect /> <Perfect />

2
src/views/login/index.vue

@ -25,7 +25,7 @@ export default {
query: this.$route.query.params ? this.$route.query.params : '' query: this.$route.query.params ? this.$route.query.params : ''
} }
let path = `${location.origin}${location.pathname === '/' ? '' : location.pathname}` 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 path
)}&state=${encodeURIComponent(JSON.stringify(state))}&response_type=code&scope=snsapi_userinfo#wechat_redirect` )}&state=${encodeURIComponent(JSON.stringify(state))}&response_type=code&scope=snsapi_userinfo#wechat_redirect`
console.log(url) console.log(url)

10
src/views/register/index.vue

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

Loading…
Cancel
Save