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