|
|
|
@ -1,10 +1,10 @@
@@ -1,10 +1,10 @@
|
|
|
|
|
<template> |
|
|
|
|
<Dropdown :trigger="trigger" v-bind="$attrs"> |
|
|
|
|
<Dropdown :class="[prefixCls]" :trigger="trigger" v-bind="$attrs"> |
|
|
|
|
<span> |
|
|
|
|
<slot/> |
|
|
|
|
</span> |
|
|
|
|
<template #overlay> |
|
|
|
|
<Menu :selectedKeys="selectedKeys"> |
|
|
|
|
<Menu :class="`${prefixCls}--menu`" :selectedKeys="selectedKeys"> |
|
|
|
|
<template v-for="item in dropMenuList" :key="`${item.event}`"> |
|
|
|
|
<MenuItem |
|
|
|
|
v-bind="getAttr(item.event)" |
|
|
|
@ -44,6 +44,7 @@
@@ -44,6 +44,7 @@
|
|
|
|
|
import { Icon } from '/@/components/Icon'; |
|
|
|
|
import { omit } from 'lodash-es'; |
|
|
|
|
import { isFunction } from '/@/utils/is'; |
|
|
|
|
import { useDesign } from '/@/hooks/web/useDesign'; |
|
|
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
|
name: 'BasicDropdown', |
|
|
|
@ -79,6 +80,7 @@
@@ -79,6 +80,7 @@
|
|
|
|
|
}, |
|
|
|
|
emits: ['menuEvent'], |
|
|
|
|
setup(props, { emit }) { |
|
|
|
|
const { prefixCls } = useDesign('basic-dropdown'); |
|
|
|
|
function handleClickMenu(item: DropMenu) { |
|
|
|
|
const { event } = item; |
|
|
|
|
const menu = props.dropMenuList.find((item) => `${item.event}` === `${event}`); |
|
|
|
@ -98,6 +100,7 @@
@@ -98,6 +100,7 @@
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
prefixCls, |
|
|
|
|
handleClickMenu, |
|
|
|
|
getPopConfirmAttrs, |
|
|
|
|
getAttr: (key: string | number) => ({ key }), |
|
|
|
@ -105,3 +108,14 @@
@@ -105,3 +108,14 @@
|
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style lang="less"> |
|
|
|
|
@prefix-cls: ~'@{namespace}-basic-dropdown'; |
|
|
|
|
.@{prefix-cls} { |
|
|
|
|
&--menu{ |
|
|
|
|
.ant-dropdown-menu-item { |
|
|
|
|
color: @primary-color; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|