UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

199 lines (198 loc) 6.44 kB
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)[]; }