global.tsx 1.5 KB

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