UNPKG

@flatbiz/antd

Version:
119 lines (116 loc) 4.64 kB
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 {};