|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|