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;