UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

164 lines (163 loc) 5.23 kB
/// <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 {};