@flatbiz/antd
Version:
119 lines (116 loc) • 4.64 kB
TypeScript
import { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';
import { CascaderProps } from 'antd';
import { ReactElement } from 'react';
export type TRequestStatus = "request-init" | "request-progress" | "request-success" | "request-error" | "no-dependencies-params";
export type TRequestStatusProps = {
status?: TRequestStatus;
errorButton?: ReactElement;
messageConfig?: Partial<Record<TRequestStatus, string>>;
loading?: boolean;
};
export type CascaderWrapperServiceConfig = {
params?: TPlainObject;
onRequest?: (params?: TAny) => TAny;
/** 响应数据适配器 */
onRequestResultAdapter?: (respData: TAny) => TPlainObject[];
/** 必填字段设置 */
requiredParamsKeys?: string[];
};
export type CascaderWrapperProps = Omit<CascaderProps<TAny>, "loading" | "notFoundContent" | "options" | "value" | "multiple" | "onChange" | "fieldNames"> & {
/**
* 参数Key映射
* ```
* 1. 默认值:value=value、label=label、children=children
* 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'
* 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效
* 4. 如果没有配置list,可说明接口返回为数组
* ```
*/
fieldNames?: {
list?: string;
label?: string;
value?: string;
children?: string;
};
/**
* 请求服务需求的数据,当设置`selectorList`后无效果
*/
serviceConfig?: CascaderWrapperServiceConfig;
onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;
onSelectorListChange?: (dataList: TPlainObject[]) => void;
/**
* 是否动态加载选项
*/
isDynamicLoad?: boolean;
value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];
onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;
/** 配置数据查询状态描述,比如有依赖字段描述 */
requestMessageConfig?: TRequestStatusProps["messageConfig"];
/**
* 选择数据响应类型(当用户选中后响应数据),默认值:last
* ```
* 1. last 响应选中的最后一级数据
* 2. all 响应选中的多级数据
* ```
*/
responseType?: "last" | "all";
/** 响应数据是否包含label、value */
labelInValue?: boolean;
};
export type CascaderWrapperRefApi = {
getCascaderList: () => TPlainObject[];
};
/**
* 级联选择器包装组件
* ```
* 1. 数据源中 value 不能重复
* 2. 不支持多选
* 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存
* 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据
* 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据
* 6. @flatbiz/antd@5.0.25 删除 modelKey 字段
* 7. serviceConfig.params 参数发生变化时,会重新请求数据
* ```
*/
export declare const CascaderWrapper: import("react").ForwardRefExoticComponent<Omit<CascaderProps<any, string | number | symbol, boolean>, "value" | "loading" | "notFoundContent" | "options" | "multiple" | "onChange" | "fieldNames"> & {
/**
* 参数Key映射
* ```
* 1. 默认值:value=value、label=label、children=children
* 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'
* 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效
* 4. 如果没有配置list,可说明接口返回为数组
* ```
*/
fieldNames?: {
list?: string;
label?: string;
value?: string;
children?: string;
};
/**
* 请求服务需求的数据,当设置`selectorList`后无效果
*/
serviceConfig?: CascaderWrapperServiceConfig;
onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;
onSelectorListChange?: (dataList: TPlainObject[]) => void;
/**
* 是否动态加载选项
*/
isDynamicLoad?: boolean;
value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];
onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;
/** 配置数据查询状态描述,比如有依赖字段描述 */
requestMessageConfig?: TRequestStatusProps["messageConfig"];
/**
* 选择数据响应类型(当用户选中后响应数据),默认值:last
* ```
* 1. last 响应选中的最后一级数据
* 2. all 响应选中的多级数据
* ```
*/
responseType?: "last" | "all";
/** 响应数据是否包含label、value */
labelInValue?: boolean;
} & import("react").RefAttributes<CascaderWrapperRefApi>>;
export {};