router.d.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import type { RouteRecordRaw } from 'vue-router'
  2. import type { _RouteLocationBase } from 'vue-router'
  3. import { RouteRecordNormalized } from 'vue-router'
  4. /**
  5. * 路由记录
  6. */
  7. declare interface VabRouteRecord
  8. extends Omit<RouteRecordRaw, 'name' | 'meta' | 'children'> {
  9. name: string
  10. meta: VabRouteMeta
  11. children?: VabRouteRecord[]
  12. childrenPathList?: string[]
  13. parentIcon?: string
  14. redirect?: string
  15. }
  16. declare interface VabRouteRecordRaw
  17. extends Omit<RouteRecordNormalized, 'meta'> {
  18. meta: VabRouteMeta
  19. }
  20. /**
  21. * useRoute()
  22. */
  23. declare interface VabRoute extends Omit<_RouteLocationBase, 'meta'> {
  24. meta: VabRouteMeta
  25. matched: VabRouteRecordRaw[]
  26. parentIcon?: string
  27. }
  28. declare interface VabRouteMeta {
  29. // 高亮指定菜单
  30. activeMenu?: string
  31. // badge小标签(只支持子级)
  32. badge?: string
  33. // 是否隐藏面包屑
  34. breadcrumbHidden?: boolean
  35. // 是否显示小圆点
  36. dot?: boolean
  37. // 动态传参路由是否新开标签页
  38. dynamicNewTab?: boolean
  39. // 权限
  40. guard?: string[] | GuardType
  41. // 是否显示在菜单中显示隐藏路由(默认值:false)
  42. hidden?: boolean
  43. // 图标
  44. icon?: string
  45. // 是否是自定义svg图标(默认值:false)
  46. // 如果设置true,那么需要把你的svg拷贝到icon下,然后icon字段配置上你的图标名
  47. isCustomSvg?: boolean
  48. // 是否显示在菜单中显示隐藏一级路由(默认值:true)
  49. levelHidden?: boolean
  50. // 当前路由是否可关闭多标签页,同上
  51. noClosable?: boolean
  52. // 是否隐藏侧边栏
  53. noColumn?: boolean
  54. // 当前路由是否不缓存(默认值:false)
  55. noKeepAlive?: boolean
  56. // 当前路由是否不显示多标签页
  57. tabHidden?: boolean
  58. // 在新窗口中打开
  59. target?: '_blank' | false
  60. // 菜单、面包屑、多标签页显示的名称
  61. title?: string
  62. }