helper.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { depthFirstSearchTree } from '@cip/utils/util'
  2. export const isHideInMenu = (item) => {
  3. if (item.meta?.hideInMenu === true || item.hideInMenu) return true// 明确指定hideInMenu
  4. return false
  5. }
  6. export const getMenuTitle = (menu) => {
  7. return menu?.meta?.title || menu?.title || menu?.name || ''
  8. }
  9. export const getRouteTitle = (route) => {
  10. return route?.meta?.title
  11. }
  12. export const getRouteCache = (route) => {
  13. return route?.meta?.cache
  14. }
  15. export const getRouteIcon = (route) => {
  16. return route?.meta?.icon
  17. }
  18. export const isCacheView = (currentView) => {
  19. return currentView?.meta?.cache || currentView?.cache
  20. }
  21. export const getMenuIcon = (menuList) => {
  22. for (let i = menuList.length - 1; i >= 0; i--) {
  23. const menu = menuList[i]
  24. const icon = menu?.meta?.icon || menu?.icon
  25. if (icon) return icon
  26. }
  27. }
  28. /**
  29. * 根据路由名称匹配路由所在菜单路径
  30. * @param routeName {String} 路由名称
  31. * @param menu {Array} 菜单
  32. */
  33. export const matchMenuByRouteName = (menu, routeName) => {
  34. for (let i = 0; i < menu.length; i++) {
  35. const result = depthFirstSearchTree(menu[i], routeName, 'name')
  36. if (result) return result // 返回匹配的数组
  37. }
  38. return undefined // 未找到
  39. }
  40. export const getFullPathWithoutHash = (fullPath) => {
  41. return fullPath.split('#')[0]
  42. }