diff --git a/packages/workspace/src/context/base-context.ts b/packages/workspace/src/context/base-context.ts index b82e25872..e74ae2ffb 100644 --- a/packages/workspace/src/context/base-context.ts +++ b/packages/workspace/src/context/base-context.ts @@ -16,6 +16,7 @@ import { ILowCodePluginManager, } from '@alilc/lowcode-designer'; import { + ISkeleton, Skeleton as InnerSkeleton, } from '@alilc/lowcode-editor-skeleton'; import { @@ -65,7 +66,7 @@ export interface IBasicContext extends Omit Promise; innerSetters: InnerSetters; - innerSkeleton: InnerSkeleton; + innerSkeleton: ISkeleton; innerHotkey: IHotKey; innerPlugins: ILowCodePluginManager; canvas: IPublicApiCanvas; diff --git a/packages/workspace/src/inner-plugins/webview.tsx b/packages/workspace/src/inner-plugins/webview.tsx index de40bb521..820b843ab 100644 --- a/packages/workspace/src/inner-plugins/webview.tsx +++ b/packages/workspace/src/inner-plugins/webview.tsx @@ -2,7 +2,7 @@ import { IPublicModelPluginContext } from '@alilc/lowcode-types'; export function DesignerView(props: { url: string; - viewName: string; + viewName?: string; }) { return (
diff --git a/packages/workspace/src/resource.ts b/packages/workspace/src/resource.ts index 27b1fdcd1..10cb7f0a1 100644 --- a/packages/workspace/src/resource.ts +++ b/packages/workspace/src/resource.ts @@ -1,3 +1,4 @@ +import { ISkeleton } from '@alilc/lowcode-editor-skeleton'; import { IPublicTypeEditorView, IPublicResourceData, IPublicResourceTypeConfig, IBaseModelResource } from '@alilc/lowcode-types'; import { Logger } from '@alilc/lowcode-utils'; import { BasicContext, IBasicContext } from './context/base-context'; @@ -9,6 +10,8 @@ const logger = new Logger({ level: 'warn', bizName: 'workspace:resource' }); export interface IBaseResource extends IBaseModelResource { readonly resourceType: ResourceType; + skeleton: ISkeleton; + get editorViews(): IPublicTypeEditorView[]; get defaultViewType(): string; @@ -68,7 +71,7 @@ export class Resource implements IResource { } get children(): IResource[] { - return this.resourceData?.children?.map(d => new Resource(d, this.resourceType, this.workspace)) || []; + return this.resourceData?.children?.map(d => new Resource(d, this.workspace.getResourceType(d.resourceName || this.resourceType.name), this.workspace)) || []; } constructor(readonly resourceData: IPublicResourceData, readonly resourceType: IResourceType, readonly workspace: IWorkspace) { diff --git a/packages/workspace/src/view/resource-view.tsx b/packages/workspace/src/view/resource-view.tsx index 37e960b99..9ef30af09 100644 --- a/packages/workspace/src/view/resource-view.tsx +++ b/packages/workspace/src/view/resource-view.tsx @@ -2,14 +2,14 @@ import { PureComponent } from 'react'; import { EditorView } from './editor-view'; import { observer } from '@alilc/lowcode-editor-core'; import TopArea from '../layouts/top-area'; -import { Resource } from '../resource'; -import { EditorWindow } from '../window'; +import { IResource } from '../resource'; +import { IEditorWindow } from '../window'; import './resource-view.less'; @observer export class ResourceView extends PureComponent<{ - window: EditorWindow; - resource: Resource; + window: IEditorWindow; + resource: IResource; }, any> { render() { const { skeleton } = this.props.resource; diff --git a/packages/workspace/src/window.ts b/packages/workspace/src/window.ts index 1fa426524..96707dcb8 100644 --- a/packages/workspace/src/window.ts +++ b/packages/workspace/src/window.ts @@ -15,6 +15,8 @@ interface IWindowCOnfig { export interface IEditorWindow extends Omit, 'changeViewType'> { readonly resource: IResource; + editorViews: Map; + changeViewType: (name: string, ignoreEmit?: boolean) => void; } diff --git a/packages/workspace/src/workspace.ts b/packages/workspace/src/workspace.ts index 526e1f2ca..24c81cc79 100644 --- a/packages/workspace/src/workspace.ts +++ b/packages/workspace/src/workspace.ts @@ -27,6 +27,8 @@ export interface IWorkspace extends Omit