UNPKG

@choerodon/master

Version:
73 lines (61 loc) 2.24 kB
import "choerodon-ui/lib/notification/style"; import _notification from "choerodon-ui/lib/notification"; /* * @Author: isaac * @LastEditors: isaac * @Description: * i made my own lucky */ import React from 'react'; import { prompt } from "../../../utils"; import { authorizeUrl, authorizeC7n } from "../../../utils/authorize"; import { removeAccessToken } from "../../../utils/accessToken"; // 是否出现身份认证失效的弹框 var isExistInvalidTokenNotification = false; var regTokenExpired = /(PERMISSION_ACCESS_TOKEN_NULL|error.permission.accessTokenExpired)/; export default function handelResponseError(error) { var response = error.response; if (response) { var status = response.status; switch (status) { case 401: { var hasPageHeader = document.querySelectorAll('.page-header').length > 0; // 如果没有出现头部 说明系统都没进去 直接进入重新登录界面 if (!hasPageHeader) { authorizeUrl(); } else if (!isExistInvalidTokenNotification) { isExistInvalidTokenNotification = true; _notification.error({ message: '未登录或身份认证已失效', description: /*#__PURE__*/React.createElement("span", null, "\u60A8\u672A\u767B\u5F55\u6216\u8005\u8EAB\u4EFD\u8BA4\u8BC1\u5DF2\u5931\u6548 \uFF0C\u8BF7", /*#__PURE__*/React.createElement("a", { role: "none", onClick: function onClick() { removeAccessToken(); authorizeC7n(); } }, "\u91CD\u65B0\u767B\u5F55")), duration: null, placement: 'bottomLeft', onClose: function onClose() { isExistInvalidTokenNotification = false; } }); } break; } case 403: { if (regTokenExpired.test(response.data)) { removeAccessToken(); authorizeUrl(); } break; } default: if (Object.prototype.toString.call(response.data) !== '[object Blob]') { prompt(response.data, 'error'); } break; } } throw error; }