1、A系统添加点击事件
toBidding () {
let url = ''
jumpToJJ().then(res => {
url = res.data.bidding //请求获取地址
})
jumpToBidding({ auctionItemsId: this.ids[0].subId }).then(res => {
window.open(url + '&biddingNum=' + this.ids[0].subId + "&uuid=" + res.data + "&userId=" + this.$store.state.user.userid, '_blank') //请求密钥并携带需要的参数
})
},
2、B系统接收参数,并与后台比对密钥(需要中转页面(登录页))
jumpPage () {
var url = window.location.search.substring(1);
let urlList = url.split('&')
let biddingNum = urlList[1]?.split('=')[1]
let uuid = urlList[2]?.split('=')[1]
let userId = urlList[3]?.split('=')[1] //获取需要的参数
if (uuid != undefined) { //判断是否有密钥,并比对
jumpToJJ({ userId: userId, uuid: uuid, biddingNum: biddingNum }).then(res => {
this.loading = true;
if (res.code == 200) {
console.log(setToken())
setToken(res.data.access_token) //存放token
setExpiresIn(res.data.expires_in) //失效时长
this.$router.push({
path: '/aaa', query: {
aaa: bbb
}
}) //需要跳转指定的页面路由,并携带参数
this.loading = false
} else {
this.loading = false;
}
})
} else {
this.loading = false
}
},
3、用户已登录或者第二次跳转直接进入index页面,不能跳转到指定页面的解决方案:
在permission.js中拦截:
router.beforeEach((to, from, next) => {
NProgress.start()
if (getToken()) {
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
/* has token*/
if (to.path === '/login') {
console.log(to)
if (to.query.biddingNum && to.query.userId && to.query.uuid) {
// 跳转指定页面
next({ path: '/aaa', query: { aaa: to.query.aaa} })
} else {
next({ path: '/' })
}
NProgress.done()
} else {
if (store.getters.roles.length === 0) {
isRelogin.show = true
// 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then((res) => {
isRelogin.show = false
sessionStorage.setItem('server_time', res.time)
store.dispatch('GenerateRoutes').then(accessRoutes => {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
})
}).catch(err => {
store.dispatch('LogOut').then(() => {
Message.error(err)
next({ path: '/' })
})
})
} else {
next()
}
}
} else {
// 没有token
if (whiteList.indexOf(to.path) !== -1) {
// 在免登录白名单,直接进入
next()
} else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
NProgress.done()
}
}
})