UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

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