helper.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 matchMenuByRoutePath = (menu, path) => {
  41. for (let i = 0; i < menu.length; i++) {
  42. const result = depthFirstSearchTree(menu[i], path, 'route')
  43. if (result) return result // 返回匹配的数组
  44. }
  45. return undefined // 未找到
  46. }
  47. export const getFullPathWithoutHash = (fullPath) => {
  48. return fullPath.split('#')[0]
  49. }