Menu.tsx 988 B

123456789101112131415161718192021222324252627282930313233
  1. import { IconMore } from "@queenjs/icons"
  2. import { Dropdown, Menu} from "ant-design-vue"
  3. import { defineComponent} from "vue"
  4. import { array } from "vue-types"
  5. export default defineComponent({
  6. props: {
  7. items: array<string>().isRequired
  8. },
  9. emits:["menu"],
  10. setup(props, {emit}) {
  11. return ()=>(
  12. <Dropdown
  13. placement="bottom"
  14. overlay={
  15. <Menu class="w-90px">
  16. {
  17. props.items.map(item=>(
  18. <Menu.Item key={item}>
  19. <div onClick={() =>{
  20. emit("menu", item)
  21. }}>{item}</div>
  22. </Menu.Item>
  23. ))
  24. }
  25. </Menu>
  26. }
  27. >
  28. <IconMore class="ml-10px text-22px cursor-pointer" />
  29. </Dropdown>
  30. )
  31. },
  32. })