69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
|
import type { RouteRecordRaw } from 'vue-router'
|
|||
|
import type { _RouteLocationBase } from 'vue-router'
|
|||
|
import { RouteRecordNormalized } from 'vue-router'
|
|||
|
|
|||
|
/**
|
|||
|
* 路由记录
|
|||
|
*/
|
|||
|
declare interface VabRouteRecord
|
|||
|
extends Omit<RouteRecordRaw, 'name' | 'meta' | 'children'> {
|
|||
|
name: string
|
|||
|
meta: VabRouteMeta
|
|||
|
children?: VabRouteRecord[]
|
|||
|
childrenPathList?: string[]
|
|||
|
parentIcon?: string
|
|||
|
redirect?: string
|
|||
|
//页面按钮
|
|||
|
btns?: any
|
|||
|
}
|
|||
|
|
|||
|
declare interface VabRouteRecordRaw
|
|||
|
extends Omit<RouteRecordNormalized, 'meta'> {
|
|||
|
meta: VabRouteMeta
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* useRoute()
|
|||
|
*/
|
|||
|
declare interface VabRoute extends Omit<_RouteLocationBase, 'meta'> {
|
|||
|
meta: VabRouteMeta
|
|||
|
matched: VabRouteRecordRaw[]
|
|||
|
parentIcon?: string
|
|||
|
}
|
|||
|
|
|||
|
declare interface VabRouteMeta {
|
|||
|
// 高亮指定菜单
|
|||
|
activeMenu?: string
|
|||
|
// badge小标签(只支持子级)
|
|||
|
badge?: string
|
|||
|
// 是否隐藏面包屑
|
|||
|
breadcrumbHidden?: boolean
|
|||
|
// 是否显示小圆点
|
|||
|
dot?: boolean
|
|||
|
// 动态传参路由是否新开标签页
|
|||
|
dynamicNewTab?: boolean
|
|||
|
// 权限
|
|||
|
guard?: string[] | GuardType
|
|||
|
// 是否显示在菜单中显示隐藏路由(默认值:false)
|
|||
|
hidden?: boolean
|
|||
|
// 图标
|
|||
|
icon?: string
|
|||
|
// 是否是自定义svg图标(默认值:false)
|
|||
|
// 如果设置true,那么需要把你的svg拷贝到icon下,然后icon字段配置上你的图标名
|
|||
|
isCustomSvg?: boolean
|
|||
|
// 是否显示在菜单中显示隐藏一级路由(默认值:true)
|
|||
|
levelHidden?: boolean
|
|||
|
// 当前路由是否可关闭多标签页,同上
|
|||
|
noClosable?: boolean
|
|||
|
// 是否隐藏侧边栏
|
|||
|
noColumn?: boolean
|
|||
|
// 当前路由是否不缓存(默认值:false)
|
|||
|
noKeepAlive?: boolean
|
|||
|
// 当前路由是否不显示多标签页
|
|||
|
tabHidden?: boolean
|
|||
|
// 在新窗口中打开
|
|||
|
target?: '_blank' | false
|
|||
|
// 菜单、面包屑、多标签页显示的名称
|
|||
|
title?: string
|
|||
|
}
|