import React from 'react'; import { TabsFieldConfig } from '.'; import { Display, FieldConfigs, DisplayProps } from '../common'; export interface ITabsField { children: React.ReactNode[]; } export interface ITabsFieldItem { key: string; label: string; children: React.ReactNode[]; } export interface ITabsFieldItemField { index: number; label: string; required: boolean; status: 'normal' | 'error' | 'loading'; description?: string; message?: string; extra?: string; fieldType: string; children: React.ReactNode; } export interface TabsFieldState { didMount: boolean; extra?: S; } export default class TabsField extends Display> { getALLComponents: (type: any) => typeof Display; formFieldsList: Array | null>>; formFieldsMountedList: Array>; constructor(props: DisplayProps); didMount: () => Promise; get: () => Promise; handleMount: (index: number, formFieldIndex: number) => Promise; handleChange: (index: number, formFieldIndex: number, value: any) => Promise; handleValueSet: (index: number, formFieldIndex: number, path: string, value: any, options?: { noPathCombination?: boolean; }) => Promise; handleValueUnset: (index: number, formFieldIndex: number, path: string, options?: { noPathCombination?: boolean; }) => Promise; handleValueListAppend: (index: number, formFieldIndex: number, path: string, value: any, options?: { noPathCombination?: boolean; }) => Promise; handleValueListSplice: (index: number, formFieldIndex: number, path: string, _index: number, count: number, options?: { noPathCombination?: boolean; }) => Promise; /** * 用于展示子表单组件 * @param _props * @returns */ renderComponent: (_props: ITabsField) => JSX.Element; /** * 用于展示子表单组件中的每一个子项 * @param props * @returns */ renderItemComponent: (props: ITabsFieldItem) => JSX.Element; /** * 用于展示子表单组件中的每一子项中的每一个子表单项组件 * @param props * @returns */ renderItemFieldComponent: (props: ITabsFieldItemField) => JSX.Element; render: () => JSX.Element; }