global.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-12-21 11:05:37
  4. * @LastEditTime: 2022-07-13 10:49:58
  5. * @LastEditors: code4eat awesomedema@gmail.com
  6. * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  7. * @FilePath: /KC-MiddlePlatform/src/global.tsx
  8. */
  9. import { history } from 'umi';
  10. import { logout } from './service/login';
  11. interface EventType extends Event {
  12. key?: string;
  13. }
  14. const loginPath = '/login';
  15. export const logoutHandle = async () => {
  16. // await logout();
  17. localStorage.removeItem('userData');
  18. localStorage.removeItem('initialState');
  19. localStorage.removeItem('currentSelectedTab');
  20. localStorage.removeItem('isChildShowMenu');
  21. // localStorage.removeItem('visitedTabs');
  22. };
  23. (function () {
  24. let originalRemoveItem = localStorage.removeItem;
  25. //重写removeItem函数
  26. localStorage.removeItem = function (key) {
  27. let event: EventType = new Event('removeLocalItemEvent');
  28. event.key = key;
  29. //提交事件
  30. window.dispatchEvent(event);
  31. //执行原removeItem函数
  32. originalRemoveItem.apply(this, [`${key}`]);
  33. };
  34. })();
  35. //添加removeLocalItemEvent监听事件
  36. //用于子应用token过期触发登录
  37. window.addEventListener('removeLocalItemEvent', function (e: EventType) {
  38. if (e.key == 'userData') {
  39. const hospSign = localStorage.getItem('hospSign');
  40. history.replace(`${loginPath}?hospSign=${hospSign}`);
  41. }
  42. });