提交 | 用户 | 时间
820397 1 import type { RouteRecordRaw } from 'vue-router'
H 2 import { defineComponent } from 'vue'
3
4 /**
5 * redirect: noredirect        当设置 noredirect 的时候该路由在面包屑导航中不可被点击
6 * name:'router-name'          设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
7 * meta : {
8     hidden: true              当设置 true 的时候该路由不会再侧边栏出现 如404,login等页面(默认 false)
9
10     alwaysShow: true          当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式,
11                               只有一个时,会将那个子路由当做根路由显示在侧边栏,
12                               若你想不管路由下面的 children 声明的个数都显示你的根路由,
13                               你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,
14                               一直显示根路由(默认 false)
15
16     title: 'title'            设置该路由在侧边栏和面包屑中展示的名字
17
9259c2 18     titleSuffix: '2'          当 path 和 title 重复时的后缀或备注
H 19
820397 20     icon: 'svg-name'          设置该路由的图标
H 21
22     noCache: true             如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
23
24     breadcrumb: false         如果设置为false,则不会在breadcrumb面包屑中显示(默认 true)
25
26     affix: true               如果设置为true,则会一直固定在tag项中(默认 false)
27
28     noTagsView: true          如果设置为true,则不会出现在tag中(默认 false)
29
30     activeMenu: '/home'  显示高亮的路由路径
31
32     followAuth: '/home'  跟随哪个路由进行权限过滤
33
34     canTo: true               设置为true即使hidden为true,也依然可以进行路由跳转(默认 false)
35   }
36 **/
37 declare module 'vue-router' {
38   interface RouteMeta extends Record<string | number | symbol, unknown> {
39     hidden?: boolean
40     alwaysShow?: boolean
41     title?: string
9259c2 42     titleSuffix?: string
820397 43     icon?: string
H 44     noCache?: boolean
45     breadcrumb?: boolean
46     affix?: boolean
47     activeMenu?: string
48     noTagsView?: boolean
49     followAuth?: string
50     canTo?: boolean
51   }
52 }
53
54 type Component<T = any> =
55   | ReturnType<typeof defineComponent>
56   | (() => Promise<typeof import('*.vue')>)
57   | (() => Promise<T>)
58
59 declare global {
60   interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
61     name: string
62     meta: RouteMeta
63     component?: Component | string
64     children?: AppRouteRecordRaw[]
65     props?: Recordable
66     fullPath?: string
67     keepAlive?: boolean
68   }
69
70   interface AppCustomRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
71     icon: any
72     name: string
73     meta: RouteMeta
74     component: string
75     componentName?: string
76     path: string
77     redirect: string
78     children?: AppCustomRouteRecordRaw[]
79     keepAlive?: boolean
80     visible?: boolean
81     parentId?: number
82     alwaysShow?: boolean
83   }
84 }