PageMenu.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { css } from "@linaria/core";
  2. import { Menu } from "ant-design-vue";
  3. import { defineComponent } from "vue";
  4. import { MenusConfig } from "../config/menus";
  5. import { useRouter } from "vue-router";
  6. export default defineComponent({
  7. setup() {
  8. const router = useRouter();
  9. return () => (
  10. <div>
  11. <Menu mode="inline" selectedKeys={[router.currentRoute.value.path]}>
  12. {MenusConfig.map((item: any) => {
  13. if (item.children) {
  14. return (
  15. <Menu.SubMenu key={item.name} title={item.name}>
  16. {item.children.map((subItem: any) => {
  17. return (
  18. <Menu.Item key={subItem.path}>
  19. <router-link to={subItem.path}>
  20. {subItem.name}
  21. </router-link>
  22. </Menu.Item>
  23. );
  24. })}
  25. </Menu.SubMenu>
  26. );
  27. } else {
  28. return (
  29. <Menu.Item key={item.path}>
  30. <router-link to={item.path}>{item.name}</router-link>
  31. </Menu.Item>
  32. );
  33. }
  34. })}
  35. </Menu>
  36. </div>
  37. );
  38. },
  39. });