safety-eval-service-frontend/src/pages/Container/QualApplication/index.js

81 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { Button, message, Spin } from "antd";
import { useEffect, useState } from "react";
import {
ensureOrgContext,
ORG_INFO_PAGE_PATH,
} from "~/api/enterpriseInfo/orgBootstrap";
import { getOrgInfoId, setOrgInfoId } from "~/api/enterpriseInfo/orgContext";
/** 本地联调默认机构 id与后端 application-local.yml public-api.org-id 一致) */
const LOCAL_DEV_ORG_INFO_ID = "1";
/** 资质申请管理模块入口:需先有机构信息 */
function QualApplication(props) {
const [checking, setChecking] = useState(true);
const [blocked, setBlocked] = useState(false);
useEffect(() => {
let cancelled = false;
// 本地独立运行时,优先恢复 session / 默认 orgInfoId避免 getInfo 无用户关联导致卡死
if (!getOrgInfoId() && !window.__POWERED_BY_QIANKUN__) {
setOrgInfoId(LOCAL_DEV_ORG_INFO_ID);
}
ensureOrgContext({ force: true })
.then((ctx) => {
if (cancelled) {
return;
}
if (ctx?.networkError) {
message.warning("机构信息加载失败,请确认后端服务已启动");
setChecking(false);
return;
}
if (!ctx?.hasOrg) {
message.warning("请先完善机构信息");
setBlocked(true);
setChecking(false);
return;
}
setChecking(false);
})
.catch((err) => {
console.warn("[QualApplication] ensureOrgContext failed:", err);
if (!cancelled) {
message.warning("机构信息加载失败,请确认后端服务已启动");
setChecking(false);
}
});
return () => {
cancelled = true;
};
}, []);
if (checking) {
return <Spin fullscreen tip="正在加载机构信息..." />;
}
if (blocked) {
return (
<div style={{ padding: 48, textAlign: "center" }}>
<p style={{ marginBottom: 16, color: "rgba(0,0,0,0.65)" }}>
资质申请管理需先完善机构信息请前往企业信息管理 机构信息管理录入并保存
</p>
<Button type="primary" href={ORG_INFO_PAGE_PATH}>
去完善机构信息
</Button>
</div>
);
}
return (
<div style={{ height: "100%" }}>
{props.children}
</div>
);
}
export default QualApplication;