index.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import { store as firstPage } from '../modules/firstPage'
  4. import { store as sacilitiedAndStaff } from '../modules/facilitiesAndStaff'
  5. import { store as environment } from '../modules/environment'
  6. import { store as safety } from '../modules/safety'
  7. import { store as energyConsumption } from '../modules/energyConsumption'
  8. import { store as performance } from '../modules/performance'
  9. import storage from '../utils/storage'
  10. import axios from 'axios'
  11. Vue.use(Vuex)
  12. const KEY_LAST_ROUTE = 'last_route'
  13. const store = new Vuex.Store({
  14. state: {
  15. name: '这里是全局的',
  16. projects: [
  17. ],
  18. projectId: 'Pj4419000005',
  19. comeUrl: '',
  20. flag: 'wanke',
  21. token: null,
  22. lastRoute: null,
  23. userInfo: {
  24. }
  25. },
  26. getters: {
  27. flag: state => state.flag,
  28. token: state => state.token,
  29. lastRoute: state => {
  30. if (!state.lastRoute) {
  31. let lastRoute = storage.get(KEY_LAST_ROUTE)
  32. if (lastRoute) {
  33. state.lastRoute = lastRoute
  34. }
  35. }
  36. return state.lastRoute
  37. }
  38. },
  39. mutations: {
  40. setProjects(state,projects){
  41. state.projects = projects
  42. },
  43. setProId (state, projectId) {
  44. console.log('yyyyyyyyyyyyyyyyy', projectId)
  45. state.projectId = projectId
  46. },
  47. setComeUrl (state, comeUrl) {
  48. state.comeUrl = comeUrl
  49. },
  50. setSsoToken: (state, val) => (state.token = val),
  51. setLastRoute: (state, val) => {
  52. state.lastRoute = val
  53. storage.set(KEY_LAST_ROUTE, val)
  54. },
  55. setUserInfo(state, {userInfo}) {
  56. state.userInfo = userInfo
  57. }
  58. },
  59. actions: {
  60. async loadUserInfo(context,{token}){
  61. let res = await axios.get('/info-mng-backend/user/login', {params: {token: token}})
  62. console.log(res)
  63. if(res.data.result == 'success') {
  64. // commit 到vuex, 供全局使用
  65. context.commit('setUserInfo', {userInfo: res.data.data.user})
  66. context.commit('setProjects', {projects: res.data.data.projects})
  67. sessionStorage.setItem('token', token)
  68. } else {
  69. let ssoServer = 'http://sso.sagacloud.cn'
  70. // let redirectUrl = 'http://47.94.89.44:8011/home/main'
  71. let redirectUrl = window.location.protocol + '//' + window.location.host +'/home/main'
  72. window.location.href = `${ssoServer}/login?redirectUrl=${redirectUrl}`
  73. }
  74. }
  75. },
  76. modules: {
  77. firstPage,
  78. sacilitiedAndStaff,
  79. environment,
  80. safety,
  81. energyConsumption,
  82. performance
  83. }
  84. })
  85. export default store