import {VueConstructor} from 'vue/types/umd'; import Common from './common'; import environment from "../environment/environment"; // 全局守卫 function beforeEach(router: any, Vue: any) { router.beforeEach((to: any, from: any, next: any) => { // 切换页面回到顶部 let view = document.getElementById('subapp-viewport'); view && view.scroll(0,0); const isNotLogin = to.meta.notLogin; let isAuthority = true; // @ts-ignore let platform = window['$platform']; let deployMode = environment.deployMode; const logIn = platform === 'ecp' && deployMode === 'domain' ? '/manage/login' : platform === 'eap' && deployMode === 'domain' ? '/admin/login' : '/login'; // const logIn = '/login'; // 跳转时将清除所有弹窗 Vue.prototype.$layer && Vue.prototype.$layer.closeAll && Vue.prototype.$layer.closeAll(); if (!isAuthority) { next(false); Vue.prototype.$layer.msg('权限不足', {type: 'warning'}) return; } /** 平台路由权限ecp&eap*/ let toPlatform = to.meta.platform; let currPlatform = Vue.prototype.$platform; if (toPlatform && currPlatform && toPlatform !== currPlatform) { Vue.prototype.$layer.msg('路由权限不足', {type: 'warning'}) next(false); return; } /**登录权限 */ if (!isNotLogin) { // @ts-ignore let userID = window['$platform'] === 'ecp' ? Common.getUserID('ecp') : Common.getAdminUserID(); if (userID) { next(); } else { next(); const mandate = Common.getCookie('mandate'); if (mandate === 'over') { } else { // @ts-ignore if (window['$platform'] === 'ecp') { userID = to.name === 'General' ? to.query.userID : ''; } else { userID = to.name === 'General' ? to.query.userID : ''; } if (!userID) { window.location.href = logIn; } } } } else { next(); } }) } export default beforeEach;