refactor(ui): Dropdown/Popover 增加 stretch-trigger,结构树宽度改为组件级解决

antdv-next 的 Dropdown/Popover 触发器不额外包裹 span,block 内容天然撑满;
我们组件因统一挂载事件/ref 用 span.popover-trigger(inline-flex 收缩)包裹,
导致结构树(.mst-tree)只有内容宽度。

参照其语义化定制思路,改为组件提供显式能力而非业务侧 :deep 打补丁:
- Popover 新增 stretchTrigger prop:true 时 trigger 加 .popover-trigger--stretch
  (display:block + width:100%,特异性 0,2,0 高于默认)
- Dropdown 透传 stretchTrigger
- ModuleStructureTree 使用 stretch-trigger 撑满分组树面板
- 移除 TableEditPanel 的 :deep(.popover-trigger) 覆盖(回归组件自身能力)
This commit is contained in:
oneao committed 2026-08-28 19:28:40 +08:00
1 parent 5e63ef8e50
commit a1079a7150
5 files changed
+18 -7

No files matched your search

@@ -35,6 +35,10 @@ const props = defineProps({
/** 浮层宽度是否严格跟随触发器宽度。
用于 Select 等需与触发框等宽对齐的场景;默认 false 由内容自适应撑开。 */
followTriggerWidth: { type: Boolean, default: false },
/** 触发器是否撑满父容器宽度(display:block + width:100%)。
默认 false(inline-flex 收缩到内容宽度,适配按钮/图标触发器);
需要触发器占据整行可用宽度的场景(如结构树)设为 true。 */
stretchTrigger: { type: Boolean, default: false },
})
const emit = defineEmits(['update:open', 'openChange'])
@@ -248,6 +252,7 @@ onBeforeUnmount(() => {
<span
ref="triggerEl"
class="popover-trigger"
:class="{ 'popover-trigger--stretch': stretchTrigger }"
@click="onClick"
@contextmenu="onContextMenu"
@mouseenter="onMouseEnter"