From be792fdb049fe00a9c54a66799f9f01c618569ca Mon Sep 17 00:00:00 2001 From: zcating Date: Wed, 15 Dec 2021 01:05:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(dropdown):=20=E6=B7=BB=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=AE=BD=E5=BA=A6=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devui/dropdown/src/dropdown-types.ts | 5 +- .../devui/dropdown/src/dropdown.scss | 4 ++ .../devui-vue/devui/dropdown/src/dropdown.tsx | 42 +++++++------ .../docs/components/dropdown/index.md | 62 +++++++++++-------- 4 files changed, 67 insertions(+), 46 deletions(-) diff --git a/packages/devui-vue/devui/dropdown/src/dropdown-types.ts b/packages/devui-vue/devui/dropdown/src/dropdown-types.ts index 706048dfb4..6666c69c13 100644 --- a/packages/devui-vue/devui/dropdown/src/dropdown-types.ts +++ b/packages/devui-vue/devui/dropdown/src/dropdown-types.ts @@ -36,8 +36,11 @@ export const dropdownProps = { showAnimation: { type: Boolean, default: true + }, + width: { + type: [Number, String], + default: '102px' } - } as const export type DropdownProps = ExtractPropTypes diff --git a/packages/devui-vue/devui/dropdown/src/dropdown.scss b/packages/devui-vue/devui/dropdown/src/dropdown.scss index faa3cd509d..5a333ba05b 100644 --- a/packages/devui-vue/devui/dropdown/src/dropdown.scss +++ b/packages/devui-vue/devui/dropdown/src/dropdown.scss @@ -8,6 +8,10 @@ } } +.devui-dropdown-menu-wrap .devui-dropdown-menu { + width: 100%; +} + .devui-dropdown-animation span { &.icon-chevron-down, &.icon-select-arrow { diff --git a/packages/devui-vue/devui/dropdown/src/dropdown.tsx b/packages/devui-vue/devui/dropdown/src/dropdown.tsx index 5dd8d6ba64..ea7b0e024f 100644 --- a/packages/devui-vue/devui/dropdown/src/dropdown.tsx +++ b/packages/devui-vue/devui/dropdown/src/dropdown.tsx @@ -43,24 +43,30 @@ export default defineComponent({ return props.showAnimation ? visible.value : true; }); - return () => { - // let vnodes = ctx.slots.default?.() ?? []; - return ( - <> - typeof props.width === 'string' ? { + width: props.width, + }: { + width: `${props.width}px`, + }); + + return () => ( + + +
- -
- {ctx.slots.default?.()} -
-
- - - ) - }; + {ctx.slots.default?.()} +
+
+
+ ); } }) diff --git a/packages/devui-vue/docs/components/dropdown/index.md b/packages/devui-vue/docs/components/dropdown/index.md index 061c602400..8dd187a5b8 100644 --- a/packages/devui-vue/docs/components/dropdown/index.md +++ b/packages/devui-vue/docs/components/dropdown/index.md @@ -12,33 +12,38 @@ ```vue