@choerodon/master
Version:
A package of Master for Choerodon platform.
73 lines (61 loc) • 2.24 kB
JavaScript
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;
}