//对el-form的二次封装(todo) import { FormItemRule } from 'element-plus' import BaseForm from './src/index.vue' export interface IFormconfig { formItem: IFormItem[] layout: Ilayout gutter?: number labelPosition: 'left' | 'top' | 'right' labelWidth: number size?: 'large' | 'default' | 'small' } interface ItreeProps { children: C label: L } type Tree = { [p in T]: string } & { id: number } & { [p in U]?: Tree[] } interface IFormItem { field: string type: | 'input' | 'password' | 'select' | 'datePicker' | 'rangePicker' | 'text-area' | 'upload' | 'tree' | 'inputNumber' labelName: string placeholder?: string startPlaceholder?: string endPlaceholder?: string rules?: FormItemRule | FormItemRule[] selectOptions?: { label: string; value: string | number }[] maxLength?: number fileAccept?: string fileSize?: number uploadType?: 'img' | 'video' treeData?: Tree[] treeProps?: ItreeProps } interface Ilayout { span?: number xl?: number lg?: number md?: number xs?: number pull?: number offset?: number push?: number } export default BaseForm