import Vue from 'vue'; import VueRouter from 'vue-router'; import store from '@/store/index'; const originalPush = VueRouter.prototype.push; VueRouter.prototype.push = function push(location) { return originalPush.call(this, location).catch(err => err); }; const jwt = require('jsonwebtoken'); const list = [ { path: '/market/list', name: 'market_list', meta: { title: '科技超市' }, component: () => import('../views/market/list.vue'), }, { path: '/techolchat/list', name: 'techolchat_list', meta: { title: '技术交流' }, component: () => import('../views/techolchat/list.vue'), }, { path: '/news/list', name: 'news_list', meta: { title: '新闻资讯' }, component: () => import('../views/news/list.vue'), }, ]; const admin = [ { path: '/admin/live/science', name: 'admin_live_science', meta: { title: '科技频道管理中心' }, component: () => import('../views/admin/live/science.vue'), }, { path: '/admin/live/train', name: 'admin_live_train', meta: { title: '培训问诊管理中心' }, component: () => import('../views/admin/live/train.vue'), }, { path: '/admin/live/achieve', name: 'admin_live_achieve', meta: { title: '科技成果管理中心' }, component: () => import('../views/admin/live/achieve.vue'), }, ]; const twoweb = [ // 直播大厅 { path: '/twoweb/live/index', name: 'twoweb_live_index', meta: { title: '直播大厅' }, component: () => import('../views/twoweb/live/index.vue'), }, { path: '/twoweb/achieveLive/apply', name: 'twoweb_achieveLive_apply', meta: { title: '直播大厅-申请参展', subSite: true }, component: () => import('../views/twoweb/achieveLive/apply.vue'), }, { path: '/twoweb/market/index', name: 'twoweb_market_index', meta: { title: '科技超市' }, component: () => import('../views/twoweb/market/index.vue'), }, { path: '/twoweb/market/list', name: 'twoweb_market_list', meta: { title: '科技超市' }, component: () => import('../views/twoweb/market/list.vue'), }, { path: '/twoweb/interflow/index', name: 'twoweb_interflow_index', meta: { title: '交流合作' }, component: () => import('../views/twoweb/interflow/index.vue'), }, { path: '/twoweb/interflow/list', name: 'twoweb_interflow_list', meta: { title: '交流合作' }, component: () => import('../views/twoweb/interflow/list.vue'), }, { path: '/twoweb/service/index', name: 'twoweb_service_index', meta: { title: '创新服务' }, component: () => import('../views/twoweb/service/index.vue'), }, { path: '/twoweb/service/list', name: 'twoweb_service_list', meta: { title: '创新服务' }, component: () => import('../views/twoweb/service/list.vue'), }, { path: '/twoweb/service/project', name: 'twoweb_service_project_index', meta: { title: '项目征集' }, component: () => import('../views/twoweb/service/project/index.vue'), }, { path: '/twoweb/service/question', name: 'twoweb_service_question_index', meta: { title: '调查问卷' }, component: () => import('../views/twoweb/service/question/index.vue'), }, { path: '/twoweb/service/question/detail', name: 'twoweb_service_question_detail', meta: { title: '调查问卷' }, component: () => import('../views/twoweb/service/question/detail.vue'), }, { path: '/twoweb/service/made/detail', meta: { title: '调查问卷' }, component: () => import('../views/twoweb/service/made/detail.vue'), }, { path: '/twoweb/service/helpCompany/detail', meta: { title: '调查问卷' }, component: () => import('../views/twoweb/service/helpCompany/detail.vue'), }, { path: '/twoweb/service/comDemand/detail', meta: { title: '调查问卷' }, component: () => import('../views/twoweb/service/comDemand/detail.vue'), }, { path: '/twoweb/service/product', name: 'twoweb_service_product_index', meta: { title: '信息发布' }, component: () => import('../views/twoweb/service/product/index.vue'), }, { path: '/twoweb/service/policy', name: 'twoweb_service_policy_index', meta: { title: '高企申报' }, component: () => import('../views/twoweb/service/policy/index.vue'), }, { path: '/twoweb/service/order', name: 'twoweb_service_order_index', meta: { title: '预约服务' }, component: () => import('../views/twoweb/service/order/index.vue'), }, { path: '/twoweb/universal/index', name: 'twoweb_universal_index', meta: { title: '科学普及' }, component: () => import('../views/twoweb/universal/index.vue'), }, { path: '/twoweb/universal/list', name: 'twoweb_universal_list', meta: { title: '科学普及' }, component: () => import('../views/twoweb/universal/list.vue'), }, // 2021-07-23 { path: '/twoweb/channel/index', meta: { title: '科技频道' }, component: () => import('../views/twoweb/channel/index.vue'), }, ]; Vue.use(VueRouter); const live = [ { path: '/', name: 'index', meta: { title: '网站首页' }, component: () => import('../views/index.vue'), }, { path: '/login', name: 'login', meta: { title: '登录' }, component: () => import('../views/login.vue'), }, { path: '/register', name: 'register', meta: { title: '注册账号' }, component: () => import('../views/register.vue'), }, { path: '/agreement', name: 'agreement', meta: { title: '用户注册协议' }, component: () => import('../views/agreement.vue'), }, { path: '/channelLive/index', name: 'channelLive_index', meta: { title: '直播大厅-科技频道', subSite: true }, component: () => import('../views/channelLive/index.vue'), }, { path: '/trainLive/index', name: 'trainLive_index', meta: { title: '直播大厅-培训问诊', subSite: true }, component: () => import('../views/trainLive/index.vue'), }, { path: '/personalLive/index', name: 'personalLive_index', meta: { title: '直播大厅-人才对接', subSite: true }, component: () => import('../views/personalLive/index.vue'), }, { path: '/achieveLive/before', name: 'personalLive_before', meta: { title: '直播大厅-展会活动页', subSite: true }, component: () => import('../views/achieveLive/before.vue'), }, { path: '/achieveLive/detail', name: 'personalLive_detail', meta: { title: '直播大厅-展会详情', subSite: true }, component: () => import('../views/achieveLive/detail.vue'), }, { path: '/achieveLive/model/dataIndex', name: 'personalLive_model_dataIndex', meta: { title: '直播大厅-数据列表', subSite: true }, component: () => import('../views/achieveLive/model/data-index.vue'), }, { path: '/achieveLive/model/dataDetail', name: 'personalLive_model_dataDetail', meta: { title: '直播大厅-数据详情', subSite: true }, component: () => import('../views/achieveLive/model/data-detail.vue'), }, // 2021-06-07-twoweb { path: '/twoweb/achieveLive/before', name: 'twoweb_personalLive_before', meta: { title: '直播大厅-展会活动页', subSite: true }, component: () => import('../views/twoweb/achieveLive/before.vue'), }, { path: '/twoweb/achieveLive/detail', name: 'twoweb_personalLive_detail', meta: { title: '直播大厅-展会详情', subSite: true }, component: () => import('../views/twoweb/achieveLive/detail.vue'), }, { path: '/twoweb/achieveLive/model/dataIndex', name: 'twoweb_personalLive_model_dataIndex', meta: { title: '直播大厅-数据列表', subSite: true }, component: () => import('../views/twoweb/achieveLive/model/data-index.vue'), }, { path: '/twoweb/achieveLive/model/dataDetail', name: 'twoweb_personalLive_model_dataDetail', meta: { title: '直播大厅-数据详情', subSite: true }, component: () => import('../views/twoweb/achieveLive/model/data-detail.vue'), }, { path: '/twoweb/personalLive/index', name: 'twoweb_personalLive_index', meta: { title: '直播大厅-人才对接', subSite: true }, component: () => import('../views/twoweb/personalLive/index.vue'), }, { path: '/twoweb/trainLive/index', name: 'twoweb_trainLive_index', meta: { title: '直播大厅-培训问诊', subSite: true }, component: () => import('../views/twoweb/trainLive/index.vue'), }, { path: '/twoweb/channelLive/index', name: 'twoweb_channelLive_index', meta: { title: '直播大厅-科技频道', subSite: true }, component: () => import('../views/twoweb/channelLive/index.vue'), }, // 2021-07-22 // 通化自定义展会详情 { path: '/twoweb/achieveLiveTH/detail', meta: { title: '直播大厅-展会详情', subSite: true }, component: () => import('../views/twoweb/achieveLiveTH/detail.vue'), }, { path: '/twoweb/achieveLiveTH/model/dataIndex', meta: { title: '直播大厅-数据列表', subSite: true }, component: () => import('../views/twoweb/achieveLiveTH/model/data-index.vue'), }, { path: '/twoweb/achieveLiveTH/model/dataDetail', meta: { title: '直播大厅-数据详情', subSite: true }, component: () => import('../views/twoweb/achieveLiveTH/model/data-detail.vue'), }, { path: '/website', name: 'website', component: () => import('../views/website.vue'), children: [ // 新闻资讯 { path: '/news/index', name: 'news_index', meta: { title: '新闻资讯', subSite: true }, component: () => import('../views/news/index.vue'), }, // 科技超市 { path: '/market/index', name: 'market_index', meta: { title: '科技超市', subSite: true }, component: () => import('../views/market/index.vue'), }, ...list, // 直播大厅 { path: '/live/index', name: 'live_index', meta: { title: '直播大厅', subSite: true }, component: () => import('../views/live/index.vue'), }, { path: '/achieveLive/apply', name: 'achieveLive_apply', meta: { title: '直播大厅-申请参展', subSite: true }, component: () => import('../views/achieveLive/apply.vue'), }, // 数据动态 { path: '/dynamic/index', name: 'dynamic_index', meta: { title: '数据动态', subSite: true }, component: () => import('../views/dynamic/index.vue'), }, // 技术交流 { path: '/techolchat/index', name: 'techolchat_index', meta: { title: '技术交流', subSite: true }, component: () => import('../views/techolchat/index.vue'), }, { path: '/techolchat/product', name: 'techolchat_product', meta: { title: '信息发布', subSite: true }, component: () => import('../views/techolchat/product.vue'), }, { path: '/userCenter', name: 'userCenter', meta: { title: '管理中心' }, component: () => import('../views/userCenter/index.vue'), }, ...admin, // 问卷调查 { path: '/questionnaire/index', name: 'questionnaire', meta: { title: '问卷调查' }, component: () => import('../views/questionnaire/index.vue'), }, // 答问卷调查 { path: '/questionnaire/answer', name: 'questionnaire', meta: { title: '完成问卷调查' }, component: () => import('../views/questionnaire/detail.vue'), }, // 科技创新能力评价 { path: '/newteck/index', name: 'newteck', meta: { title: '科技创新能力评价' }, component: () => import('../views/newTeck/index.vue'), }, ...twoweb, ], }, ]; const routes = [...live]; 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 == '/userCenter') { if (!token) { next('/login'); } else { let user = jwt.decode(token); user.type = '4'; store.commit('setUser', user, { root: true }); next(); } } else { let user = jwt.decode(token); store.commit('setUser', user, { root: true }); next(); } }); export default router;