/** * Created by c.y on 2018/3/16. * 全局的router的配置, 以及其跳转的控制 */ import Vue from 'vue'; import VueRouter from 'vue-router'; import store from '../store/index'; import {setClientInfo, setProductConfig} from '../config/config'; // 配置信息 import projectRouter from './router'; import judgmentUrl from '../tool/judgmentUrl'; setClientInfo(); // 将设备信息写入本地存储 setProductConfig(); // 获取项目配置信息 Vue.use(VueRouter); // 路由的动态加载,最先开始加载项目路由 // 如果是app的话,需要动态加载路由配置 let router = new VueRouter(projectRouter); // 路由的跳转的控制 router.beforeEach((to, from, next) => { // 如果微信分享的话,微信会在地址栏添加额外参数 if (judgmentUrl.getUrlQuestionMark()) { window.location.href = judgmentUrl.getRightProjectUrl(); } // arr里存放需要登录状态下才能访问的页面的name // 过滤 实名认证,申请记录,修改密码 // 收入贷界面 let arr = ['f-auth', 'f-apply-record', 'f-update-password' , 'incoPersonalInfo', 'incoHouseAndJobInfo', 'incoBindCard', 'incoPhotoInfo', 'incoAuditResults']; let loginFalse = ['f-login', 'f-register', 'f-forget-password']; // 登录后不能进入 登录、注册、忘记密码界面 //判断是否登录,如果没有登录则判断是否往arr里的页面进行跳转,如果是,则跳转到登录页 let sid = window.sessionStorage.getItem('newSid'); if (sid) { // 已经登录 if (loginFalse.indexOf(to.name) !== -1) { window.history.go(-1); } } else { // 未登录 if (arr.indexOf(to.name) !== -1) { next('f-login'); } } next(); }); router.afterEach((to, from) => { if (to.name == '/f-main') { // 微信预加载 分享功能 } // 记录访问页面地址 store.commit('UPDATE_PAGE_ACCESS_RECORD', {pageName: {name: to.name, fullPath: to.fullPath}}); // 跳转到顶部,解决ios空白问题,不要问为什么这么写,删掉一个就会出错,谨慎操作 window.scrollTo(0, 2); setTimeout(function () { store.commit('UPDATE_APP_STYLE', { height: document.documentElement.clientHeight + 1 }); window.scrollTo(0, 0); store.commit('UPDATE_APP_STYLE', { height: '100%', overflow: 'auto', '-webkit-overflow-scrolling': 'touch' }); }, 5); }); export default router;