main.js 2.5 KB

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