global.tsx 1.3 KB

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