@flatbiz/antd
Version:
59 lines (56 loc) • 1.91 kB
TypeScript
import { TAny, TPlainObject } from '@flatbiz/utils';
import { ReactElement } from 'react';
export type RelationProps = {
/** 左侧Tag+线占用宽度 */
tagLineWidth?: number;
/** 缩进宽度,配合【RelationGroup】使用 */
indentWidth?: number;
/** 连接线上Tag文案 */
tagName?: string;
/** 连接线上Tag颜色 */
tagColor?: string;
/** 连接线上Tag宽度 */
tagWidth?: number;
/** 连接线上Tag点击事件 */
onTagClick?: (tagName?: string) => void;
/**连接线颜色 */
lineColor?: string;
solt1: () => ReactElement;
solt2?: () => ReactElement | null;
className?: string;
onlyOne?: boolean;
onlyNoMainOne?: boolean;
label?: string;
};
export type RelationTreeProps = {
className?: string;
dataSource?: TRelationTreeData;
children: (data: TRelationTreeCustomData, operate: TRelationTreeOperate, extraData?: TPlainObject) => ReactElement;
onChange?: (dataSource?: TRelationTreeData) => void;
relationProps?: Pick<RelationProps, "tagLineWidth" | "indentWidth" | "tagColor" | "tagWidth" | "lineColor">;
onTagClick?: (uid: string, extraData?: TPlainObject) => void;
};
export type TRelationTreeCustomData = TPlainObject & {
uid: string;
};
export type TRelationTreeRelationItem = {
uid: string;
customData?: TRelationTreeCustomData;
children?: TRelationTreeData[];
extraData?: TPlainObject;
};
export type TRelationTreeData = {
uid: string;
tagName: string;
label?: string;
relationList: TRelationTreeRelationItem[];
extraData?: TPlainObject;
};
export type TRelationTreeOperate = {
add: (soruceData: TRelationTreeCustomData, initialData: TRelationTreeRelationItem) => void;
addChildren: (soruceData: TRelationTreeCustomData, initialData: TRelationTreeData) => void;
remove: (uid: string) => void;
onChange: (name: string, value: TAny) => void;
};
export declare const RelationTree: (props: RelationTreeProps) => import("react").JSX.Element;
export {};