2025-12-28 09:08:07 +08:00

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;