store.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import store from '../src/store';
  2. /**
  3. * 同步门户下发的主题与用户信息(对齐 EOM qiankun_config/store.js)
  4. * @param {object} state 可为 vuex store.state,或 onGlobalStateChange 下发的 state
  5. */
  6. export default function initParentStore(state) {
  7. if (!state) return;
  8. // 兼容传入整个 vuex store
  9. const data = state.state && (state.theme || state.user) ? state.state : state;
  10. if (data.theme) {
  11. for (const key in data.theme) {
  12. store.commit('theme/SET', { key, value: data.theme[key] });
  13. }
  14. if (data.theme.color != null) {
  15. store.dispatch('theme/setColor', data.theme.color);
  16. }
  17. if (data.theme.weakMode != null) {
  18. store.dispatch('theme/setWeakMode', data.theme.weakMode);
  19. }
  20. if (data.theme.styleResponsive != null) {
  21. store.dispatch('theme/setStyleResponsive', data.theme.styleResponsive);
  22. }
  23. }
  24. if (data.user?.info) {
  25. store.commit('user/setUserInfo', data.user.info);
  26. }
  27. // 与 EOM 一致:同步按钮权限
  28. if (data.user?.authorities) {
  29. store.commit('user/setAuthorities', data.user.authorities);
  30. }
  31. }