choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
199 lines (198 loc) • 6.44 kB
TypeScript
import React, { Component, CSSProperties, MouseEventHandler, ReactElement, ReactNode } from 'react';
import { TableFilterAdapterProps } from '../../../../lib/configure';
import Field, { Fields } from '../../data-set/Field';
import DataSet from '../../data-set/DataSet';
import Record from '../../data-set/Record';
import { ElementProps } from '../../core/ViewComponent';
import { ButtonProps } from '../../button/Button';
import { ComboFilterBarConfig } from '../Table';
import { TransportProps } from '../../data-set/Transport';
import TableContext, { TableContextValue } from '../TableContext';
export interface TableAction {
name: ReactElement<any> | string;
onClick?: MouseEventHandler<any>;
disabled?: boolean;
children?: TableAction[];
element?: ReactElement<any>;
style?: any;
}
export interface TableComboBarProps extends ElementProps {
dataSet: DataSet;
queryDataSet?: DataSet;
queryFields: ReactElement<any>[];
queryFieldsLimit?: number;
buttons?: ReactElement<ButtonProps>[];
summaryBar?: ReactElement<any>;
comboFilterBar?: ComboFilterBarConfig;
onQuery?: () => void;
onReset?: () => void;
autoQueryAfterReset?: boolean;
fuzzyQuery?: boolean;
fuzzyQueryPlaceholder?: string;
searchCode?: string;
autoQuery?: boolean;
refreshBtn?: boolean;
simpleMode?: boolean;
singleLineMode?: boolean;
inlineSearchRender?: ReactElement<any>;
inlineSearch?: boolean;
tableActions?: TableAction[];
title?: string | ReactNode;
advancedFilter?: ReactNode;
filerMenuAction?: ReactNode;
queryFieldsStyle?: {
[key: string]: CSSProperties;
};
}
export declare const CONDITIONSTATUS = "__CONDITIONSTATUS__";
export declare const SELECTFIELDS = "__SELECTFIELDS__";
export declare const MENUDATASET = "__MENUDATASET__";
export declare const CONDITIONDATASET = "__CONDITIONDATASET__";
export declare const OPTIONDATASET = "__OPTIONDATASET__";
export declare const FILTERMENUDATASET = "__FILTERMENUDATASET__";
export declare const MENURESULT = "__MENURESULT__";
export declare const SEARCHTEXT = "__SEARCHTEXT__";
export declare const SELECTCHANGE = "__SELECTCHANGE__";
export declare const RESETQUERYFIELDS = "__RESETQUERYFIELDS__";
export default class TableComboBar extends Component<TableComboBarProps> {
static get contextType(): typeof TableContext;
static defaultProps: {
queryFieldsLimit: number;
autoQueryAfterReset: boolean;
fuzzyQuery: boolean;
autoQuery: boolean;
refreshBtn: boolean;
buttons: never[];
simpleMode: boolean;
singleLineMode: boolean;
};
context: TableContextValue;
get prefixCls(): string;
get queryFields(): React.ReactElement<any>[];
moreFields: Field[];
/**
* 控制添加筛选下拉显隐
*/
fieldSelectHidden: boolean;
/**
* 搜索值
*/
searchText: string;
shouldLocateData: boolean;
refDropdown: HTMLDivElement | null;
refEditors: Map<string, any>;
originalValue: object;
originalConditionFields: string[];
tempFields: Fields;
constructor(props: any, context: any);
componentDidMount(): void;
componentWillUnmount(): void;
componentWillReceiveProps(nextProps: Readonly<TableComboBarProps>): void;
processDataSetListener(flag: boolean, nextProps?: TableComboBarProps): void;
handleClickOut: (e: any) => void;
handleTableHeight: () => void;
handleResize: () => void;
handleDataSetQuery({ dataSet }: {
dataSet: any;
}): Promise<false | undefined>;
/**
* queryDataSet 查询前校验事件 触发展开动态字段
* @param dataSet 查询DS
* @param result
*/
handleDataSetValidate({ dataSet, result }: {
dataSet: any;
result: any;
}): Promise<void>;
setConditionStatus(value: any, orglValue?: object): void;
setOriginalConditionFields: (code: any) => void;
/**
* 筛选条件更新 触发表格查询
*/
handleDataSetUpdate({ record, name, oldValue, value }: {
record: any;
name: any;
oldValue: any;
value: any;
}): Promise<void>;
/**
* queryDS 新建,初始勾选值
*/
handleDataSetCreate(): void;
/**
* 初始化勾选值、条件字段
* @param props
*/
initConditionFields(props: any): void;
/**
* 初始筛选条数据源状态
*/
initMenuDataSet(): Promise<boolean>;
/**
* tableFilterSuffix 预留自定义区域
*/
renderSuffix(): (JSX.Element | null)[] | null;
getPrefix(): ReactNode;
/**
* 注入 refEditors
* @param element
* @param name
* @param field
*/
createFields(element: any, name: any, field: any): ReactElement;
/**
* 判断查询值是否为空
* @param value
*/
isEmpty(value: any): boolean;
get tableFilterAdapter(): TransportProps | TableFilterAdapterProps | null | undefined;
get initSearchId(): number | null | undefined;
get filterCallback(): ((searchId: string) => void) | undefined;
get filterSave(): boolean | undefined;
get filterSaveCallback(): ((any: any) => void) | undefined;
get filterOptionRenderer(): ((searchId: any, searchIcon: any, text: any) => React.ReactNode) | undefined;
dynamicLimit(): number;
updateQueryFields(): React.ReactElement<any>[];
updateOriginOrderQueryFields(): Field[];
/**
* 勾选
* @param code
* @param record
*/
handleSelect: (code: any, record?: Record | undefined) => void;
/**
* 取消勾选
* @param code
*/
handleUnSelect: (code: any) => void;
/**
* 查询前修改提示及校验定位
*/
modifiedCheckQuery(): Promise<void>;
renderRefreshBtn(): ReactNode;
/**
* 渲染模糊搜索
*/
getFuzzyQuery(): ReactNode;
/**
* 渲染重置按钮
*/
getResetButton(): JSX.Element;
/**
* 筛选头
* fuzzyQuery + quickFilterMenu + resetButton + buttons
*/
getFilterMenu(): ReactNode;
getFilterButton(): ReactNode;
/**
* 查询字段初始顺序
* 排除动态属性影响
*/
get originOrderQueryFields(): Field[];
/**
* 渲染查询条
*/
getQueryBar(): ReactNode;
handleQuery(collapse?: boolean): Promise<void>;
render(): JSX.Element | ({} | undefined)[];
}