global.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * @Author: your name
  3. * @Date: 2021-12-21 11:05:37
  4. * @LastEditTime: 2025-05-13 16:37:55
  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. console.log('logoutHandle');
  18. localStorage.removeItem('userData');
  19. localStorage.removeItem('initialState');
  20. localStorage.removeItem('userInfo');
  21. localStorage.removeItem('currentSelectedTab');
  22. localStorage.removeItem('isChildShowMenu');
  23. localStorage.removeItem('selectedKeys');
  24. localStorage.removeItem('openKeys');
  25. // localStorage.removeItem('visitedTabs');
  26. };
  27. (function () {
  28. let originalRemoveItem = localStorage.removeItem;
  29. //重写removeItem函数
  30. localStorage.removeItem = function (key) {
  31. let event: EventType = new Event('removeLocalItemEvent');
  32. event.key = key;
  33. //提交事件
  34. window.dispatchEvent(event);
  35. //执行原removeItem函数
  36. originalRemoveItem.apply(this, [`${key}`]);
  37. };
  38. })();
  39. //添加removeLocalItemEvent监听事件
  40. //用于子应用token过期触发登录
  41. window.addEventListener('removeLocalItemEvent', function (e: EventType) {
  42. if (e.key == 'userData') {
  43. const hospSign = localStorage.getItem('hospSign');
  44. history.replace(`${loginPath}?hospSign=${hospSign}`);
  45. }
  46. });