import { message, Spin } from "antd"; import { useEffect, useState } from "react"; import { ensureOrgContext, isOrgInfoPage, ORG_INFO_PAGE_PATH, } from "~/api/enterpriseInfo/orgBootstrap"; /** * 企业信息模块入口:进入时 getInfo,有机构则缓存 orgInfoId;无机构则仅允许访问机构信息管理页。 */ function EnterpriseInfo(props) { const [checking, setChecking] = useState(true); const onOrgInfoPage = isOrgInfoPage(); useEffect(() => { let cancelled = false; ensureOrgContext({ force: true }) .then((ctx) => { if (cancelled) { return; } if (ctx?.networkError && onOrgInfoPage) { message.warning("机构信息加载失败,请确认后端服务已启动"); } if (!ctx?.hasOrg && !onOrgInfoPage) { message.warning("请先完善机构信息"); window.location.replace(ORG_INFO_PAGE_PATH); return; } setChecking(false); }) .catch((err) => { console.warn("[EnterpriseInfo] ensureOrgContext failed:", err); if (!cancelled) { if (onOrgInfoPage) { message.warning("机构信息加载失败,请确认后端服务已启动"); } setChecking(false); } }); return () => { cancelled = true; }; }, [onOrgInfoPage]); if (checking) { return ; } return (
{props.children}
); } export default EnterpriseInfo;