diff --git a/src/runtime/DefineWidget.ts b/src/runtime/DefineWidget.ts index 892cfe7..706f91f 100644 --- a/src/runtime/DefineWidget.ts +++ b/src/runtime/DefineWidget.ts @@ -1,4 +1,4 @@ -import type { Component } from 'vue' +import { type Component, markRaw } from 'vue' export type WidgetSide = 'left' | 'right' | 'bottom' @@ -31,7 +31,7 @@ export class WidgetInfo { console.log(`Widget ${this.option.name} already exists`) return } - _widgetMap.set(this.option.name, this.option) + _widgetMap.set(this.option.name, markRaw(this.option)) } } @@ -44,6 +44,10 @@ export function getWidgetBySide(side: WidgetSide): WidgetOption[] { .sort((a, b) => (a.order || 0) - (b.order || 0)) } +export function getWidgetByName(name: string): WidgetOption | undefined { + return _widgetMap.get(name) +} + /** * 定义一个 Widget */ diff --git a/src/views/ModelMain.vue b/src/views/ModelMain.vue index 9c46b6a..9ab648f 100644 --- a/src/views/ModelMain.vue +++ b/src/views/ModelMain.vue @@ -5,7 +5,8 @@
{{ rootMenu.label }} + >{{ rootMenu.label }} +
@@ -17,14 +18,28 @@
+ +
+ +
@@ -34,8 +49,9 @@
-
{{ sectionLeftTitle }}
+
{{ calcLeftPanel?.title }}
+
@@ -85,44 +101,51 @@
-
{{ sectionRightTitle }}
+
{{ calcRightPanel?.title }}
+
-
{{ sectionBottomTitle }}
+
{{ calcBottomPanel?.title }}
+
+ +