@quanxi/ui
Version:
全悉组件库
104 lines (103 loc) • 3.52 kB
TypeScript
import type { FC } from "react";
import type { CascaderProps } from "../Cascader/index";
import React from "react";
type QFWithOperatorItems = Array<QFWithOperatorItem>;
type QFWithOperatorItemValidate = (value?: string | number | boolean | Array<string | number | boolean>) => {
isValid: boolean;
errmsg?: string;
} | undefined;
export type QFWithOperatorItemType = "string" | "number" | "time_range" | "datetime" | "cascader" | "multi_cascader" | "select" | "multi_select" | "tree_select" | "multi_tree_select" | "custom";
export type OperatorType = "=" | "!=" | "like" | "not like" | ">" | "<" | "in" | "not_in" | "<>" | "><" | "regex" | "not regex";
export type QFWithOperatorItem = {
key: string;
label: React.ReactNode;
type: QFWithOperatorItemType;
placeholder?: string;
defaultVisible?: boolean;
options?: QFWithOperatorItemOptionsType;
maxTagCount?: number | "responsive";
showSearch?: boolean;
inputWidth?: number;
width?: number;
minWidth?: number;
flex?: number;
validate?: QFWithOperatorItemValidate;
operators?: OperatorType[];
hideOperators?: boolean;
meta?: {
cascaderChangeOnSelect?: boolean;
cascaderLoadData?: (selectOptions: CascaderProps["options"]) => QFWithOperatorItemOptions;
selectWithSearch?: boolean;
treeNodeLabelProp?: string;
treeNodeFilterProp?: string;
defaultOperator?: string;
operatorOptions?: OperatorType[];
dropdownClassName?: string;
};
allowClear?: boolean;
disabled?: boolean;
minNum?: number;
maxNum?: number;
hint?: React.ReactNode;
showHighLight?: boolean;
} | {
key: string;
label: React.ReactNode;
type: "custom";
placeholder?: string;
maxTagCount?: number;
width?: number;
minWidth?: number;
flex?: number;
defaultVisible?: boolean;
options?: QFWithOperatorItemOptionsType;
validate?: QFWithOperatorItemValidate;
operators?: OperatorType[];
hideOperators?: boolean;
meta?: {
defaultOperator?: string;
operatorOptions?: OperatorType[];
};
component: FC<{
value: any;
placeholder?: string;
options?: QFWithOperatorItemOptionsType;
onChange: (value?: any, oper?: string, visible?: boolean) => void;
}>;
valueLabel?: (value: any) => undefined | string | Array<string>;
disabled?: boolean;
hint?: React.ReactNode;
showHighLight?: boolean;
};
export type QFWithOperatorItemOptionsType = ((searchText?: string, selectedValue?: Array<string | number>) => Promise<QFWithOperatorItemOptions>) | QFWithOperatorItemOptions;
export type QFWithOperatorItemOptions = Array<{
label: string;
value: string | number;
children?: QFWithOperatorItemOptions;
}>;
export interface QFWithOperatorProps<VALUE extends Record<string, any>> {
items: QFWithOperatorItems;
labelStyle?: "out" | "in";
labelClassName?: string;
value?: VALUE;
shadow?: boolean;
searchKey?: string;
moreButton?: boolean;
moreOpen?: boolean;
moreOpenChange?: (value: boolean) => void;
moreButtonClassName?: string;
tailSlot?: React.ReactNode;
children?: React.ReactNode;
onChange?: (value: VALUE, validate: boolean) => void;
hideClassName?: string;
columns?: number;
labelWidth?: number;
inputWidth?: number;
className?: string;
showHighLight?: boolean;
}
export declare enum LABEL_STYLE {
"外部" = "out",
"内部" = "in"
}
export {};