import { TextFieldProps } from './components/TextField'; import { MoneyFieldProps } from './components/MoneyField'; import { ImageFieldProps } from './components/ImageField'; import { DateFieldProps } from './components/DateField'; import { IndexFieldProps } from './components/IndexField'; import { ProgressFieldProps } from './components/ProgressField'; import { PercentFieldProps } from './components/PercentField'; import { ColorFieldProps } from './components/ColorField'; import { BizFieldValueEnum, EnumFieldProps } from './components/EnumField'; type ExtendProps = T & { /** * 自定义处理值。 * * @param value 当前值。 * @returns 处理后的值。 */ formatValue?: (value: any) => T['value']; }; export type BizFieldTextProps = { valueType: 'text'; } & ExtendProps; export type BizFieldMoneyProps = { valueType: 'money'; } & ExtendProps; export type BizFieldImageProps = { valueType: 'image'; } & ExtendProps; export type BizFieldDateProps = { valueType: DateFieldProps['type']; } & ExtendProps>; export type BizFieldIndexProps = { valueType: 'index' | 'indexBorder'; } & ExtendProps>; export type BizFieldProgressProps = { valueType: 'progress'; } & ExtendProps; export type BizFieldPercentProps = { valueType: 'percent'; } & ExtendProps; export type BizFieldEnumProps = { valueType: 'enum' | 'enumTag' | 'enumBadge'; } & ExtendProps, 'type'>>; export type BizFieldColorProps = { valueType: 'color'; } & ExtendProps; export type BizFieldProps = BizFieldTextProps | BizFieldMoneyProps | BizFieldImageProps | BizFieldDateProps | BizFieldIndexProps | BizFieldProgressProps | BizFieldPercentProps | BizFieldEnumProps | BizFieldColorProps | { value: T; valueType?: undefined; formatValue?: (value: any) => T; }; type ExtendFieldProps = Pick & { field?: Partial | ((value: any, record: DataType, index: number) => Partial); }; export type WithFieldProps = ExtendFieldProps | ExtendFieldProps | ExtendFieldProps | ExtendFieldProps | ExtendFieldProps | ExtendFieldProps | ExtendFieldProps | ExtendFieldProps | (ExtendFieldProps & { valueEnum: BizFieldEnumProps['valueEnum']; }) | { valueType?: undefined; valueEnum?: BizFieldEnumProps['valueEnum']; field?: BizFieldProps | ((value: any, record: DataType, index: number) => BizFieldProps); }; export type BizFieldValueType = NonNullable; export type { BizFieldValueEnum };