UNPKG

@uozi-admin/curd

Version:
48 lines (47 loc) 2.36 kB
import { ColProps, FormItemProps } from 'ant-design-vue'; import { DefineComponent, VNode } from 'vue'; import { JSX } from 'vue/jsx-runtime'; import { AutoCompleteConfig, CascaderConfig, CheckboxGroupConfig, DatePickerConfig, InputConfig, InputNumberConfig, MonthPickerConfig, PasswordConfig, RadioGroupConfig, RangePickerConfig, RateConfig, SelectConfig, SelectorConfig, SliderConfig, SwitchConfig, TextareaConfig, TimePickerConfig, UploadConfig, WeekPickerConfig } from './formItem'; import { StdTableColumn } from './index'; export type FormItemType = 'input' | 'password' | 'inputNumber' | 'select' | 'autoComplete' | 'selector' | 'date' | 'datetime' | 'year' | 'month' | 'week' | 'time' | 'textarea' | 'radioGroup' | 'checkboxGroup' | 'switch' | 'rate' | 'slider' | 'upload' | 'cascader' | 'transfer' | 'dateRange' | 'datetimeRange' | 'yearRange' | 'monthRange' | 'weekRange' | 'timeRange' | ((formData: any, column: StdTableColumn, config: Record<any, any>, mode: 'edit' | 'add') => VNode | JSX.Element) | JSX.Element | DefineComponent<any, any, any>; export interface StdFormConfig extends Record<any, any> { type: FormItemType; defaultValue?: any; valueKey?: string; col?: ColProps; password?: PasswordConfig; input?: InputConfig; inputNumber?: InputNumberConfig; textarea?: TextareaConfig; select?: SelectConfig; autoComplete?: AutoCompleteConfig; selector?: SelectorConfig; cascader?: CascaderConfig; date?: DatePickerConfig; datetime?: DatePickerConfig; year?: DatePickerConfig; week?: WeekPickerConfig; month?: MonthPickerConfig; time?: TimePickerConfig; dateRange?: RangePickerConfig; datetimeRange?: RangePickerConfig; yearRange?: RangePickerConfig; monthRange?: RangePickerConfig; weekRange?: RangePickerConfig; timeRange?: RangePickerConfig; radioGroup?: RadioGroupConfig; checkboxGroup?: CheckboxGroupConfig; rate?: RateConfig; slider?: SliderConfig; switch?: SwitchConfig; transfer?: TimePickerConfig; upload?: UploadConfig; customComponent?: Record<string | number | symbol, any>; formItem?: FormItemProps & { name?: string | string[]; label?: string | (() => string); hiddenLabelInEdit?: boolean; hiddenLabelInSearch?: boolean; hiddenLabelInDetail?: boolean; }; }