import type { RouteRecordRaw } from 'vue-router'; import { RoleEnum } from '/@/enums/roleEnum'; import Component from '/@/components/types'; export interface RouteMeta { // title title: string; // Whether to ignore permissions ignoreAuth?: boolean; // role info roles?: RoleEnum[]; // Whether not to cache ignoreKeepAlive?: boolean; // Is it fixed on tab affix?: boolean; // icon on tab icon?: string; // Jump address // current page transition transitionName?: string; // Whether the route has been dynamically added hideBreadcrumb?: boolean; // Carrying parameters carryParam?: boolean; // Used internally to mark single-level menus single?: boolean; } export interface AppRouteRecordRaw extends Omit { name: string; meta: RouteMeta; component?: Component; components?: Component; children?: AppRouteRecordRaw[]; props?: Record; fullPath?: string; } export interface MenuTag { type?: 'primary' | 'error' | 'warn' | 'success'; content?: string; dot?: boolean; } export interface Menu { name: string; icon?: string; path: string; disabled?: boolean; children?: Menu[]; orderNo?: number; roles?: RoleEnum[]; meta?: Partial; tag?: MenuTag; } export interface MenuModule { orderNo?: number; menu: Menu; } // interface RouteModule { // layout: AppRouteRecordRaw; // routes: AppRouteRecordRaw[]; // children?: AppRouteRecordRaw[]; // component?: Component; // } // export type AppRouteModule = RouteModule | AppRouteRecordRaw; export type AppRouteModule = AppRouteRecordRaw;