/*** * @file:tab标签页面 * @author: linkun.he * @Date: 2019-06-03 10:11:13 */ import { EventEmitter } from '@angular/core'; import { Router } from '@angular/router'; import { SettingsService } from '@ithinkdt/shared/browser'; import { I18NService } from '@ithinkdt/shared/i18n'; import { UrlChangeService } from '@ithinkdt/shared/route'; import { PageData, Pages, ThemeConfig } from '@ithinkdt/theme/models'; import { PageTabService } from '@ithinkdt/theme/page-tab-service'; export declare class PagesTabComponent { private router; private urlChangeSrv; private pageTabSrv; private settingsSrv; private i18nSrv; /** 打开的页面数据存储 */ pages: Pages; /** 收藏的页面 */ collection: PageData[]; /** 是否折叠 */ collapsed: boolean; /** 是否为顶部菜单 */ topMenu: boolean; /** 是否固定收藏按钮 */ fixHeader: boolean; /** 内容区域宽度 */ fixWidth: boolean; /** 是否应该隐藏tab */ shouldHide: boolean; /** tab切换回调 */ sendTabChanges: EventEmitter; /** 收藏变化回调 */ sendColChanges: EventEmitter; findIndexFunc: any; themeConfig: ThemeConfig; constructor(router: Router, urlChangeSrv: UrlChangeService, pageTabSrv: PageTabService, settingsSrv: SettingsService, i18nSrv: I18NService); addTabChangeSub(): void; getRedirectTab(redirectUrl?: string): PageData; /** * @param closedTab 要关闭的tab * @param redirectTab 要打开的tab * @desc 关闭tab */ closeTab(closedTab: PageData, redirectTab?: PageData): void; deleteTabData(willCloseIdx: any, pureRouter: any): void; closeAndCallback(redirectTab: PageData): void; private runHook; private calcWillActiveTabIdx; /** * @param willCloseIdx 将要关闭的tab的index * @param activeInx 当前激活的index * @param openedTabTotal 打开的tab数 * @desc 关闭tab时的情况 * 1. 将要关闭的tab在当前打开的tab之前: willCloseIdx < activeInx, 只需要更新现在激活的tab index,即 this.pages.index--, 无需跳转 * 2. 将要关闭的tab就是当前打开的tab: * 2.1. 若此tab后面无tab,即要关闭的tab是最后一个(willCloseIdx === openedTabTotal - 1), 则打开前面的一个tab, 将 this.pages.index-1, 即激活的tab index 小了1 * 2.2 若此tab后面还有tab, 则打开后面的第一个tab,激活tab的index不变 * 3. 将要关闭的tab在当前打开的tab之后:不需要操作:不需要跳转, 不需要更新激活的tab index */ normalClose(willCloseIdx: any, activeInx: any, openedTabTotal: any): void; getIdxInTab(pageData: PageData): any; openTab(url: any): void; /** 删除收藏 */ deleteCollect(data: PageData): void; /** 收藏&取消收藏 */ changeStatus(data: PageData): void; isHomePage(url: any): boolean; readonly curRouter: string; }