PageMenu.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. console.log(item);
  14. if (item.children) {
  15. return (
  16. <Menu.SubMenu key={item.name} title={item.name}>
  17. {item.children.map((subItem: any) => {
  18. return (
  19. <Menu.Item key={subItem.path}>
  20. <router-link to={subItem.path}>
  21. {subItem.name}
  22. </router-link>
  23. </Menu.Item>
  24. );
  25. })}
  26. </Menu.SubMenu>
  27. );
  28. } else {
  29. return (
  30. <Menu.Item key={item.path}>
  31. <router-link to={item.path}>{item.name}</router-link>
  32. </Menu.Item>
  33. );
  34. }
  35. })}
  36. </Menu>
  37. </div>
  38. );
  39. },
  40. });