import Vue from 'vue' import VueRouter from 'vue-router' import { updateWechatToken } from '@/utils' Vue.use(VueRouter) const _import = require('./import-' + process.env.NODE_ENV) const routes = [ // { // path: '*', // redirect: '/404' // }, { path: '/404', name: '404', component: _import('page/404/index') }, { path: '/login', name: 'Login', component: _import('page/login/index'), meta: { title: '登录' } }, { path: '/', component: _import('views/marketing/index'), children: [ { path: '', // 省钱 name: 'MarketingSave', component: _import('views/marketing/save/index'), meta: { isUseCache: false, keepAlive: true } }, { path: '/return', // 返钱 name: 'MarketingReturn', component: _import('views/marketing/return/index'), meta: { isUseCache: false, keepAlive: true } }, { path: '/make', // 赚钱 name: 'MarketingMake', component: _import('views/marketing/make/index'), meta: { isUseCache: false, keepAlive: true } } ] } ] const router = new VueRouter({ mode: 'history', routes, scrollBehavior (to, from, savedPosition) { if (to.hash) { return { selector: to.hash } } // keep-alive 返回缓存页面后记录浏览位置 if (savedPosition && to.meta.keepAlive) { return savedPosition } // 异步滚动操作 return new Promise((resolve) => { setTimeout(() => { resolve({ x: 0, y: 1 }) }, 0) }) } }) 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) } router.beforeEach((to, from, next) => { updateWechatToken() next() }) export default router