import Vue from 'vue' import App from './App' import VueClipboard from 'vue-clipboard2' Vue.use(VueClipboard) import VueRouter from 'vue-router' Vue.use(VueRouter) import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) import i18n from './i18n/i18n' import store from './vuex/store' import Vuex from 'vuex' import routes from './routes' import http from './http' Vue.prototype.http = http import port from './port' Vue.prototype.port = port import echarts from 'echarts' Vue.prototype.echarts = echarts import 'font-awesome/css/font-awesome.min.css' import './assets/iconfont/iconfont.css' Vue.use(Vuex) const router = new VueRouter({ routes }) router.beforeEach((to, from, next) => { if(to.name != '邀请') { var navigation = {}; if(i18n.locale == "en-US") { navigation = require('./i18n/lang/en').default.navigation; } else { navigation = require('./i18n/lang/zh').default.navigation; } if (to.path == '/login') { sessionStorage.removeItem('user'); } let user = JSON.parse(sessionStorage.getItem('user')); if (!user && to.path != '/login') { next({ path: '/login' }) } else { if(user){ for(var i in routes){ if(routes[i].name == navigation.base && user.parentId != 0){//基础管理 routes[i].hidden = true } else if(routes[i].name == navigation.base){//基础管理 routes[i].hidden = false } if(routes[i].name == navigation.pro && user.parentId > 1){//项目管理 var children = routes[i].children; for(var j in children){ if(children[j].name == navigation.staff){//人员管理 if(user.isManager == 0){ children[j].hidden = true } else { children[j].hidden = false } } if(children[j].name == navigation.power){//权限管理 if(user.isManager == 0){ children[j].hidden = true } else { children[j].hidden = false } } } } else if(routes[i].name == navigation.pro) {//项目管理 var children = routes[i].children; for(var j in children){ if(children[j].name != "项目详情"){ children[j].hidden = false } if(children[j].name == navigation.power){//权限管理 if((user.parentId == 0 || user.parentId == 1) && user.isManager == 0){ children[j].hidden = true } } } } } } next() } } else { next() } }) new Vue({ router, store, i18n, render: h => h(App) }).$mount('#app')