import Vue from 'vue'; import VueRouter from 'vue-router'; import store from '@/store/index'; const jwt = require('jsonwebtoken'); const originalPush = VueRouter.prototype.push; VueRouter.prototype.push = function push(location) { return originalPush.call(this, location).catch((err) => err); }; Vue.use(VueRouter); const web = [ { path: '/', name: 'index', meta: { title: '网站首页' }, component: () => import('../views/index.vue'), }, { path: '/website', name: 'website', component: () => import('../views/website.vue'), children: [ { path: '/news/index', name: 'news_index', meta: { title: '新闻咨询' }, component: () => import('../views/news/index.vue'), }, { path: '/service/index', name: 'service_index', meta: { title: '科技服务' }, component: () => import('../views/service/index.vue'), }, { path: '/market/index', name: 'market_index', meta: { title: '技术超市' }, component: () => import('../views/market/index.vue'), }, { path: '/train/index', name: 'train_index', meta: { title: '宣传培训' }, component: () => import('../views/train/index.vue'), }, { path: '/dynamic/index', name: 'dynamic_index', meta: { title: '数据动态' }, component: () => import('../views/dynamic/index.vue'), }, ], }, // 管理登录 { path: '/login', name: 'login', meta: { title: '管理登录' }, component: () => import('../views/login.vue'), }, { path: '/adminCenter/homeIndex', name: 'adminCenter', component: () => import('../views/adminCenter/index.vue'), children: [ { path: '/adminCenter/homeIndex', name: 'admin_homeIndex', meta: { title: '首页' }, component: () => import('../views/adminCenter/homeIndex/index.vue'), }, { path: '/adminCenter/test', name: 'admin_test', meta: { title: '测试页面' }, component: () => import('../views/adminCenter/test/index.vue'), }, { path: '/adminCenter/news', name: 'admin_news', meta: { title: '新闻管理' }, component: () => import('../views/adminCenter/news/index.vue'), }, { path: '/adminCenter/news/detail', name: 'admin_news_detail', meta: { title: '新闻管理' }, component: () => import('../views/adminCenter/news/detail.vue'), }, { path: '/adminCenter/product', name: 'admin_product', meta: { title: '科技成果' }, component: () => import('../views/adminCenter/product/index.vue'), }, { path: '/adminCenter/product/detail', name: 'admin_product_detail', meta: { title: '科技成果' }, component: () => import('../views/adminCenter/product/detail.vue'), }, ], }, ]; const routes = [...web]; const router = new VueRouter({ mode: 'history', base: process.env.VUE_APP_ROUTER, routes, }); router.beforeEach((to, from, next) => { document.title = `${to.meta.title} `; const token = localStorage.getItem('token'); if (to.path == '/adminCenter/homeIndex') { if (!token) { next('/login'); } else { let user = jwt.decode(token); store.commit('setUser', user, { root: true }); next(); } } else { let user = jwt.decode(token); store.commit('setUser', user, { root: true }); next(); } }); export default router;