main.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import Vue from 'vue'
  2. import App from './App'
  3. import VueClipboard from 'vue-clipboard2'
  4. Vue.use(VueClipboard)
  5. import VueRouter from 'vue-router'
  6. Vue.use(VueRouter)
  7. import ElementUI from 'element-ui'
  8. import 'element-ui/lib/theme-chalk/index.css'
  9. Vue.use(ElementUI)
  10. import i18n from './i18n/i18n'
  11. import store from './vuex/store'
  12. import Vuex from 'vuex'
  13. import routes from './routes'
  14. import http from './http'
  15. Vue.prototype.http = http
  16. import port from './port'
  17. Vue.prototype.port = port
  18. import echarts from 'echarts'
  19. Vue.prototype.echarts = echarts
  20. import 'font-awesome/css/font-awesome.min.css'
  21. import './assets/iconfont/iconfont.css'
  22. Vue.use(Vuex)
  23. const router = new VueRouter({
  24. routes
  25. })
  26. router.beforeEach((to, from, next) => {
  27. if(to.name != '邀请') {
  28. var navigation = {};
  29. if(i18n.locale == "en-US") {
  30. navigation = require('./i18n/lang/en').default.navigation;
  31. } else {
  32. navigation = require('./i18n/lang/zh').default.navigation;
  33. }
  34. if (to.path == '/login') {
  35. sessionStorage.removeItem('user');
  36. }
  37. let user = JSON.parse(sessionStorage.getItem('user'));
  38. if (!user && to.path != '/login') {
  39. next({ path: '/login' })
  40. } else {
  41. if(user){
  42. for(var i in routes){
  43. if(routes[i].name == navigation.base && user.parentId != 0){//基础管理
  44. routes[i].hidden = true
  45. } else if(routes[i].name == navigation.base){//基础管理
  46. routes[i].hidden = false
  47. }
  48. if(routes[i].name == navigation.pro && user.parentId > 1){//项目管理
  49. var children = routes[i].children;
  50. for(var j in children){
  51. if(children[j].name == navigation.staff){//人员管理
  52. if(user.isManager == 0){
  53. children[j].hidden = true
  54. } else {
  55. children[j].hidden = false
  56. }
  57. }
  58. if(children[j].name == navigation.power){//权限管理
  59. if(user.isManager == 0){
  60. children[j].hidden = true
  61. } else {
  62. children[j].hidden = false
  63. }
  64. }
  65. }
  66. } else if(routes[i].name == navigation.pro) {//项目管理
  67. var children = routes[i].children;
  68. for(var j in children){
  69. if(children[j].name != "项目详情"){
  70. children[j].hidden = false
  71. }
  72. if(children[j].name == navigation.power){//权限管理
  73. if((user.parentId == 0 || user.parentId == 1) && user.isManager == 0){
  74. children[j].hidden = true
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }
  81. next()
  82. }
  83. } else {
  84. next()
  85. }
  86. })
  87. new Vue({
  88. router,
  89. store,
  90. i18n,
  91. render: h => h(App)
  92. }).$mount('#app')