From 31763e8b9a33a26f6e4fe7f0a03760f12d4ee99c Mon Sep 17 00:00:00 2001 From: cf-erp Date: Tue, 10 Oct 2023 07:41:39 +0000 Subject: [PATCH] =?UTF-8?q?!2419=20=E6=B7=BB=E5=8A=A0MES=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E6=89=93=E5=BC=80iframe=E9=A1=B5=E9=9D=A2=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E4=BA=8B=E4=BB=B6=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/Erp/ErpView.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Add-on/Erp/ErpView.tsx b/src/Add-on/Erp/ErpView.tsx index 064422589..fff8b7f9b 100644 --- a/src/Add-on/Erp/ErpView.tsx +++ b/src/Add-on/Erp/ErpView.tsx @@ -22,6 +22,7 @@ interface ErpViewProp } export class ErpView extends React.Component { iframe: React.RefObject; + private appLoaded: boolean = false; // todo: iframe onload 移除后弃用此属性 constructor(props) { super(props); @@ -40,6 +41,7 @@ export class ErpView extends React.Component { ); 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 { }; 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 { 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 { } componentWillUnmount() { + window.removeEventListener("message", this.loadedEvent); window.removeEventListener("message", this.closeEvent); window.removeEventListener("message", this.warningEvent); }