1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import type { CSSProperties } from 'vue'
- import { ColProps, ComponentProps, ComponentName } from '@/types/components'
- import type { AxiosPromise } from 'axios'
- export type FormSetPropsType = {
- field: string
- path: string
- value: any
- }
- export type FormValueType = string | number | string[] | number[] | boolean | undefined | null
- export type FormItemProps = {
- labelWidth?: string | number
- required?: boolean
- rules?: Recordable
- error?: string
- showMessage?: boolean
- inlineMessage?: boolean
- style?: CSSProperties
- }
- export type FormSchema = {
- // 唯一值
- field: string
- // 标题
- label?: string
- // 提示
- labelMessage?: string
- // col组件属性
- colProps?: ColProps
- // 表单组件属性,slots对应的是表单组件的插槽,规则:${field}-xxx,具体可以查看element-plus文档
- componentProps?: { slots?: Recordable } & ComponentProps
- // formItem组件属性
- formItemProps?: FormItemProps
- // 渲染的组件
- component?: ComponentName
- // 初始值
- value?: FormValueType
- // 是否隐藏
- hidden?: boolean
- // 远程加载下拉项
- api?: <T = any>() => AxiosPromise<T>
- }
|