import Vue from 'vue'; import VueRouter from 'vue-router'; import store from '../store'; import HomeView from '../views/HomeView.vue'; // import UserPosts from '../views/UserPosts.vue'; // import Franchise from '../views/Franchise.vue' Vue.use(VueRouter) // 侧边导航黑名单 const blackSliderList = [ '/register', '/franchise','/agent/siteServiceList' ]; // 一级路由 let first_child_router = [] //头部导航黑名单 不需要添加头部的放置在这里,其余默认显示头部 const blackHeaderList = [ '/franchise' ]; const blackFooterList = [ '/', '/franchise' ]; // const whiteSlideList = ['/', '/ui', // '/agent/siteList', // '/agent/siteBaseSetting', // '/agent/siteSemSetting', // '/siteBaseSetting', // '/sitePersonalization' // ]; //侧边导航白名单 // const whiteHeaderList = ['/', '/ui', '/agent/siteList', '/register', '/configureServicePrices', '/siteList','/siteSetting/siteBaseSetting','/siteSetting/sitePersonalization' // ,'/siteSetting/siteH5','/siteSetting/siteSem','/pageTemplete','/demo', // '/super/ranking/yearProfit', '/super/ranking/monthProfit', '/super/ranking/checkProfit', '/super/ranking/checkOrdernum', // '/super/ranking/checkRefund', '/super/ranking/agentProfit', '/super/ranking/agentRecharge', '/super/ranking/agentNew', // '/super/ranking/purchase','/super/ranking/stagePurchase','/super/ranking/loss' // ]; //头部导航白名单 //底部白名单 暂时废弃,在页面独立添加组件 // const whiteFooterList = ['/', '/ui', '/agent/siteList', '/configureServicePrices', // '/super/ranking/yearProfit', '/super/ranking/monthProfit', '/super/ranking/checkProfit', '/super/ranking/checkOrdernum', // '/super/ranking/checkRefund', '/super/ranking/agentProfit', '/super/ranking/agentRecharge', '/super/ranking/agentNew', // '/super/ranking/purchase','/super/ranking/stagePurchase','/super/ranking/loss' // ]; const routes = [{ path: '/', name: '首页', component: HomeView, isFirst: true, //是否属于一级路由 meta: { title: '首页', //面包屑名称(此页面确认不需要放置在面包屑可以不添加此属性;如果获取不到title 会自动 获取 name 作为面包屑名称) hideBreadcrumb: true // 是否隐藏面包屑 } }, { path: '/register', name: 'register', // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. component: () => import( /* webpackChunkName: "register" */ '../views/Register.vue'), }, { path: '/ui', name: 'ui组件', isFirst: true, component: () => import( /* webpackChunkName: "ui" */ '../views/elementGroups.vue'), meta: { title: '公共组件示例', hideBreadcrumb: true, // 一级页面不显示面包屑 // breadcrumbParent:'首页' } }, { path: '/agent/siteList', name: '站点列表', isFirst: true, component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteList.vue'), meta: { title: '站点列表', breadcrumbParent: '首页', hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/agent/siteServiceList', name: '服务列表', isFirst: true, component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteServiceList.vue'), meta: { title: '服务列表', breadcrumbParent: '站点列表', // hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/agent/siteBaseSetting', name: '站点基本设置', component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteBaseSetting.vue'), meta: { title: '站点设置', breadcrumbParent: '站点列表' // 手动指定父级 // 如果想隐藏中间层级 // breadcrumbParent: '首页', // 跳过医生信息 // hideInBreadcrumb: true // 可选:隐藏当前项 } }, { path: '/agent/siteSemSetting', name: '营销推广', component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteSemSetting.vue'), meta: { title: '站点设置', breadcrumbParent: '站点列表' // 手动指定父级 } }, // { // path: '/agent/SitePersonalization', // name: '个性化设置', // // route level code-splitting // // this generates a separate chunk (about.[hash].js) for this route // // which is lazy-loaded when the route is visited. // component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/SitePersonalization.vue') // }, { path: '/agent/payList', isFirst: true, name: '收款方式', // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/payList.vue'), meta: { title: '收款方式', breadcrumbParent: '首页', hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/franchise', name: '加盟', component: () => import( /* webpackChunkName: "franchise" */ '../views/Franchise.vue'), meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/configureServicePrices', name: '配置服务价格', component: () => import( /* webpackChunkName: "configureServicePrices" */ '../views/ConfigureServicePrices.vue') }, // 暂时废弃 // { // path: '/siteSetting', // name: '站点设置', // component: () => import( /* webpackChunkName: "SiteSetting" */ '../views/SiteSetting.vue'), // children: [ // { // path: '', // 默认子路由 // redirect: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue') // 重定向到第一个页面 // }, // { // path: 'siteBaseSetting', // name: '站点基础设置', // component: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue'), // }, // { // path: 'sitePersonalization', // name: '个性化设置', // component: () => import( /* webpackChunkName: "sitePersonalization" */ '../views/SitePersonalization.vue') // }, // { // path: 'siteH5', // name: '移动端设置', // component: () => import( /* webpackChunkName: "siteH5" */ '../views/SiteH5.vue') // }, // { // path: 'demoTable', // 默认子路由 // name: '测试页面', // redirect: () => import( /* webpackChunkName: "demoTable" */ '../views/DemoTable.vue') // 重定向到第一个页面 // }, // ] // }, { path: '/pageTemplete', name: '网页模板', component: () => import( /* webpackChunkName: "pageTemplete" */ '../views/PageTemplete.vue') }, // -----------------分隔符----------- // 管理员start { path: '/super/ranking/yearProfit', name: '年排行', component: () => import( /* webpackChunkName: "Rankåing" */ '../views/super/Ranking/RankDetail.vue'), props: { pageTitle: '总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/monthProfit', name: '月排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'), props: { pageTitle: '总利润 - 月排行', rank_type: 1, type: 'month', showDateSelect: true }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/checkProfit', name: '产品毛利润排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'), props: { pageTitle: '产品 - 毛利润排行', rank_type: 1, type: 'check_type' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/checkOrdernum', name: '产品订单数排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'), props: { pageTitle: '产品 - 订单数排行', rank_type: 2, type: 'check_type' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/checkRefund', name: '产品退单数排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'), props: { pageTitle: '产品 - 退单数排行', rank_type: 3, type: 'check_type' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/loss', name: '产品负毛利排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'), props: { pageTitle: '产品 - 负毛利排行', rank_type: 5, type: 'loss' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/agentProfit', name: '代理商毛利润排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'), props: { pageTitle: '代理商 - 毛利润排行', rank_type: 1, type: 'agent' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/agentRecharge', name: '代理商充值排行', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'), props: { pageTitle: '代理商 - 充值排行', rank_type: 4, type: 'agent' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/agentNew', name: '代理商新加盟', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'), props: { pageTitle: '代理商 - 新加盟', type: 'agentnew', showDateSelect: false }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/purchase', name: '采购价', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'), props: { pageTitle: '设置 - 采购价', type: 'purchase' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/stagePurchase', name: '阶段采购价', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'), props: { pageTitle: '设置 - 阶段采购', type: 'stagePurchase' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/detail', name: '详情', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'), props: { pageTitle: '详情', type: 'day', showDateSelect: false, lookMore: false }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/list', name: '列表', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'), props: { pageTitle: '详情', showDateSelect: false, lookMore: false }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, { path: '/super/ranking/order', name: '订单统计', component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'), props: { pageTitle: '订单统计', type: 'order', showDateSelect: false }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 } }, // 管理员end ] first_child_router = routes.filter(item => item.isFirst); const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes }) router.beforeEach((to, from, next) => { if (blackSliderList.includes(to.path)) { store.commit('SET_SIDEBAR', false); // 黑名单内页面不显示侧边栏 } else { store.commit('SET_SIDEBAR', true); // 其他页面显示侧边栏 // 一级页面 侧边栏显示 统一化 if (first_child_router.length > 0) { first_child_router.forEach(item => { if (item.path == to.path) { store.commit('SET_CUSTOMIZE', false); store.commit('SET_SLIDER_MENU', 'menuData'); } }) } if (to.path.includes('/super/ranking/')) { //匹配包含此路径的 侧边栏数据 store.commit('SET_CUSTOMIZE', false); store.commit('SET_SLIDER_MENU', 'rankMenuData'); } } if (blackFooterList.includes(to.path)) { store.commit('SET_FOOTER', false); // 页面不显示底部 } else { store.commit('SET_FOOTER', true); // 其他页面显示底部 } if (blackHeaderList.includes(to.path)) { store.commit('SET_HEADER', false); // 不显示顶部 } else { store.commit('SET_HEADER', true); // 其他页面显示顶部 } store.dispatch('showLoading') next(); }); router.afterEach(() => { // 添加延迟确保过渡效果 setTimeout(() => { store.dispatch('hideLoading') }, 300) }) export default router