@yuntijs/ui
Version:
☁️ Yunti UI - an open-source UI component library for building Cloud Native web apps
54 lines (53 loc) • 2.73 kB
TypeScript
import type { FormItemProps, TableColumnProps } from 'antd';
import type { FormListProps as AntFormListProps } from 'antd/es/form';
import React from 'react';
import { CollapseGroupProps } from '../../CollapseGroup';
import { FormCollapseListOperation } from './hooks';
import { FieldPath } from './utils';
interface FormCollapseListColumnItem extends Omit<FormItemProps, 'dependencies' | 'rules' | 'tooltip' | 'labelAlign' | 'labelCol' | 'colon' | 'children'> {
render?: (fieldName: number, index: number, operation: FormCollapseListOperation,
/** 当前 item 的 path */
fieldPath: FieldPath) => React.ReactNode;
rules?: FormItemProps['rules'] | ((parentFieldPath: FieldPath, index: number) => FormItemProps['rules']);
dependencies?: FormItemProps['dependencies'] | ((parentFieldPath: FieldPath, index: number) => FormItemProps['dependencies']);
}
export interface FormListOperationAddParams {
defaultValue?: any;
insertIndex?: number;
}
export interface FormCollapseListColumn extends FormCollapseListColumnItem, Pick<TableColumnProps<any>, 'align' | 'ellipsis' | 'fixed' | 'responsive' | 'shouldCellUpdate' | 'width'> {
}
export interface FormCollapseListProps extends Omit<AntFormListProps, 'name' | 'children'>, Pick<CollapseGroupProps, 'className' | 'collapsible' | 'extra' | 'expandIcon' | 'icon' | 'title' | 'variant' | 'defaultActive' | 'style'> {
/** 字段名 */
name?: FormItemProps['name'];
/** 表单列为空时展示的空内容 */
empty?: React.ReactNode;
/** 表单列配置 */
columns?: FormCollapseListColumn[];
/** 新增表单项的参数 */
addParams?: FormListOperationAddParams | (() => FormListOperationAddParams);
/** 是否禁用 */
disabled?: boolean;
/** 只读模式 */
readOnly?: boolean;
/** 默认添加一个 field */
addOneFieldDefault?: boolean;
/** 当只有一个 field 时禁用移除 */
disableRemoveWhenOneField?: boolean;
/** 限制最大 fields 数量 */
maxFileds?: number;
/** 删除时调用,返回 false 时取消删除 */
onRemove?: (values: any) => boolean | void | Promise<boolean | void>;
/** 是否启用表单项删除按钮,默认为启用 */
fieldRemoveButton?: boolean;
/** [树形数据] 初始时,是否展开所有行 */
defaultExpandAllRows?: boolean;
/** [树形数据] 每层缩进的宽度,以 px 为单位, 默认为 16 */
indentSize?: number;
/** [树形数据] 指定树形结构的列名,默认为 children */
childrenColumnName?: string;
/** 表格行是否开启 hover 交互, 默认为启用 */
rowHoverable?: boolean;
}
export declare const FormCollapseList: React.FC<FormCollapseListProps>;
export {};