import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) /* Layout */ import Layout from '@/layout' /** * Note: sub-menu only appear when route children.length >= 1 * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html * * hidden: true if set true, item will not show in the sidebar(default is false) * alwaysShow: true if set true, will always show the root menu * if not set alwaysShow, when item has more than one children route, * it will becomes nested mode, otherwise not show the root menu * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb * name:'router-name' the name is used by (must set!!!) * meta : { roles: ['admin','editor'] control the page roles (you can set multiple roles) title: 'title' the name show in sidebar and breadcrumb (recommend set) icon: 'svg-name'/'el-icon-x' the icon show in the sidebar breadcrumb: false if set false, the item will hidden in breadcrumb(default is true) activeMenu: '/example/list' if set path, the sidebar will highlight the path you set } */ /** * constantRoutes * a base page that does not have permission requirements * all roles can be accessed */ export const constantRoutes = [{ path: '/redirect', component: Layout, hidden: true, children: [{ path: '/redirect/:path(.*)', component: () => import('@/views/redirect/index') }] }, { path: '/login', component: () => import('@/views/login/index'), hidden: true }, { path: '/404', component: () => import('@/views/404'), hidden: true }, { path: '/', component: Layout, redirect: '/dashboard', children: [{ path: 'dashboard', name: '首页', component: () => import('@/views/dashboard/index'), meta: { title: '首页', icon: 'el-icon-s-home', affix: true } }] }, // 收单系统 todo { path: '/collection-order-system', component: Layout, redirect: '/collection-order-list', name: 'collection-order-system', hidden: true, meta: { title: '收单系统', icon: 'el-icon-s-help' }, children: [ { path: '/collection-order-list', name: 'collection-order-list', component: () => import('@/views/collection-order-system/main/collection-order-list/index'), meta: { title: '收单系统', //收单列表 icon: 'el-icon-s-order' } }, ] }, // 流量统计 todo { path: '/traffic-statistics', component: Layout, redirect: '/ssjl-statistics', name: 'traffic-statistics', hidden: false, meta: { title: '流量统计', icon: 'el-icon-data-line' }, children: [ { path: '/ssjl-statistics', name: 'ssjl-statistics', component: () => import('@/views/traffic-statistics/main/ssjl-statistics/index'), meta: { title: '家长端流量统计', //收单列表 icon: 'el-icon-office-building' } }, ] }, // 众筹拼单系统 { path: 'crowd-funding-otrder-system', component: Layout, redirect: '/package-manage', name: 'crowd-funding-otrder-system', meta: { title: '众筹拼单系统', icon: 'el-icon-s-help' }, children: [ { path: '/package-manage', name: 'package-manage', component: () => import('@/views/crowd-funding-otrder-system/main/package-manage/index'), meta: { title: '套餐管理', icon: 'el-icon-burger' } }, { path: '/crowd-funding-otrder-manage', name: 'crowd-funding-otrder-manage', component: () => import('@/views/crowd-funding-otrder-system/main/crowd-funding-otrder-manage/index'), meta: { title: '拼单管理', icon: 'el-icon-c-scale-to-original' } }, { path: '/participants-manage', name: 'participants-manage', component: () => import('@/views/crowd-funding-otrder-system/main/participants-manage/index'), meta: { title: '参与人管理', icon: 'el-icon-s-custom' } }, { path: '/order-fulfillment', name: 'order-fulfillment', component: () => import('@/views/crowd-funding-otrder-system/main/order-fulfillment/index'), meta: { title: '订单执行', icon: 'el-icon-s-ticket' } }, { path: '/customer-statistics', name: 'customer-statistics', component: () => import('@/views/crowd-funding-otrder-system/main/customer-statistics/index'), meta: { title: '客户统计', icon: 'el-icon-s-data' } }, { path: '/rules-setting', name: 'rules-setting', component: () => import('@/views/crowd-funding-otrder-system/main/rules-setting/index'), meta: { title: '规则设置', icon: 'el-icon-s-unfold' } }, ] }, // 公众号消息管理 { path: 'message-manage', component: Layout, redirect: '/wechat-fans', name: 'message-manage', meta: { title: '消息发送系统', icon: 'el-icon-message-solid' }, children: [ { path: '/wechat-fans', name: 'wechat-fans', component: () => import('@/views/message-manage/main/wechat-fans/index'), meta: { title: '公众号粉丝', icon: 'el-icon-user-solid' } }, { path: '/add-articles', name: 'add-articles', component: () => import('@/views/message-manage/main/add-articles/index'), meta: { title: '添加文章', icon: 'el-icon-edit' } }, { path: '/add-mass', name: 'add-mass', component: () => import('@/views/message-manage/main/add-mass/index'), meta: { title: '添加群发', icon: 'el-icon-s-promotion' } }, { path: '/mass-list', name: 'mass-list', component: () => import('@/views/message-manage/main/mass-list/index'), meta: { title: '群发列表', icon: 'el-icon-document' } }, { path: '/unsubscribe-list', name: 'unsubscribe-list', component: () => import('@/views/message-manage/main/unsubscribe-list/index'), meta: { title: '退订列表', icon: 'el-icon-notebook-2' } }, ] }, // 系统管理 todo { path: '/system-manage', component: Layout, redirect: '/system-setting', name: 'system-manage', meta: { title: '系统管理', icon: 'el-icon-s-tools' }, children: [ { path: '/system-setting', name: 'system-setting', component: () => import('@/views/system-manage/main/system-setting/index'), meta: { title: '系统管理', //系统设置 icon: 'el-icon-s-tools' } }, ] }, // 测试,例子 /* { path: '/off-limits-manage', component: Layout, redirect: '/off-limits-manage/off-limits-type', name: 'off-limits-manage', meta: { title: '页面测试', icon: 'el-icon-s-help' }, children: [ { path: 'off-limits-type', name: 'off-limits-type', component: () => import('@/views/off-limits-manage/off-limits-main/off-limits-type/index'), meta: { title: '测试', icon: 'el-icon-s-order' } }, ] }, */ // 404 page must be placed at the end !!! { path: '*', redirect: '/404', hidden: true } ] export const asyncRoutes = []; const createRouter = () => new Router({ // mode: 'history', // require service support scrollBehavior: () => ({ y: 0 }), routes: constantRoutes }) const router = createRouter() // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 export function resetRouter() { const newRouter = createRouter() router.matcher = newRouter.matcher // reset router } export default router