import { HttpClient } from '@angular/common/http'; import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { DatasetAnonymityRepo, DpFsVal, DpValue, EppPortlet, LinkConfig, PortletAnonymityRepo, UtilService } from '@gspwidget/util'; import { Observable } from 'rxjs'; import { GetDataOptions, WidgetComponent } from '../widget/widget.component'; export declare class PortletComponent implements OnInit, OnChanges { private portletAnonymityRepo; private dataResultsetAnonymityRepo; private http; private cd; private utilService; /** * 下面两者任意一个必选 * 哪个变化后有值,就用哪个 */ portletId: string; portlet: EppPortlet; /** * 优先级: * pvs.title > portlet @Input() title > portlet.name */ title: string; /** * 外部塞来的额外配置值,在卡片自身配置之上,再叠加本配置。 * 现用于页面设计器中的卡片配置。 * optional。 */ propValues: {}; /** optional */ portletNamesUsingDemoData: string[]; /** optional */ getCustomizedData: () => Observable; /** optional */ instanceId: string; /** optional */ linkMap: LinkConfig; /** * 初始化时就带入的 dp values,现用于实现弹窗打开部件,同时传入筛选值 * optional */ initDpValues: DpValue[]; /** 筛选条件 */ queryConditions: QueryCondition[]; /** 初始筛选配置 + 值 */ initFilterDpFsValList: DpFsVal[]; /** 发出初始化好的 widgetComponent */ widgetInit: EventEmitter<{}>; /** 获取到 portlet 元数据事件,将 portlet 传出 */ gotPortlet: EventEmitter; widgetCompCreated: EventEmitter; widgetComp: WidgetComponent; /** 通过外部输入计算得到的真正渲染的 portlet */ innerPortlet: EppPortlet; /** 内部配置值 + 外部配置值(高优先级)合并生成的新配置值,此值被塞给 wComp */ resultPropValues: any; constructor(portletAnonymityRepo: PortletAnonymityRepo, dataResultsetAnonymityRepo: DatasetAnonymityRepo, http: HttpClient, cd: ChangeDetectorRef, utilService: UtilService); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; inited: any; initByPortletOrId(portletId: string, portlet: EppPortlet): void; /** * 部件取数逻辑: * - 有外部手工数据:用手工数据 * - 无手工数据 * - 数据集 * - 配了:取真数据 * - 没配 * - 名字带着演示字样:取演示数据 * - 名字未带演示字样:给空数据 * - 静态数据:给静态数据 * * 打平: * 1. 有外部手工数据 * 2. 数据集 + 配了 * 3. 数据集 + 没配 + 名字带演示 * 4. 数据集 + 没配 + 名字不带演示 * 5. 静态数据 * TODO: 考虑此方法与 portletEditorComponent.loadNSetData 的关系? * @param getDataOpts * @returns */ getData: (getDataOpts: GetDataOptions) => Observable; getDataWithDims: () => void; handleWidgetInit(): void; handleWidgetCompCreated(params: any): void; /** 获取演示数据 */ getDemoData(): Observable; getHomeConfig(): Observable; cleanAllLink(): void; /** 没用上 */ setPropValues(propName: string, value: any): void; /** * merge 出 resultPropValues * 外部值有变化时、内部值加载成功时,都尝试调用此方法,更新合并配置值。 */ updateResultPropValues(): void; } export declare class QueryCondition { id: string; leftBrackets: string; fieldCode: string; fieldName: string; name: string; compareType: CompareType; valueType: ValueType; /** * 值 * 该属性为IValue接口,根据不同的控件类型有不同的实现类:具体如下: * 1. 文本类型:TextValue * 2. 下拉列表:DropDownListValue * 3. 日期区间:DateRangeValue * 4. 数字区间:NumberRangeValue * 5. 帮助类型:SmartHelpValue */ value: IValue; rightBrackets: string; relationType: RelationType; /** * 控件类型,目前包括文本类型,下拉列表,日期区间,数字区间,帮助类型 * 控件类型为IControl接口,根据不同的控件类型对应不同的实现类,具体如下: * 1. 文本类型:TextControl * 2. 下拉列表:DropDownListControl * 3. 日期区间:DateRangeControl * 4. 数字区间:NumberRangeControl * 5. 帮助类型:SmartHelpContol */ control: IControl; } export declare enum CompareType { Equal = 0, GreaterThan = 2, GreaterThanOrEqual = 3, LessThan = 4, LessThanOrEqual = 5, BetWeen = 6 } export declare enum ValueType { Value = 0, SmartHelp = 1, Enum = 2, Express = 3 } export interface IValue { getControlType(): ControlType; getOriginalValue(): any; setOriginalValue(value: any): void; clearValue(): void; isEmpty(): boolean; } export declare enum RelationType { And = 0, Or = 1 } export interface IControl { /** * 是否是展示在扩展区域内的 */ isExtend: boolean; required: boolean; /** 日期需要增加类型比较 */ compareType?: CompareType; /** * 获取控件类型 */ getControlType(): ControlType; } export declare enum ControlType { Text = 0, Help = 1, DropDown = 2, DateRange = 3, NumberRange = 4, Search = 5, Date = 6, CheckboxGroup = 7, DateRangeTime = 8 }