沙钢智慧能源系统前端代码
houzhongjian
2024-10-09 314507f8ddadd9c66e98d260c3b2a5dad1a04015
提交 | 用户 | 时间
314507 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
18     icon: 'svg-name'          设置该路由的图标
19
20     noCache: true             如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
21
22     breadcrumb: false         如果设置为false,则不会在breadcrumb面包屑中显示(默认 true)
23
24     affix: true               如果设置为true,则会一直固定在tag项中(默认 false)
25
26     noTagsView: true          如果设置为true,则不会出现在tag中(默认 false)
27
28     activeMenu: '/home'  显示高亮的路由路径
29
30     followAuth: '/home'  跟随哪个路由进行权限过滤
31
32     canTo: true               设置为true即使hidden为true,也依然可以进行路由跳转(默认 false)
33   }
34 **/
35 declare module 'vue-router' {
36   interface RouteMeta extends Record<string | number | symbol, unknown> {
37     hidden?: boolean
38     alwaysShow?: boolean
39     title?: string
40     icon?: string
41     noCache?: boolean
42     breadcrumb?: boolean
43     affix?: boolean
44     activeMenu?: string
45     noTagsView?: boolean
46     followAuth?: string
47     canTo?: boolean
48   }
49 }
50
51 type Component<T = any> =
52   | ReturnType<typeof defineComponent>
53   | (() => Promise<typeof import('*.vue')>)
54   | (() => Promise<T>)
55
56 declare global {
57   interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
58     name: string
59     meta: RouteMeta
60     component?: Component | string
61     children?: AppRouteRecordRaw[]
62     props?: Recordable
63     fullPath?: string
64     keepAlive?: boolean
65   }
66
67   interface AppCustomRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
68     icon: any
69     name: string
70     meta: RouteMeta
71     component: string
72     componentName?: string
73     path: string
74     redirect: string
75     children?: AppCustomRouteRecordRaw[]
76     keepAlive?: boolean
77     visible?: boolean
78     parentId?: number
79     alwaysShow?: boolean
80   }
81 }