import { IContext, IPanelTabPanelControllerParams, IParam } from '@/core/interface'; import { PanelDetailController } from './panel-detail-controller'; /** * 面板分页部件控制器 * * @export * @class PanelTabPanelController * @extends {PanelDetailController} */ export class PanelTabPanelController extends PanelDetailController { /** * 被激活分页 * * @type {string} * @memberof PanelTabPanelController */ public activiedPage = ''; /** * 选中激活状态 * * @type {string} * @memberof PanelTabPanelController */ public clickActiviePage = ''; /** * 分页子成员 * * @type {string[]} * @memberof PanelTabPanelController */ public details: string[] = []; /** * 分页子成员细节 * * @type {string[]} * @memberof PanelTabPanelController */ public tabPages: string[] = []; /** * Creates an instance of PanelTabPanelController. * PanelTabPanelController 实例 * * @param {*} [IPanelTabPanelControllerParams] * @memberof PanelTabPanelController */ constructor(opts: IPanelTabPanelControllerParams, context: IContext, viewParams: IParam) { super(opts, context, viewParams); this.details = opts.details; this.tabPages = opts.tabPages; } /** * 加载数据 * * @param {*} context * @param {*} viewParams * @memberof PanelTabPanelController */ public async load(context: any, viewParams: any) { if (!this.parentName) { if (this.type == 'VIEWLAYOUT') { this.data = {}; } else { this.data = this.panel.store.data; } } else { let parentItem = this.panel.store.layoutModelDetails[`${this.parentName}_${this.index}`]; if (!parentItem) { parentItem = this.panel.store.layoutModelDetails[this.parentName]; } if (parentItem) { if ( parentItem.dataRegionType === 'MULTIDATA' && parentItem['data'] && parentItem['data'].length > 0 ) { this.data = parentItem.getData()[this.getIndex()]; } else { this.data = parentItem.getData(); } } } } }