linkmore-design
Version:
🌈 🚀lm组件库。🚀
164 lines (163 loc) • 5.23 kB
TypeScript
/// <reference types="react" />
import type { FormInstance } from '../form';
/** 字段类型 */
export declare type FieldType = 'string' | 'integer' | 'double' | 'date' | 'datetime' | 'boolean' | 'guid' | 'json';
/** 组件类型: 目前所用到的组件 */
export declare type ComponentType = 'input' | 'select' | 'checkbox' | 'cascader' | 'date' | 'range' | 'number' | 'code' | 'numberRange' | 'dateRange';
/** 关系符 */
declare type OperatorType = 'equal' | 'not_equal' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'greater_than' | 'greater_than_or_equal' | 'between' | 'less_than' | 'less_than_or_equal' | 'empty' | 'not_empty';
/** 字段来源类型 */
export declare enum FieldValueSourceType {
None = 0,
Dictionary = 1,
Department = 2,
Role = 3,
Enum = 4,
User = 5,
Supplier = 6,
Customer = 7,
UserGroup = 8,
Tag = 9,
WarehouseArchives = 10
}
/** 查询的类型, 用于回填数据到指定位置 */
export declare enum QUERY_TYPE {
/** 回填到高级筛选 */
COMPLEX = 1,
/** 回填到基础筛选 */
BASIC = 2
}
/** 弹窗类型枚举 */
export declare enum MODAL_TYPE_ENUM {
RENAME = "rename",
COVER = "cover",
APPEND = "append"
}
declare type Literal<T> = T | (string & {});
declare type LiteralUnion<T, U = string> = T extends U ? Literal<T> : U;
export declare type Condition = {
relation: LiteralUnion<'and' | 'or'>;
operator: LiteralUnion<OperatorType>;
value: any;
seq: number;
fieldName: string;
fieldDisplayName: string;
fieldType: LiteralUnion<FieldType>;
fieldValueSource: FieldValueSourceType | (number & {});
};
export declare type ConditionGroup = {
queryType: QUERY_TYPE;
relation: string;
conditions: Condition[];
};
/** 自定义筛选选项 */
export declare type CustomOptionsProps = {
label: string;
value: string | number;
relation?: string;
data: ConditionGroup[];
default?: boolean;
};
export interface SearchConfigProps {
relation: string;
fieldType: string;
operator: string;
}
export declare enum SOURCE_ENUM {
TITLE = "title",
FIELD_NAME = "field",
FIELD_TYPE = "valueType",
OPERATOR = "operator",
RELATION = "relation",
TYPE = "type",
VALUE = "value",
OPTIONS = "data"
}
export declare type TData = {
type: string;
title?: string;
colon?: string | boolean;
show?: boolean;
value?: any;
placeholder?: string;
fieldNames?: Record<string, any>;
multiple?: boolean;
field: string;
valueType: string;
operator: string;
relation: string;
data?: any[];
showSearch?: boolean;
showAllChecked?: boolean;
picker?: string;
onOpenChange: (open: boolean) => void;
/** @description 设置依赖字段 */
dependencies?: string[];
};
/** 处理后的DataSource结构数据 */
export declare type DataSourceProps = {
type: string;
title?: string;
colon?: string | boolean;
show?: boolean;
value?: any;
placeholder?: string;
fieldNames?: Record<string, any>;
multiple?: boolean;
fieldName?: string;
fieldType?: string;
operator?: string;
relation?: string;
options?: any[];
picker?: string;
onOpenChange?: (open: boolean) => void;
};
export interface AdvancedFilterProps {
/** 配置 Item 的 colon 的默认值 表示是否显示 title 后面的冒号 */
colon?: boolean | string;
/** 数据源 */
dataSource?: Array<Partial<TData>>;
/** 是否启用模糊查询 @default true */
enableSearch?: boolean;
/** 是否启用基础筛选 @default true */
enableBasic?: boolean;
/** 是否启用高级筛选 @default false */
enableComplex?: boolean;
/** 是否启用自定义筛选 @default false */
enableCustom?: boolean;
/** 自定义筛选选项 */
customOptions?: Array<Partial<CustomOptionsProps>>;
/** 是否展示一件清空 @default true */
enableClear?: boolean;
/**
* 是否自动将筛选结构值转换为字符串
* @default true
* @deprecated 此字段作废
*/
enableAutoString?: boolean;
/** 尺寸 @default middle */
size?: LiteralUnion<'small' | 'middle' | 'large'>;
/** 搜索的key值 @default search */
searchKey?: string | string[];
/** 搜索占位符 */
placeholder?: string;
/** 模糊搜索配置 */
searchConfig?: Partial<Pick<Condition, 'relation' | 'operator' | 'fieldType'>>;
searchClassName?: string;
/** 自定义一级筛选Dom */
customRender?: (param?: any) => React.ReactNode;
ref?: React.Ref<FormInstance>;
/** 筛选改变事件 */
onChange?: (x?: Record<string, any>) => any;
/** 保存事件 */
onSave?: (resultList: Record<string, any>[], changedValue: Record<string, any>, type: MODAL_TYPE_ENUM) => any;
/** 保存前置事件, 用于处理返回值 */
beforeSave?: (changedValue: Record<string, any>, type: MODAL_TYPE_ENUM) => any;
/** 筛选值变化时触发 */
onValuesChange?: (changedValues: any, values: any) => any;
/** 一键清空时触发 */
onClearChange?: () => void;
locale?: any;
[x: string]: any;
}
export {};