81 lines
2.3 KiB
JavaScript
81 lines
2.3 KiB
JavaScript
|
|
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;
|