import { ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router'; /** * 复用匹配模式 */ export enum ReuseTabMatchMode { /** * (推荐)按菜单 `Menu` 配置 * * 可复用: * - `{ text:'Dashboard' }` * - `{ text:'Dashboard', reuse: true }` * * 不可复用: * - `{ text:'Dashboard', reuse: false }` */ Menu, /** * 按菜单 `Menu` 强制配置 * * 可复用: * - `{ text:'Dashboard', reuse: true }` * * 不可复用: * - `{ text:'Dashboard' }` * - `{ text:'Dashboard', reuse: false }` */ MenuForce, /** * 对所有路由有效,可以配合 `excludes` 过滤无须复用路由 */ URL } export interface ReuseItem { /** * URL * * @type {string} * @memberof ReuseItem */ url: string; /** * 标题 * * @type {string} * @memberof ReuseItem */ title: string; /** * 是否可关闭 * * @type {boolean} * @memberof ReuseItem */ closable: boolean; /** * 索引 * * @type {number} * @memberof ReuseItem */ index: number; /** * 是否激活 * * @type {boolean} * @memberof ReuseItem */ active: boolean; last: boolean; } export interface ReuseTitle { text: string; i18n?: string; } export interface ReuseTabCached { title: ReuseTitle; url: string; /** 是否可关闭,默认:`true` */ closable?: boolean; route: ActivatedRouteSnapshot; handle: DetachedRouteHandle; } export interface ReuseTabNotify { /** 事件类型 */ active: string; [key: string]: any; }