diff --git a/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue b/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue index dbaa366b..2ca2d389 100644 --- a/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue +++ b/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue @@ -28,6 +28,8 @@ const props = defineProps({ mouseLeaveDelay: { type: Number, default: 200 }, /** 与触发器的间距(px) */ offset: { type: Number, default: 4 }, + /** 触发器是否撑满父容器宽度;透传给 Popover(见 Popover.stretchTrigger) */ + stretchTrigger: { type: Boolean, default: false }, }) const emit = defineEmits(['update:open', 'openChange', 'click']) @@ -178,6 +180,7 @@ provide('dropdownActiveIndex', activeIndex) :disabled="disabled" :arrow="false" :offset="offset" + :stretch-trigger="stretchTrigger" :mouse-enter-delay="mouseEnterDelay" :mouse-leave-delay="mouseLeaveDelay" @update:open="onOpenChange" diff --git a/code/fms/fms-vue/src/components/ui/popover/index.scss b/code/fms/fms-vue/src/components/ui/popover/index.scss index f549f98e..1d842360 100644 --- a/code/fms/fms-vue/src/components/ui/popover/index.scss +++ b/code/fms/fms-vue/src/components/ui/popover/index.scss @@ -4,6 +4,12 @@ justify-self: start; } +/* 触发器撑满父容器(stretch-trigger):结构树等需要占满整行可用宽度的场景 */ +.popover-trigger--stretch { + display: block; + width: 100%; +} + /* 在完整轮廓上统一投影,让箭头和主体拥有连续的视觉重量。 */ .popover { position: fixed; diff --git a/code/fms/fms-vue/src/components/ui/popover/popover.vue b/code/fms/fms-vue/src/components/ui/popover/popover.vue index 5534e554..b3a3b10d 100644 --- a/code/fms/fms-vue/src/components/ui/popover/popover.vue +++ b/code/fms/fms-vue/src/components/ui/popover/popover.vue @@ -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(() => {