DropMenuItem.vue 830 B

12345678910111213141516171819202122232425262728293031
  1. <template>
  2. <MenuItem :key="itemKey">
  3. <span class="flex items-center">
  4. <Icon :icon="icon" class="mr-1" />
  5. <span>{{ text }}</span>
  6. </span>
  7. </MenuItem>
  8. </template>
  9. <script lang="ts">
  10. import { Menu } from 'ant-design-vue';
  11. import { computed, defineComponent, getCurrentInstance } from 'vue';
  12. import Icon from '/@/components/Icon/index';
  13. import { propTypes } from '/@/utils/propTypes';
  14. export default defineComponent({
  15. name: 'DropdownMenuItem',
  16. components: { MenuItem: Menu.Item, Icon },
  17. props: {
  18. key: propTypes.string,
  19. text: propTypes.string,
  20. icon: propTypes.string,
  21. },
  22. setup(props) {
  23. const instance = getCurrentInstance();
  24. const itemKey = computed(() => props.key || instance?.vnode?.props?.key);
  25. return { itemKey };
  26. },
  27. });
  28. </script>