135 lines
2.9 KiB
JavaScript
135 lines
2.9 KiB
JavaScript
import { createWebHashHistory, createRouter, createWebHistory } from 'vue-router';
|
|
|
|
import Home from "@/views/home.vue"
|
|
import voteList from '@/views/voteList.vue';
|
|
import articleDetails from '@/views/articleDetails.vue';
|
|
import videoDetails from '@/views/videoDetails.vue';
|
|
import { login } from '@/utils/api.js';
|
|
const routes = [
|
|
|
|
{
|
|
path: '/',
|
|
redirect: '/home',
|
|
},
|
|
{
|
|
path: '/home',
|
|
name: 'home',
|
|
component: Home,
|
|
|
|
},
|
|
{
|
|
path: '/voteList',
|
|
name: 'voteList',
|
|
component: voteList,
|
|
|
|
},
|
|
{
|
|
path: '/articleDetails',
|
|
name: 'articleDetails',
|
|
component: articleDetails,
|
|
|
|
},
|
|
{
|
|
path: '/videoDetails',
|
|
name: 'videoDetails',
|
|
component: videoDetails,
|
|
|
|
},
|
|
];
|
|
|
|
|
|
const router = createRouter({
|
|
// createWebHashHistory URL 带井号
|
|
// createWebHistory URL 去井号
|
|
history:createWebHistory('web/v'),
|
|
routes: routes,
|
|
});
|
|
|
|
|
|
// 全局前置守卫
|
|
router.beforeEach((to, from, next) => {
|
|
// 在这里编写拦截逻辑
|
|
// 例如,检查用户是否已经登录
|
|
// if (to.path =='/home') {
|
|
const urlToBeAccessed = to.fullPath; // 获取即将跳转的完整URL
|
|
// alert(urlToBeAccessed+' 11111')
|
|
console.log('即将跳转到:', urlToBeAccessed);
|
|
|
|
urlToBeAccessed = urlToBeAccessed + "subscribe"
|
|
if(urlToBeAccessed.includes('subscribe')){
|
|
const token=localStorage.getItem('bearer-tokens');
|
|
if(typeof token === "undefined"||token ==null|| token == ""|| token == "undefined")
|
|
{
|
|
// alert(' 2222')
|
|
let queryParams = to.query;
|
|
let subscribe = queryParams.subscribe
|
|
subscribe = 1
|
|
// alert(subscribe+' 3333')
|
|
if(subscribe == '1'){
|
|
|
|
// let openid = queryParams.openid
|
|
let openid = getCookie('wechat_user_openid')
|
|
console.log("openid",openid)
|
|
localStorage.setItem('qr-tickets', "");
|
|
|
|
login(openid).then((data) => {
|
|
|
|
if(200==data.code)
|
|
{
|
|
localStorage.setItem('bearer-tokens', 'Bearer '+data.data.token);
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
localStorage.setItem('bearer-tokens', "");
|
|
}
|
|
|
|
next();
|
|
});
|
|
|
|
}
|
|
else
|
|
{
|
|
// alert(subscribe+' 4444')
|
|
localStorage.setItem('bearer-tokens', "");
|
|
// alert(queryParams.ticket)
|
|
localStorage.setItem('qr-tickets', queryParams.ticket);
|
|
|
|
next();
|
|
}
|
|
}
|
|
else{
|
|
next();
|
|
}
|
|
|
|
}
|
|
else{
|
|
next();
|
|
}
|
|
|
|
|
|
});
|
|
|
|
//设置cookie
|
|
function setCookie(name, value) {
|
|
document.cookie = name + "=" + escape(value) + "; path=/";
|
|
}
|
|
|
|
//获取cookie
|
|
function getCookie(name) {
|
|
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
|
|
|
|
if (arr = document.cookie.match(reg))
|
|
|
|
return unescape(arr[2]);
|
|
else
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default router;
|