form.d.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import type { CSSProperties } from 'vue'
  2. declare global {
  3. declare type ComponentName =
  4. | 'Radio'
  5. | 'RadioButton'
  6. | 'Checkbox'
  7. | 'CheckboxButton'
  8. | 'Input'
  9. | 'Autocomplete'
  10. | 'InputNumber'
  11. | 'Select'
  12. | 'Cascader'
  13. | 'Switch'
  14. | 'Slider'
  15. | 'TimePicker'
  16. | 'DatePicker'
  17. | 'Rate'
  18. | 'ColorPicker'
  19. | 'Transfer'
  20. | 'Divider'
  21. | 'TimeSelect'
  22. | 'SelectV2'
  23. | 'InputPassword'
  24. | 'Editor'
  25. declare type ColProps = {
  26. span?: number
  27. xs?: number
  28. sm?: number
  29. md?: number
  30. lg?: number
  31. xl?: number
  32. tag?: string
  33. }
  34. declare type FormValueType = string | number | string[] | number[] | boolean | undefined | null
  35. declare type FormItemProps = {
  36. labelWidth?: string | number
  37. required?: boolean
  38. rules?: Recordable
  39. error?: string
  40. showMessage?: boolean
  41. inlineMessage?: boolean
  42. style?: CSSProperties
  43. }
  44. declare type ComponentOptions = {
  45. label?: string
  46. value?: FormValueType
  47. disabled?: boolean
  48. key?: string | number
  49. children?: ComponentOptions[]
  50. options?: ComponentOptions[]
  51. } & Recordable
  52. declare type ComponentOptionsAlias = {
  53. labelField?: string
  54. valueField?: string
  55. }
  56. declare type ComponentProps = {
  57. optionsAlias?: ComponentOptionsAlias
  58. options?: ComponentOptions[]
  59. optionsSlot?: boolean
  60. } & Recordable
  61. declare type FormSchema = {
  62. // 唯一值
  63. field: string
  64. // 标题
  65. label?: string
  66. // col组件属性
  67. colProps?: ColProps
  68. // 表单组件属性,slots对应的是表单组件的插槽,规则:${field}-xxx,具体可以查看element-plus文档
  69. componentProps?: { slots?: Recordable } & ComponentProps
  70. // formItem组件属性
  71. formItemProps?: FormItemProps
  72. // 渲染的组件
  73. component?: ComponentName
  74. // 初始值
  75. value?: FormValueType
  76. // 是否隐藏
  77. hidden?: boolean
  78. }
  79. declare type FormSetPropsType = {
  80. field: string
  81. path: string
  82. value: any
  83. }
  84. }