DropMenuItem.vue 864 B

1234567891011121314151617181920212223242526272829303132
  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. // eslint-disable-next-line
  19. key: propTypes.string,
  20. text: propTypes.string,
  21. icon: propTypes.string,
  22. },
  23. setup(props) {
  24. const instance = getCurrentInstance();
  25. const itemKey = computed(() => props.key || instance?.vnode?.props?.key);
  26. return { itemKey };
  27. },
  28. });
  29. </script>