vben
2023-04-06 553ee9c7aed3c679c4d00d1c1c6278b8578020d5
提交 | 用户 | age
a65ad9 1 <template>
20d7a2 2   <MenuItem :key="itemKey">
a65ad9 3     <span class="flex items-center">
V 4       <Icon :icon="icon" class="mr-1" />
5       <span>{{ text }}</span>
6     </span>
7   </MenuItem>
8 </template>
9 <script lang="ts">
e250ad 10   import { Menu } from 'ant-design-vue';
a65ad9 11
20d7a2 12   import { computed, defineComponent, getCurrentInstance } from 'vue';
a65ad9 13
553ee9 14   import Icon from '/@/components/Icon/index';
a65ad9 15   import { propTypes } from '/@/utils/propTypes';
V 16
17   export default defineComponent({
18     name: 'DropdownMenuItem',
e250ad 19     components: { MenuItem: Menu.Item, Icon },
a65ad9 20     props: {
414101 21       // eslint-disable-next-line
a65ad9 22       key: propTypes.string,
V 23       text: propTypes.string,
24       icon: propTypes.string,
25     },
20d7a2 26     setup(props) {
27       const instance = getCurrentInstance();
28       const itemKey = computed(() => props.key || instance?.vnode?.props?.key);
29       return { itemKey };
30     },
a65ad9 31   });
V 32 </script>