UNPKG

@quanxi/ui

Version:

全悉组件库

104 lines (103 loc) 3.52 kB
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 {};