router.js 2.92 KB
import Vue from 'vue'
import Router from 'vue-router'
import Index from './pages/index/index.vue'

Vue.use(Router)

/**
 * 重写路由的push方法
 */
const routerPush = Router.prototype.push
Router.prototype.push = function push(location) {
	return routerPush.call(this, location).catch(error => error)
}

const routes = [

	{
		path: '/',
		name: 'index',
		component: Index,
		meta: {
			title: '平安人寿保险官网'
		}
	},
	{
		path: '/login',
		name: 'login',
		component: () => import('./pages/login/login.vue'),
		meta: {
			title: ''
		}
	},
	{
		path: '/register',
		name: 'register',
		component: () => import('./pages/register/register.vue'),
		meta: {
			title: ''
		}
	},
	{
		path: '/profile',
		name: 'profile',
		component: () => import('./pages/profile/profile.vue'),
		meta: {
			title: '公司简介'
		}
	},
	{
		path: '/terms',
		name: 'terms',
		component: () => import('./pages/terms/terms.vue'),
		meta: {
			title: '使用条款'
		}
	},
	{
		path: '/privacy',
		name: 'privacy',
		component: () => import('./pages/privacy/privacy.vue'),
		meta: {
			title: '隐私政策'
		}
	},
	{
		path: '/protocol',
		name: 'protocol',
		component: () => import('./pages/protocol/protocol.vue'),
		meta: {
			title: '平安壹賬通會員服務協議'
		}
	},
	{
		path: '/news/list',
		name: 'newsList',
		component: () => import('./pages/news-list/news-list.vue'),
		meta: {
			title: ''
		}
	},
	{
		path: '/news/detail',
		name: 'newsDetail',
		component: () => import('./pages/news-detail/news-detail.vue'),
		meta: {
			title: ''
		}
	},

	{
		path: '/payment/type',
		name: 'paymentType',
		component: () => import('./pages/payment-type/payment-type.vue'),
		meta: {
			title: ''
		}
	},

	{
		path: '/reservation',
		name: 'reservation',
		component: () => import('./pages/reservation/reservation.vue'),
		meta: {
			title: ''
		}
	},

	{
		path: '/product',
		name: 'product',
		component: () => import('./pages/product/product.vue'),
		meta: {
			title: ''
		}
	},
	{
		path: '/custom/service',
		name: 'customService',
		component: () => import('./pages/custom-service/custom-service.vue'),
		meta: {
			title: '保单查询'
		}
	},

	{
		path: '/demo',
		name: 'demo',
		component: () => import('./pages/demo/index.vue'),
		meta: {
			title: ''
		}
	},
	{
		path: '/about',
		name: 'about',
		component: () => import('./pages/About.vue'),
		meta: {
			title: ''
		}
	},
	// 404页面
	{
		path: '*', // * 表示上面路径匹配不到的都显示这个页面
		name: '404',
		component: Index
	},
]

// add route path
routes.forEach(route => {
	route.path = route.path || '/' + (route.name || '');
});

const router = new Router({
	routes,
	// mode: 'history',
});

router.beforeEach((to, from, next) => {
	const title = to.meta && to.meta.title;
	if (title) {
		document.title = title;
	}
	// const scrollTopList = [
	// 	"newsList", "newsDetail", "protocol", "privacy", "terms", "paymentType", "reservation"
	// ]

	next();
});

export default router;