@uozi-admin/curd
Version:
Easy to implement curd.
80 lines (79 loc) • 3.57 kB
TypeScript
import { AutoCompleteProps, CascaderProps, CheckboxGroupProps, DatePickerProps, InputNumberProps, InputProps, ModalProps, MonthPickerProps, RadioGroupProps, RangePickerProps, RateProps, SelectProps, SliderProps, SwitchProps, TableProps, TableRowSelection, TextAreaProps, TimePickerProps, TransferProps, UploadProps, WeekPickerProps } from 'antdv-next';
import { Ref } from 'vue';
import { CurdApi } from './api';
import { StdTableColumn } from './index';
export interface PlaceholderT {
placeholder?: number | string | (() => string) | [string, string];
}
interface BaseConfig {
defaultValue?: any;
class?: string;
style?: string;
}
export interface TimeT extends BaseConfig {
timestamp?: boolean;
}
export type InputConfig = Omit<InputProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type InputNumberConfig = Omit<InputNumberProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type TextareaConfig = Omit<TextAreaProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type PasswordConfig = Omit<InputProps, 'placeholder'> & PlaceholderT & BaseConfig & {
generate?: boolean;
};
export type SelectConfig = Omit<SelectProps, 'placeholder'> & PlaceholderT & {
remote?: {
valueKey: string;
labelKey: string;
api: (...args: any[]) => Promise<{
data: any[];
}>;
};
mask?: Record<string | number, any>;
maskIsNumberKey?: boolean;
valueKey?: string;
} & BaseConfig;
export type AutoCompleteConfig = Omit<AutoCompleteProps, 'placeholder'> & PlaceholderT & {
remote?: {
valueKey: string;
labelKey: string;
api: (...args: any[]) => Promise<{
data: any[];
}>;
};
mask?: Record<string | number, any>;
maskIsNumberKey?: boolean;
valueKey?: string;
} & BaseConfig;
export type SelectorConfig = {
tableProps?: TableProps;
valueKey?: string;
displayKey?: string;
selectionType?: 'radio' | 'checkbox';
selectionConfig?: TableRowSelection;
getListApi: CurdApi['getList'];
columns: StdTableColumn[];
tips?: string;
disabled?: boolean;
hideInputContainer?: boolean;
modalWidth?: number | string;
modalProps?: ModalProps;
overwriteParams?: Record<string, any>;
labelRender?: (row: any) => string;
omitZeroString?: boolean;
preloadedData?: any | any[];
} & PlaceholderT & BaseConfig;
export type CascaderConfig = Omit<CascaderProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type DatePickerConfig = Omit<DatePickerProps, 'placeholder'> & PlaceholderT & TimeT & BaseConfig;
export type RangePickerConfig = Omit<RangePickerProps, 'placeholder'> & PlaceholderT & TimeT & BaseConfig;
export type WeekPickerConfig = Omit<WeekPickerProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type MonthPickerConfig = Omit<MonthPickerProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type TimePickerConfig = Omit<TimePickerProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type RadioGroupConfig = RadioGroupProps & BaseConfig;
export type CheckboxGroupConfig = CheckboxGroupProps & BaseConfig;
export type RateConfig = RateProps & BaseConfig;
export type SliderConfig = SliderProps & BaseConfig;
export type SwitchConfig = SwitchProps & BaseConfig;
export type TransferConfig = Omit<TransferProps, 'placeholder'> & PlaceholderT & BaseConfig;
export type UploadConfig = Omit<UploadProps, 'placeholder' | 'beforeUpload'> & PlaceholderT & BaseConfig & {
beforeUpload?: (file: File, fileList: File[], value: Ref<any>) => boolean;
};
export {};