choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
119 lines (118 loc) • 3.16 kB
TypeScript
import React, { Component, ReactElement, ReactNode } from 'react';
import Field from '../../data-set/Field';
import DataSet from '../../data-set';
import { RecordStatus } from '../../data-set/enum';
import { ElementProps } from '../../core/ViewComponent';
import { DynamicFilterBarConfig } from '../Table.d';
export interface TableDynamicFilterBarProps extends ElementProps {
dataSet: DataSet;
queryDataSet?: DataSet;
queryFields: ReactElement<any>[];
queryFieldsLimit?: number;
dynamicFilterBar?: DynamicFilterBarConfig;
onQuery?: (props: object) => void;
onReset?: () => void;
}
export default class TableDynamicFilterBar extends Component<TableDynamicFilterBarProps> {
static contextType: React.Context<import("../TableContext").Props>;
static defaultProps: {
prefixCls: string;
queryFieldsLimit: number;
};
moreFields: Field[];
/**
* 控制添加筛选下拉显隐
*/
fieldSelectHidden: boolean;
/**
* 勾选字段
*/
selectFields: string[];
/**
* 收起/展开
*/
expand: boolean;
/**
* 搜索值
*/
searchText: string;
/**
* 条件状态
*/
conditionStatus: RecordStatus;
refDropdown: HTMLDivElement | null;
refFilterWrapper: HTMLDivElement | null;
refEditors: Map<string, any>;
originalValue: object;
originalConditionKeys: string[];
enterNum: number;
constructor(props: any, context: any);
componentDidMount(): void;
componentWillUnmount(): void;
processDataSetListener(flag: boolean): void;
handleClickOut: (e: any) => void;
/**
* queryDataSet 查询前校验事件 触发展开动态字段
* @param dataSet 查询DS
* @param result
*/
handleDataSetValidate({ dataSet, result }: {
dataSet: any;
result: any;
}): Promise<void>;
setConditionStatus(value: any, orglValue?: object): void;
/**
* 筛选条件更新 触发表格查询
*/
handleDataSetUpdate({ record }: {
record: any;
}): void;
/**
* queryDS 新建,初始勾选值
*/
handleDataSetCreate({ dataSet, record }: {
dataSet: any;
record: any;
}): void;
/**
* 注入 onEnterDown 事件
* @param element
* @param name
*/
createFields(element: any, name: any): ReactElement;
/**
* 判断查询值是否为空
* @param value
*/
isEmpty(value: any): boolean;
/**
* 勾选
* @param code
*/
handleSelect: (code: any) => void;
/**
* 取消勾选
* @param code
*/
handleUnSelect: (code: any) => void;
/**
* 渲染展开逻辑
* @param hidden 是否隐藏全部
*/
getExpandNode(hidden: any): ReactNode;
/**
* 获取筛选下拉
*/
getFilterMenu(): ReactNode;
/**
* tableFilterSuffix 预留自定义区域
*/
renderSuffix(): JSX.Element | null;
renderPrefix(): JSX.Element | null;
/**
* 渲染查询条
*/
getQueryBar(): ReactNode;
handleQuery(collapse?: boolean): void;
render(): React.ReactNode;
}