UNPKG

amis

Version:

一种MIS页面生成工具

244 lines (243 loc) 7.99 kB
import React from 'react'; import { RendererProps } from '../factory'; import { SchemaNode, Action, Api } from '../types'; import { ITableStore, IColumn, IRow } from '../store/table'; import Sortable = require('sortablejs'); export interface Column { type: string; [propName: string]: any; } export interface TableProps extends RendererProps { title?: string; header?: SchemaNode; footer?: SchemaNode; actions?: Action[]; className?: string; headerClassName?: string; footerClassName?: string; store: ITableStore; columns?: Array<Column>; tableClassName?: string; source?: string; selectable?: boolean; selected?: Array<any>; valueField?: string; draggable?: boolean; columnsTogglable?: boolean | 'auto'; affixHeader?: boolean; combineNum?: number; footable?: boolean | { expand?: 'first' | 'all' | 'none'; expandAll?: boolean; accordion?: boolean; }; expandConfig?: { expand?: 'first' | 'all' | 'none'; expandAll?: boolean; accordion?: boolean; }; itemCheckableOn?: string; itemDraggableOn?: string; itemActions?: Array<Action>; onSelect: (selectedItems: Array<object>, unSelectedItems: Array<object>) => void; onSave?: (items: Array<object> | object, diff: Array<object> | object, rowIndexes: Array<number> | number, unModifiedItems?: Array<object>, rowOrigins?: Array<object> | object) => void; onSaveOrder?: (moved: Array<object>, items: Array<object>) => void; onQuery: (values: object) => void; buildItemProps?: (item: any, index: number) => any; checkOnItemClick?: boolean; hideCheckToggler?: boolean; } export default class Table extends React.Component<TableProps, object> { static propsList: Array<string>; static defaultProps: Partial<TableProps>; table?: HTMLTableElement; sortable?: Sortable; dragTip?: HTMLElement; affixedTable?: HTMLTableElement; parentNode?: HTMLElement | Window; lastScrollLeft: number; totalWidth: number; totalHeight: number; outterWidth: number; outterHeight: number; unSensor: Function; updateTableInfoLazy: () => void; widths: { [propName: string]: number; }; heights: { [propName: string]: number; }; renderedToolbars: Array<string>; subForms: any; constructor(props: TableProps); static syncRows(store: ITableStore, props: TableProps, prevProps?: TableProps): void; componentWillMount(): void; componentDidMount(): void; componentWillReceiveProps(nextProps: TableProps): void; componentDidUpdate(): void; componentWillUnmount(): void; subFormRef(form: any, x: number, y: number): void; handleAction(e: React.UIEvent<any>, action: Action, ctx: object): void; handleCheck(item: IRow): void; handleCheckAll(): void; handleQuickChange(item: IRow, values: object, saveImmediately?: boolean | any, savePristine?: boolean): void; handleSave(): Promise<void>; handleSaveOrder(): void; syncSelected(): void; reset(): void; bulkUpdate(value: any, items: Array<object>): void; getSelected(): any[]; affixDetect(): void; updateTableInfo(): void; handleOutterScroll(): void; tableRef(ref: HTMLTableElement): void; dragTipRef(ref: any): void; affxiedTableRef(ref: HTMLTableElement): void; initDragging(): void; destroyDragging(): void; getPopOverContainer(): Element | Text | null; handleMouseMove(e: React.MouseEvent<any>): void; handleMouseLeave(): void; draggingTr: HTMLTableRowElement; originIndex: number; draggingSibling: Array<HTMLTableRowElement>; handleDragStart(e: React.DragEvent): void; handleDragOver(e: any): void; handleDrop(): void; handleDragEnd(): void; renderHeading(): JSX.Element | null; renderHeadCell(column: IColumn, props?: any): JSX.Element; renderCell(region: string, column: IColumn, item: IRow, props: any): JSX.Element | null; renderAffixHeader(tableClassName: string): JSX.Element | null; renderFxiedColumns(columns: Array<IColumn>, headerOnly?: boolean, tableClassName?: string): JSX.Element; renderToolbar(toolbar: SchemaNode, index: number): JSX.Element | null | undefined; renderColumnsToggler(config?: any): JSX.Element | null; renderDragToggler(): JSX.Element | null; renderActions(region: string): JSX.Element | null; renderHeader(editable?: boolean): JSX.Element | JSX.Element[] | null; renderFooter(): JSX.Element | JSX.Element[] | null; renderRows(rows: Array<any>): any; renderItemActions(): JSX.Element | null; render(): JSX.Element; } export declare class TableRenderer extends Table { } export interface QuickSearchConfig { type?: string; controls?: any; tabs?: any; fieldSet?: any; [propName: string]: any; } export interface HeadCellSearchProps extends RendererProps { name: string; searchable: boolean | QuickSearchConfig; classPrefix: string; onQuery: (values: object) => void; } export declare class HeadCellSearchDropDown extends React.Component<HeadCellSearchProps, any> { state: { isOpened: boolean; }; constructor(props: HeadCellSearchProps); buildSchema(): "error" | { type: string; wrapperComponent: string; actions: ({ type: string; label: string; actionType: string; primary?: undefined; } | { label: string; type: string; primary: boolean; actionType?: undefined; })[]; controls?: any; tabs?: any; fieldSet?: any; title: string; } | { type: string; wrapperComponent: string; actions: ({ type: string; label: string; actionType: string; primary?: undefined; } | { label: string; type: string; primary: boolean; actionType?: undefined; })[]; title: string; className: any; controls: { type: string; controls?: any; tabs?: any; fieldSet?: any; name: any; placeholder: any; }[]; }; handleClickOutside(): void; open(): void; close(): void; handleAction(e: any, action: Action, ctx: object): void; handleSubmit(values: any): void; render(): JSX.Element; } export interface QuickFilterConfig { options: Array<any>; source: Api; multiple: boolean; [propName: string]: any; } export interface HeadCellFilterProps extends RendererProps { data: any; name: string; filterable: QuickFilterConfig; onQuery: (values: object) => void; } export declare class HeadCellFilterDropDown extends React.Component<HeadCellFilterProps, any> { state: { isOpened: boolean; filterOptions: never[]; }; sourceInvalid: boolean; constructor(props: HeadCellFilterProps); componentDidMount(): void; componentWillReceiveProps(nextProps: HeadCellFilterProps): void; componentDidUpdate(): void; fetchOptions(): void; alterOptions(options: Array<any>): any[]; handleClickOutside(): void; open(): void; close(): void; handleClick(value: string): void; handleCheck(value: string): void; render(): JSX.Element; } export interface TableCellProps extends RendererProps { wrapperComponent?: React.ReactType; column: object; } export declare class TableCell extends React.Component<RendererProps> { static defaultProps: { wrapperComponent: string; }; static propsList: Array<string>; render(): JSX.Element; } export declare class TableCellRenderer extends TableCell { static propsList: string[]; } export declare class FieldRenderer extends TableCell { static defaultProps: { wrapperComponent: string; }; }