import { ComponentFactoryResolver, Injector } from '@angular/core'; import { GSPMetadataService } from '@gsp-lcm/metadata-selector'; import { BsModalService } from '@farris/ui-modal'; import { Observable, Subject } from 'rxjs'; import { IdService } from '@farris/ui-common'; import { HttpClient } from '@angular/common/http'; import { NotifyService } from '@farris/ui-notify'; import { LoadingService } from '@farris/ui-loading'; import { GSPMetadataRTService } from '@gsp-lcm/metadatart-selector'; import { DomService, FormBasicService } from '@farris/designer-services'; import { ControlService } from '../../../../../service/control.service'; import { MessagerService } from '@farris/ui-messager'; /** * 多视图容器管理类 */ export declare class MultiViewManageService { private controlService; private domService; private resolver; private modalService; private injector; private formBasicService; private idService; private metadataService; private http; private notifyService; private loadingService; private metadataRtService; private msgService; /** 支持的视图类型 */ viewTypeOptions: any[]; /** 视图项绑定的数据源 */ dataSource: string; /** 主表实体label */ mainEntityLabel: string; /** 视图项绑定的数据源信息 */ bindEntityInfo: { id: string; code: string; name: string; bindTo: string; }; /** 临时记录要追加的组件,在窗口点击确定时再向DOM中添加 */ createdComponent: {}; /** 新加的交叉表视图id集合---用于追加交叉表视图后,保存表单时向VO元数据追加查询相关动作 */ newCrosstabViewIds: any[]; private localeService; private viewTypesLangData; constructor(controlService: ControlService, domService: DomService, resolver: ComponentFactoryResolver, modalService: BsModalService, injector: Injector, formBasicService: FormBasicService, idService: IdService, metadataService: GSPMetadataService, http: HttpClient, notifyService: NotifyService, loadingService: LoadingService, metadataRtService: GSPMetadataRTService, msgService: MessagerService); initViewTypes(dataSource: string, currentViewItems?: any[]): void; createMultiViewItem(viewType: string, currentViewItems?: any[]): Observable; private createListViewComponent; private createAppointmentCalendarComponent; /** * 创建左边ListView , 右边外部组件的容器 * @param radomNum 随机码 */ private createGridSplitMultiView; /** * 移除记录的追加组件 * @param selecteItem 选中的视图节点 */ removeItem(selecteItem: any): void; /** * 图表类视图,弹出选择QO的窗口 */ showSelectQoModal(randomNum: string, viewType: string): Observable; /** * 创建图表视图:QdpFramework--Charts控件 * @param $event 选择的qo元数据 * @param radomNum 随机码 */ private createChartsView; /** * 创建交叉表视图:QdpFramework--Spreadsheet控件 * @param $event 选择的qo元数据 * @param radomNum 随机码 */ createCrosstabView($event: any, radomNum: string): Observable; /** * 获取VO元数据配置的java configId,不能直接按照表单的nameSpace拼接。 */ getVoJavaConfigId(voMetadataId: string, voCode: string): Subject; /** * 多视图添加交叉表视图场景:安装qdp相关maven包;向VO元数据追加交叉表查询相关的动作(暂不同步eapi) */ addVOActionsForCrosstabView(): void; /** * 安装qdp元数据包 * @param packageNames 待安装的元数据包 */ checkAndRestoreMetadataPackages(): Observable; /** * 根据数据源dataSource,获取实体信息,以及用于viewModel的bindTo属性 */ private getEntityInfoDataSource; /** * 视图变更后,更新viewChange图标组件 * @param latestViews 变更后的视图组 * @param viewChangeBar 视图切换控件路径 * @param parentContainer 多视图父容器 * @param componentId 父容器所在的组件id * (TODO:页头有header容器和header组件两种可能) */ updateViewChangeButtons(latestViews: any[], viewChangeBar: any, parentContainer: any, componentId: string): void; }