SubMenu.vue 887 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <template>
  2. <template v-for="menu in props.menuList" :key="menu.menuId">
  3. <a-sub-menu
  4. v-if="menu.children && menu.menuType == 'M' && menu.visible == 0"
  5. :key="menu.path"
  6. >
  7. <template #icon>
  8. <component :is="menu.icon" />
  9. </template>
  10. <template #title>{{ menu.title }}</template>
  11. <sub-menu :menuList="menu.children" />
  12. </a-sub-menu>
  13. <a-menu-item
  14. v-if="menu.menuType == 'C' && menu.visible && isRouteParams(menu.path)"
  15. :key="menu.path"
  16. >{{ menu.title }}</a-menu-item>
  17. </template>
  18. </template>
  19. <script setup>
  20. import { computed } from 'vue'
  21. const props = defineProps({
  22. menuList: {
  23. type: Array,
  24. default: () => [],
  25. },
  26. });
  27. // 判断是否路由需要带参匹配
  28. const isRouteParams = computed(() => {
  29. return (path) => {
  30. if (path.indexOf(':') == -1) return true;
  31. return false;
  32. }
  33. })
  34. </script>