diff --git a/react-ui/src/components/IFramePage/index.tsx b/react-ui/src/components/IFramePage/index.tsx index cd08c7b7..c89e39c2 100644 --- a/react-ui/src/components/IFramePage/index.tsx +++ b/react-ui/src/components/IFramePage/index.tsx @@ -58,9 +58,12 @@ function IframePage({ type, openInTab = false, className, style }: IframePagePro useEffect(() => { const requestIframeUrl = async () => { + setLoading(true); const [res] = await to(getRequestAPI(type)()); if (res && res.data) { setIframeUrl(res.data); + } else { + setLoading(false); } }; diff --git a/react-ui/src/components/KFSpin/index.less b/react-ui/src/components/KFSpin/index.less index 753154d7..7d532d2d 100644 --- a/react-ui/src/components/KFSpin/index.less +++ b/react-ui/src/components/KFSpin/index.less @@ -4,7 +4,7 @@ right: 0; bottom: 0; left: 0; - z-index: 1001; + z-index: 1001; // 设置大于 Modal 的 z-index display: flex; flex-direction: column; align-items: center; diff --git a/react-ui/src/components/RightContent/AvatarDropdown.tsx b/react-ui/src/components/RightContent/AvatarDropdown.tsx index fc1fceeb..ce90efb5 100644 --- a/react-ui/src/components/RightContent/AvatarDropdown.tsx +++ b/react-ui/src/components/RightContent/AvatarDropdown.tsx @@ -2,6 +2,7 @@ import { clearSessionToken } from '@/access'; import { setRemoteMenu } from '@/services/session'; import { logout } from '@/services/system/auth'; import { ClientInfo } from '@/types'; +import { sleep } from '@/utils/promise'; import SessionStorage from '@/utils/sessionStorage'; import { gotoLoginPage, oauthLogout } from '@/utils/ui'; import { LogoutOutlined, UserOutlined } from '@ant-design/icons'; @@ -63,7 +64,8 @@ const AvatarDropdown: React.FC = ({ menu }) => { */ const loginOut = async () => { oauthLogout('http://172.20.32.197:31209/oauth/logout'); - await logout(); + // 至少 1 秒后跳转,希望子系统能完成注销 + await Promise.all([logout(), sleep(1000)]); clearSessionToken(); setRemoteMenu(null); gotoLoginPage(); diff --git a/react-ui/src/utils/promise.ts b/react-ui/src/utils/promise.ts index 7340e3bf..06724a51 100644 --- a/react-ui/src/utils/promise.ts +++ b/react-ui/src/utils/promise.ts @@ -13,3 +13,16 @@ export async function to(promise: Promise): Promise<[T, null] | [ } export default to; + +/** + * 休眠 + * @param ms - The number of milliseconds to sleep. + * @return A promise that resolves after the specified amount of time. + */ +export function sleep(ms: number) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(true); + }, ms); + }); +} diff --git a/react-ui/src/utils/table.tsx b/react-ui/src/utils/table.tsx index ac66967f..9af38590 100644 --- a/react-ui/src/utils/table.tsx +++ b/react-ui/src/utils/table.tsx @@ -87,7 +87,7 @@ function formatArray(property?: string): TableCellFormatter { * @param ellipsis - 是否省略 * @param type - 类型 * @param options - 选项 - * @returns React 节点 + * @returns Ant Design Table 的 render */ function tableCellRender( ellipsis: boolean | TooltipProps | 'auto' = false,