From df8790042fd1309a6599c2db45bae7c61e1a2600 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Fri, 15 May 2026 19:33:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20=E5=AF=BC=E8=88=AA=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=94=AF=E6=8C=81=E8=8F=9C=E5=8D=95=E9=A1=B9=E6=BA=A2?= =?UTF-8?q?=E5=87=BA=E6=94=B6=E7=BA=B3=EF=BC=8C=E6=96=B0=E5=A2=9E=20NavMen?= =?UTF-8?q?uColumn=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 抽离每列渲染逻辑为 NavMenuColumn 组件,监听容器宽度 - 容器空间不足时自动隐藏溢出项,并通过更多按钮 Popover 展开 - ToolButton 暴露根元素引用,便于父级测量宽度 - design ButtonProps 新增 bg 属性,用于更多按钮的激活态样式 - 补充 NavMenuColumn / NavMenu / ToolButton 的单元测试 Co-authored-by: Cursor --- packages/design/src/types.ts | 1 + packages/editor/src/components/ToolButton.vue | 8 +- packages/editor/src/layouts/NavMenu.vue | 13 +- packages/editor/src/layouts/NavMenuColumn.vue | 252 ++++++++++++ packages/editor/src/theme/nav-menu.scss | 61 +++ .../tests/unit/components/ToolButton.spec.ts | 27 ++ .../editor/tests/unit/layouts/NavMenu.spec.ts | 8 +- .../tests/unit/layouts/NavMenuColumn.spec.ts | 362 ++++++++++++++++++ 8 files changed, 725 insertions(+), 7 deletions(-) create mode 100644 packages/editor/src/layouts/NavMenuColumn.vue create mode 100644 packages/editor/tests/unit/layouts/NavMenuColumn.spec.ts diff --git a/packages/design/src/types.ts b/packages/design/src/types.ts index 4bfebfd6..7c5572a3 100644 --- a/packages/design/src/types.ts +++ b/packages/design/src/types.ts @@ -32,6 +32,7 @@ export interface ButtonProps { circle?: boolean; icon?: any; variant?: string; + bg?: boolean; } export interface CardProps { diff --git a/packages/editor/src/components/ToolButton.vue b/packages/editor/src/components/ToolButton.vue index baad32fa..14288541 100644 --- a/packages/editor/src/components/ToolButton.vue +++ b/packages/editor/src/components/ToolButton.vue @@ -1,6 +1,7 @@