123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- import Vue from 'vue';
- import VueRouter from 'vue-router';
- import store from '@/store/index';
- const jwt = require('jsonwebtoken');
- Vue.use(VueRouter);
- const routes = [
- // 首页
- {
- path: '/',
- name: 'index',
- meta: { title: '首页', isleftarrow: false },
- component: () => import('../views/index.vue'),
- },
- // 直播大厅
- {
- path: '/live/index',
- name: 'live_index',
- meta: { title: '直播大厅', isleftarrow: false },
- component: () => import('../views/live/index.vue'),
- },
- {
- path: '/live/detail',
- name: 'detail',
- meta: { title: '视频详情', isleftarrow: true },
- component: () => import('../views/live/detail.vue'),
- },
- // 1005视频详情
- {
- path: '/live/detailtwo',
- name: 'detailtwo',
- meta: { title: '视频详情', isleftarrow: true },
- component: () => import('../views/live/detailtwo.vue'),
- },
- {
- path: '/live/personalDetail',
- name: 'personalDetail',
- meta: { title: '人才招聘详情', isleftarrow: true },
- component: () => import('../views/live/personalDetail.vue'),
- },
- {
- path: '/live/exportsDetail',
- name: 'exportsDetail',
- meta: { title: '专家培训详情', isleftarrow: true },
- component: () => import('../views/live/exportsDetail.vue'),
- },
- // 科技超市
- {
- path: '/market/index',
- name: 'market_index',
- meta: { title: '科技超市', isleftarrow: false },
- component: () => import('../views/market/index.vue'),
- },
- {
- path: '/market/productDetail',
- name: 'market_productDetail',
- meta: { title: '科技超市详情', isleftarrow: true },
- component: () => import('../views/market/productDetail.vue'),
- },
- {
- path: '/market/exportDetail',
- name: 'market_exportDetail',
- meta: { title: '专家详情', isleftarrow: true },
- component: () => import('../views/market/exportDetail.vue'),
- },
- // 技术交流
- {
- path: '/service/index',
- name: 'service_index',
- meta: { title: '技术交流', isleftarrow: false },
- component: () => import('../views/service/index.vue'),
- },
- {
- path: '/service/detail',
- name: 'service_detail',
- meta: { title: '技术交流', isleftarrow: true },
- component: () => import('../views/service/detail.vue'),
- },
- //新闻资讯
- {
- path: '/journ/index',
- name: 'journ',
- meta: { title: '新闻资讯', isleftarrow: false },
- component: () => import('../views/journ/index.vue'),
- },
- {
- path: '/journ/detail',
- name: 'detail',
- meta: { title: '新闻资讯', isleftarrow: true },
- component: () => import('../views/journ/detail.vue'),
- },
- {
- path: '/service/techDetail',
- name: 'service_techDetail',
- meta: { title: '技术交流', isleftarrow: true },
- component: () => import('../views/service/techDetail.vue'),
- },
- // 个人中心
- {
- path: '/user/index',
- name: 'user_index',
- meta: { title: '个人中心', isleftarrow: false },
- component: () => import('../views/user/index.vue'),
- },
- // 用户-基本信息
- {
- path: '/userCenter/user/index',
- name: 'user_index',
- meta: { title: '基本信息', isleftarrow: true },
- component: () => import('../views/userCenter/user/index.vue'),
- },
- // 用户-我的发布
- {
- path: '/userCenter/myProduct/index',
- name: 'myProduct_index',
- meta: { title: '我的发布', isleftarrow: true },
- component: () => import('../views/userCenter/myProduct/index.vue'),
- },
- //用户-发布产品
- {
- path: '/userCenter/myProduct/detail',
- name: 'myProduct_index',
- meta: { title: '信息管理', isleftarrow: true },
- component: () => import('../views/userCenter/myProduct/detail.vue'),
- },
- // 用户-事项管理
- {
- path: '/userCenter/matter/index',
- name: 'matter_index',
- meta: { title: '事项管理', isleftarrow: true },
- component: () => import('../views/userCenter/matter/index.vue'),
- },
- // 用户-交易完成
- {
- path: '/userCenter/matter/detail',
- name: 'matter_detail',
- meta: { title: '交易完成', isleftarrow: true },
- component: () => import('../views/userCenter/matter/detail.vue'),
- },
- // 用户-展会管理
- {
- path: '/userCenter/dock/index',
- name: 'dock_index',
- meta: { title: '展会管理', isleftarrow: true },
- component: () => import('../views/userCenter/dock/index.vue'),
- },
- {
- path: '/userCenter/dock/detail',
- name: 'detail',
- meta: { title: '申请', isleftarrow: true },
- component: () => import('../views/userCenter/dock/detail.vue'),
- },
- // 管理用户菜单
- // 管理-用户管理
- {
- path: '/adminCenter/user/index',
- name: 'adminCenter_user_index',
- meta: { title: '用户管理', isleftarrow: true },
- component: () => import('../views/adminCenter/user/index.vue'),
- },
- // 管理-查看用户
- {
- path: '/adminCenter/user/detail',
- name: 'adminCenter_user_detail',
- meta: { title: '审核/查看用户', isleftarrow: true },
- component: () => import('../views/adminCenter/user/detail.vue'),
- },
- // 管理-展会管理
- {
- path: '/adminCenter/duijiehui/index',
- name: 'adminCenter_duijiehui_index',
- meta: { title: '展会管理', isleftarrow: true },
- component: () => import('../views/adminCenter/duijiehui/index.vue'),
- },
- // 管理-展会信息管理
- {
- path: '/adminCenter/duijiehui/add',
- name: 'adminCenter_duijiehui_add',
- meta: { title: '展会信息管理', isleftarrow: true },
- component: () => import('../views/adminCenter/duijiehui/add.vue'),
- },
- // 管理-审核管理
- {
- path: '/adminCenter/enterpriseProduct/index',
- name: 'adminCenter_enterpriseProduct',
- meta: { title: '审核管理', isleftarrow: true },
- component: () => import('../views/adminCenter/enterpriseProduct/index.vue'),
- },
- // 管理-产品信息管理
- {
- path: '/adminCenter/enterpriseProduct/detail',
- name: 'adminCenter_enterpriseProduct',
- meta: { title: '产品信息管理', isleftarrow: true },
- component: () => import('../views/adminCenter/enterpriseProduct/detail.vue'),
- },
- // 管理-交易审核管理
- {
- path: '/adminCenter/transaction/index',
- name: 'adminCenter_transaction',
- meta: { title: '交易审核管理', isleftarrow: true },
- component: () => import('../views/adminCenter/transaction/index.vue'),
- },
- // 管理-交易信息管理
- {
- path: '/adminCenter/transaction/detail',
- name: 'adminCenter_transaction',
- meta: { title: '交易信息管理', isleftarrow: true },
- component: () => import('../views/adminCenter/transaction/detail.vue'),
- },
- //共用-修改密码
- {
- path: '/updatePwd/index',
- name: 'updatePwd',
- meta: { title: '修改密码', isleftarrow: true },
- component: () => import('../views/updatePwd/index.vue'),
- },
- // 登录-用户+管理
- {
- path: '/login',
- name: 'login',
- meta: { title: '登录', isleftarrow: true },
- component: () => import('../views/login.vue'),
- },
- // 绑定
- {
- path: '/bind',
- name: 'bind',
- meta: { title: '绑定', isleftarrow: false },
- component: () => import('../views/bind.vue'),
- },
- // 展会绑定
- {
- path: '/dockbind',
- name: 'dockbind',
- meta: { title: '展会绑定', isleftarrow: false },
- component: () => import('../views/dockbind.vue'),
- },
- //关注公众号
- {
- path: '/followbind',
- name: 'followbind',
- meta: { title: '关注公众号', isleftarrow: false },
- component: () => import('../views/followbind.vue'),
- },
- // 错误
- {
- path: '/error',
- name: 'error',
- meta: { title: '绑定授权', isleftarrow: false },
- component: () => import('../views/followbind.vue'),
- },
- // 11-9新菜单
- {
- path: '/channel/index',
- name: 'channel',
- meta: { title: '科技频道', isleftarrow: false },
- component: () => import('../views/channel/index.vue'),
- },
- {
- path: '/channel/detail',
- name: 'detail',
- meta: { title: '科技频道', isleftarrow: true },
- component: () => import('../views/channel/detail.vue'),
- },
- ];
- const router = new VueRouter({
- mode: 'history',
- base: process.env.NODE_ENV === 'development' ? '' : process.env.VUE_APP_ROUTER,
- routes,
- });
- router.beforeEach(async (to, form, next) => {
- if (to.name == 'user_index') {
- let res = await store.dispatch('login/toGetUser');
- if (res && res.uid) {
- next();
- } else {
- let key = sessionStorage.getItem('token');
- let user = jwt.decode(key);
- if (user && user.uid) {
- store.commit('setUser', user, { root: true });
- next();
- } else {
- next({ name: 'login' });
- }
- }
- } else {
- let res = await store.dispatch('login/toGetUser');
- next();
- }
- });
- const originalPush = VueRouter.prototype.push;
- VueRouter.prototype.push = function push(location, onResolve, onReject) {
- if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject);
- return originalPush.call(this, location).catch(err => err);
- };
- export default router;
|