From c1bfcea362ea8504fe9a13b5040815231cc11e41 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Tue, 20 May 2025 17:45:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=AE=9A=E4=B9=89=EF=BC=8Cwi?= =?UTF-8?q?dgetview=20=E6=8C=82=E4=BB=B6=E8=A7=86=E5=9B=BE=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/runtime/DefineWidget.ts | 8 +++-- src/views/ModelMain.vue | 86 +++++++++++++++++++++++++++++++++------------ 2 files changed, 70 insertions(+), 24 deletions(-) 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 }}
+
+ +