UNPKG

@uozi-admin/curd

Version:
69 lines (68 loc) 3.07 kB
import { ColProps, FormItemProps } from 'ant-design-vue'; import { DefineComponent, DefineSetupFnComponent, VNodeChild } 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' | ((context: { formData: any; column: StdTableColumn; config: Record<any, any>; mode: 'edit' | 'add'; }) => VNodeChild) | JSX.Element | VNodeChild | DefineComponent<any, any, any> | DefineSetupFnComponent<any, any, any>; export type StdFormItemConfig = Omit<FormItemProps, 'required'> & { name?: string | string[]; label?: string | (() => string); hiddenLabelInEdit?: boolean; hiddenLabelInSearch?: boolean; hiddenLabelInDetail?: boolean; required?: boolean | ((context: { formData: Record<string, any>; }) => boolean); }; export interface StdFormConfig extends Record<any, any> { type: FormItemType; defaultValue?: any; valueKey?: string; col?: ColProps; showInForm?: boolean | ((context: { formData: Record<string, any>; }) => boolean); disabled?: boolean | ((context: { formData: Record<string, any>; }) => boolean); required?: boolean | ((context: { formData: Record<string, any>; }) => boolean); rules?: FormItemProps['rules']; 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>; dependencies?: string[]; onChange?: (value: any, formData: Record<string, any>, dependencies: Record<string, any>) => void; formItem?: StdFormItemConfig; }