!2419 添加MES命令打开iframe页面加载完成后事件回调

pull/2384/MERGE
cf-erp 12 months ago committed by ChenX
parent fbaf107396
commit 31763e8b9a

@ -22,6 +22,7 @@ interface ErpViewProp
}
export class ErpView extends React.Component<ErpViewProp, {}> {
iframe: React.RefObject<HTMLIFrameElement>;
private appLoaded: boolean = false; // todo: iframe onload 移除后弃用此属性
constructor(props)
{
super(props);
@ -40,6 +41,7 @@ export class ErpView extends React.Component<ErpViewProp, {}> {
);
channel.port1.onmessage = (e: MessageEvent) =>
{
this.appLoaded = true;
let data = e.data;
let result: { blockList: OrderDataBlock[], objectList: OrderDataObject[]; };
switch (data.command)
@ -57,6 +59,7 @@ export class ErpView extends React.Component<ErpViewProp, {}> {
};
iframeLoaded = () =>
{
// console.log('iframeLoaded');
let fileName = FileServer.GetInstance().currentFileInfo.name;
let option = Object.assign({}, userConfig.chaidanOption);
let singleData = { session: this.props.session, cadData: this.props.cadData, fileName: fileName };
@ -87,9 +90,18 @@ export class ErpView extends React.Component<ErpViewProp, {}> {
this.postMessage("cadExport", { session: this.props.session });
break;
}
window.addEventListener('message', this.loadedEvent);
window.addEventListener('message', this.closeEvent);
window.addEventListener('message', this.warningEvent);
};
private loadedEvent = (ev) =>
{
if (ev.data.command == 'loaded' && this.appLoaded == false)
{
this.iframeLoaded();
}
};
private closeEvent = (ev) =>
{
switch (ev.data.command)
@ -146,6 +158,7 @@ export class ErpView extends React.Component<ErpViewProp, {}> {
}
componentWillUnmount()
{
window.removeEventListener("message", this.loadedEvent);
window.removeEventListener("message", this.closeEvent);
window.removeEventListener("message", this.warningEvent);
}

Loading…
Cancel
Save