From 9108fade83b32c969b01fdd77d9af89ea062ca0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=9D=E8=A3=B3?= <1923740402@qq.com> Date: Thu, 14 Oct 2021 14:58:50 +0800 Subject: [PATCH] feat(components): [el-menu] add ellipsis prop (#3870) --- packages/components/menu/src/menu.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/components/menu/src/menu.ts b/packages/components/menu/src/menu.ts index be78227cd7..171a6b1444 100644 --- a/packages/components/menu/src/menu.ts +++ b/packages/components/menu/src/menu.ts @@ -52,6 +52,10 @@ export const menuProps = buildProps({ type: Boolean, default: true, }, + ellipsis: { + type: Boolean, + default: true, + }, } as const) export type MenuProps = ExtractPropTypes @@ -344,7 +348,7 @@ export default defineComponent({ }) const slotDefault = originalSlot.slice(0, sliceIndex) const slotMore = originalSlot.slice(sliceIndex) - if (slotMore?.length) { + if (slotMore?.length && props.ellipsis) { slot = slotDefault vShowMore.push( h( @@ -367,7 +371,10 @@ export default defineComponent({ const ulStyle = useMenuCssVar(props) - const vMenu = useVNodeResize( + const resizeMenu = (vNode: VNode) => + props.ellipsis ? useVNodeResize(vNode) : vNode + + const vMenu = resizeMenu( h( 'ul', { @@ -381,7 +388,7 @@ export default defineComponent({ 'el-menu--collapse': props.collapse, }, }, - [...slot.map((vnode) => useVNodeResize(vnode)), ...vShowMore] + [...slot.map((vnode) => resizeMenu(vnode)), ...vShowMore] ) )