choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
103 lines (102 loc) • 3.86 kB
TypeScript
import React, { Component, MouseEventHandler, ReactElement, ReactNode } from 'react';
import { TableButtonType } from '../enum';
import { Buttons, ComboFilterBarConfig, DynamicFilterBarConfig, SummaryBar, TableQueryBarHookProps } from '../Table';
import { ButtonProps } from '../../button/Button';
import { DataSetExportStatus } from '../../data-set/enum';
import TableContext, { TableContextValue } from '../TableContext';
import DataSet from '../../data-set';
import { PaginationProps } from '../../pagination/Pagination';
export interface TableQueryBarProps {
buttons?: Buttons[];
queryFields?: {
[key: string]: ReactElement<any>;
};
queryFieldsLimit?: number;
buttonsLimit?: number;
summaryFieldsLimit?: number;
summaryBarFieldWidth?: number;
showQueryBar?: boolean;
pagination?: ReactElement<PaginationProps>;
summaryBar?: SummaryBar[];
dynamicFilterBar?: DynamicFilterBarConfig;
filterBarFieldName?: string;
filterBarPlaceholder?: string;
searchCode?: string;
clientExportQuantity?: number;
onQuery?: () => void;
onReset?: () => void;
treeQueryExpanded?: boolean;
comboFilterBar?: ComboFilterBarConfig;
}
export default class TableQueryBar extends Component<TableQueryBarProps> {
static displayName: string;
static get contextType(): typeof TableContext;
context: TableContextValue;
exportModal: any;
exportDataSet: DataSet;
exportData: any;
queryFieldsElement: ReactElement<any>[];
/**
* 多行汇总
*/
moreSummary: ReactElement[] | undefined;
static defaultProps: {
summaryBarFieldWidth: number;
};
get showQueryBar(): boolean;
componentWillUnmount(): void;
handleButtonCreate(): void;
handleButtonSubmit(): Promise<any>;
handleButtonDelete(): Promise<any>;
handleButtonRemove(): void;
handleButtonReset(): void;
handleQueryReset(): void;
handleExpandAll(): void;
handleCollapseAll(): void;
handleChangeExportStrategy(value: any): void;
handleButtonExport(): Promise<void>;
handleQuery(): Promise<any>;
handleExport(): boolean;
handleExportButton(data: DataSetExportStatus, filename?: string): void;
getButtonProps(type: TableButtonType): (ButtonProps & {
onClick: MouseEventHandler<any>;
children?: ReactNode;
}) | undefined;
/**
* 渲染表头汇总列
* @param summary
*/
renderSummary(summary?: SummaryBar[]): ReactElement[] | undefined;
/**
* 点击汇总条展开收起
* @param summary
*/
openMore: (summary?: SummaryBar[] | undefined) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>[] | undefined;
/**
* 汇总条展开收起按钮
* @param summary
*/
getMoreSummaryButton(summary: SummaryBar[]): JSX.Element | undefined;
/**
* 渲染汇总条
*/
getSummaryBar(): ReactElement<any> | undefined;
/**
* buttons 大于 buttonsLimits 放入下拉
* @param buttonsLimits
* @param hasCombineSort
*/
getMoreButton(buttonsLimits: number, hasCombineSort?: boolean): ReactElement;
getButtons(): ReactElement<ButtonProps>[];
getQueryFields(): ReactElement<any>[];
getSortableFieldNames(): string[];
renderToolBar(props: TableQueryBarHookProps): JSX.Element;
renderFilterBar(props: TableQueryBarHookProps): JSX.Element;
renderAdvancedQueryBar(props: TableQueryBarHookProps): JSX.Element;
renderProfessionalBar(props: TableQueryBarHookProps): JSX.Element;
renderDynamicFilterBar(props: TableQueryBarHookProps): JSX.Element;
renderComboBar(props: TableQueryBarHookProps): JSX.Element;
expandTree(): void;
collapseTree(): void;
render(): {} | null | undefined;
}