123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import Vue from 'vue'
- import Router from 'vue-router'
- import {config, trim} from './helper'
- import _ from "lodash";
- import marketRouter from './router-market.js'
- // 默认title
- document.title = config('SITE_NAME');
- // title 模板
- const siteTitleTpl = config('SITE_TITLE_TPL');
- // 路由配置
- const routes = [
- {
- path: '/',
- name: 'index',
- component: () => import('./views/index.vue')
- },
- {
- path: '*',
- component: () => import('./views/error.vue')
- },
- {
- path: '/sales/partnerList/partnerDetail',
- name: 'partnerDetail',
- component: () => import('./views/sales/partnerDetail.vue'),
- alias: ['/sales/examineList/examineDetail']
- },
- {
- path: '/sales/withdrawList/withdrawDetail',
- name: 'withdrawDetail',
- alias: '/sales/settleList/settleDetail',
- component: () => import('./views/sales/withdrawDetail.vue')
- },
- {
- path: '/sales/distribution/poster',
- name: 'poster',
- component: () => import('./views/sales/codePoster.vue')
- },
- {
- path: '/order/orderList/orderDetail',
- name: 'orderDetail',
- component: () => import('./views/order/orderDetail.vue')
- },
- {
- path: '/userMage/userList/userDetail',
- name: 'userDetail',
- component: () => import('./views/userManage/userDetail.vue')
- },
- {
- path: '/boardMsg/inforList/inforDetail',
- name: 'inforDetail',
- component: () => import('./views/boardMsg/inforDetail.vue')
- }
- ];
- // 路由自动加载
- const routeComponent = require.context(
- './views',
- true,
- /\.vue$/
- );
- routeComponent.keys().forEach(fileName => {
- // 过滤组件
- if (fileName.indexOf('components/') !== -1 || fileName === "index") {
- return;
- }
- const path = '/' + trim(fileName.replace(/^\.\/(.*)\.\w+$/, '$1'), '/', 'left');
- routes.push({
- path: path,
- name: path,
- component: routeComponent(fileName).default
- })
- });
- Vue.use(Router);
- const router = new Router({
- mode: 'history',
- routes: [...routes, ...marketRouter]
- });
- const originalPush = Router.prototype.push
- Router.prototype.push = function push(location) {// 解决路由重复报错的问题
- return originalPush.call(this, location).catch(err => err)
- }
- // title 设置
- export const setTitle = function (to) {
- let title = config('SITE_NAME');
- let currentMenu = {};
- if (router.app.$store.getters.getAdminMenu.length) {
- router.app.$store.getters.getAdminMenu.forEach(item => {
- if (item.url === to.path) {
- title = siteTitleTpl.replace(/{title}/g, item.name);
- currentMenu = _.cloneDeep(item);
- }
- });
- }
- router.app.$store.dispatch('updateCurrentMenu', currentMenu);
- document.title = title;
- };
- router.afterEach(to => {
- if (router.app.$store.getters.getAdminMenu.length !== 0) {
- setTitle(to)
- }
- window.scrollTo(0, 0);
- });
- export default router
|