types.ts
930 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import type { RouteRecordRaw, RouteMeta } from 'vue-router'
import { defineComponent } from 'vue'
declare type Recordable<T = any> = Record<string, T>
export type Component<T extends any = any> =
  | ReturnType<typeof defineComponent>
  | (() => Promise<typeof import('*.vue')>)
  | (() => Promise<T>)
// @ts-ignore
export interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
  name: string
  meta: RouteMeta
  component?: Component | string
  components?: Component
  children?: AppRouteRecordRaw[]
  props?: Recordable
  fullPath?: string
}
export interface Meta {
  // 名称
  title: string
  // 是否忽略权限
  ignoreAuth?: boolean
  permissions?: string[]
  // 是否不缓存
  noKeepAlive?: boolean
  // 是否固定在tab上
  affix?: boolean
  // tab上的图标
  icon?: string
  // 跳转地址
  frameSrc?: string
  // 外链跳转地址
  externalLink?: string
  //隐藏
  hidden?: boolean
}