From 2445ba4306ca26d3890a56c49b93e44f86926a44 Mon Sep 17 00:00:00 2001 From: fuzi1996 Date: Wed, 26 Nov 2025 21:05:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E8=AE=BE=E8=AE=A1=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E5=BC=BA=E5=88=B6=E6=98=BE=E7=A4=BA=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E7=B1=BB=E6=8E=A7=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 导入ContextMode常量用于设计模式判断 - 新增shouldOutlineControlVisibility函数识别弹窗类组件 - 在设计模式下强制设置dialog、drawer等控件的modelValue为true以显示轮廓 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- packages/renderer/src/render/node.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/renderer/src/render/node.ts b/packages/renderer/src/render/node.ts index 6b8378751..0676cbe8f 100644 --- a/packages/renderer/src/render/node.ts +++ b/packages/renderer/src/render/node.ts @@ -13,7 +13,7 @@ import { } from '@vtj/core'; import { camelCase, upperFirst, isString, pick, isObject } from '@vtj/utils'; import { type Context } from './context'; -import { BUILT_IN_DIRECTIVES } from '../constants'; +import { BUILT_IN_DIRECTIVES, ContextMode } from '../constants'; import { toString, isJSExpression, @@ -81,6 +81,14 @@ export function nodeRender( const props = parseNodeProps(id, dsl.props ?? {}, context); const events = parseNodeEvents(Vue, dsl.events ?? {}, context); + if ( + context.__mode === ContextMode.Design && + shouldOutlineControlVisibility(dsl.name) && + typeof props.modelValue === 'boolean' + ) { + props.modelValue = true; + } + // 插槽 if (dsl.name === 'slot') { return renderSlot(Vue, dsl, props, context, loader); @@ -143,6 +151,15 @@ export function nodeRender( return render(context); } +const DESIGN_VISIBILITY_KEYWORDS = ['dialog', 'drawer', 'modal', 'popup', 'dlg']; + +function shouldOutlineControlVisibility(name: string = '') { + const lower = name.toLowerCase(); + return DESIGN_VISIBILITY_KEYWORDS.some((keyword) => + lower.includes(keyword) + ); +} + function createWithDirectives( appContext: AppContext, directives: NodeDirective[], -- Gitee