diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index 46cb51af5..3410aea69 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -49,6 +49,11 @@ export class DocumentModel { private emitter: EventEmitter; private rootNodeVisitorMap: { [visitorName: string]: any } = {}; + /** + * @deprecated + */ + private _addons: { [key: string]: { exportData: () => any; isProp: boolean;} } = {}; + /** * 模拟器 */ @@ -512,6 +517,32 @@ export class DocumentModel { this.emitter.emit('lowcode_engine_renderer_ready', renderer); } + /** + * @deprecated + */ + getAddonData(name: string) { + const addon = this._addons[name]; + return addon?.exportData(); + } + + /** + * @deprecated + */ + registerAddon(name: string, exportData: any) { + if (['id', 'params', 'layout'].indexOf(name) > -1) { + throw new Error('addon name cannot be id, params, layout'); + } + const i = this._addons?.findIndex((item) => item.name === name); + if (i > -1) { + this._addons?.splice(i, 1); + } + this._addons?.push({ + exportData, + name, + }); + } + + acceptRootNodeVisitor( visitorName: string = 'default', visitorFn: (node: RootNode) => any ) {