routerUtil.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * Copyright [2022] [https://www.xiaonuo.vip]
  3. * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
  4. * 1.请不要删除和修改根目录下的LICENSE文件。
  5. * 2.请不要删除和修改Snowy源码头部的版权声明。
  6. * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
  7. * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
  8. * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
  9. * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
  10. */
  11. import userRoutes from '@/config/route'
  12. // 获取第一个界面
  13. const getIndexMenu = (menu) => {
  14. if (menu[0] && menu[0].children) {
  15. let indexMenu = menu[0].children[0]
  16. // 如果第一个菜单为目录,接着往下找
  17. if (indexMenu.meta.type === 'catalog') {
  18. indexMenu = traverseChild(menu)
  19. }
  20. return indexMenu
  21. } else {
  22. return userRoutes.menu[0]
  23. }
  24. }
  25. // 遍历进行判断,其中处理了被隐藏的
  26. const traverseChild = (menu) => {
  27. if (menu[0] && menu[0].children !== undefined) {
  28. if (menu[0].children.length > 0) {
  29. if (menu[0].children[0] && menu[0].children[0].meta.hidden && menu[0].children[0].meta.hidden === true) {
  30. return menu[0]
  31. } else {
  32. return traverseChild(menu[0].children)
  33. }
  34. }
  35. } else {
  36. return menu[0]
  37. }
  38. }
  39. export default {
  40. getIndexMenu
  41. }