ProForm.d.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import { type FormItemRule } from 'element-plus'
  2. export = ProForm
  3. export as namespace ProForm
  4. export interface EnumProps {
  5. label?: string // 选项框显示的文字
  6. value?: string | number | boolean | any[] // 选项框值
  7. disabled?: boolean // 是否禁用此选项
  8. tagType?: string // 当 tag 为 true 时,此选择会指定 tag 显示类型
  9. children?: EnumProps[] // 为树形选择时,可以通过 children 属性指定子选项
  10. [key: string]: any
  11. }
  12. declare namespace ProForm {
  13. // element-plus 表单组件el-标签名,可以新增
  14. type ElTagName =
  15. | 'input'
  16. | 'checkbox'
  17. | 'checkbox-group'
  18. | 'select'
  19. | 'select-v2'
  20. | 'date-picker'
  21. | 'input-number'
  22. | 'select-icon'
  23. | 'tree-select'
  24. | 'cascader'
  25. | 'radio-group'
  26. | 'radio-button'
  27. | 'file-upload'
  28. | 'img-upload'
  29. | 'imgs-upload'
  30. | 'file-upload-s3'
  31. | 'imgs-upload-s3'
  32. | 'slot'
  33. | 'rate'
  34. | 'slider'
  35. | 'switch'
  36. | 'time-picker'
  37. | 'time-select'
  38. | 'transfer' // label不显示 使用插槽吧
  39. | 'icon' // 图标
  40. | 'tree'
  41. | File.FileUploadType
  42. interface FormOptions {
  43. inline?: boolean
  44. labelWidth?: string | number
  45. labelPosition?: 'left' | 'right' | 'top'
  46. disabled?: boolean // 不可编辑
  47. hasFooter?: boolean // 是否显示底部操作按钮
  48. labelSuffix?: ': ' | string
  49. showSubmitButton?: boolean
  50. showResetButton?: boolean // 是否展示重置按钮
  51. showCancelButton?: boolean // 是否展示取消按钮
  52. submitButtonText?: string
  53. resetButtonText?: string
  54. cancelButtonText?: string
  55. blockSubmitButton?: boolean // 提交按钮是否以块级按钮呈现
  56. }
  57. interface ItemsOptions {
  58. /** form-item 配置项 */
  59. label?: string
  60. labelWidth?: string | number // 标签宽度,例如 '50px'。 可以使用 auto。
  61. prop: string // prop
  62. tooltip?: string // 问号,tooltip提示
  63. required?: boolean
  64. hideLabelSuffix?: boolean // label后缀是否隐藏
  65. rules?: FormItemRule[]
  66. span?: number // 表单col宽度
  67. show?: (params?: any) => Promise<any> | boolean | string // 是否显示 默认显示
  68. change?: (item: any, params?: any) => void // 值改变时触发
  69. /** 表单组件配置项 */
  70. compOptions: CompAttributes // 表单组件配置项
  71. }
  72. interface FormItem {
  73. label?: string
  74. labelWidth?: string | number // 标签宽度,例如 '50px'。 可以使用 auto。
  75. prop: string // prop
  76. value?: any // 默认值
  77. tooltip?: string // 问号,tooltip提示
  78. required?: boolean
  79. rules?: FormItemRule[]
  80. span?: number // 表单col宽度
  81. show?: (params?: any) => Promise<any> | boolean | string // 是否显示 默认显示
  82. // showLabel?: boolean // 是否显示label
  83. // showHelp?: boolean // 是否显示帮助信息
  84. // helpMessage?: string | string[]
  85. // render?: (form: any) => JSX.Element
  86. // renderFormItem?: (form: any) => JSX.Element
  87. // renderComponent?: (form: any) => JSX.Element
  88. // renderComponentContent?: (form: any) => JSX.Element
  89. }
  90. interface CompAttributes {
  91. clearable?: boolean // 是否可清空
  92. showPassword?: boolean // 是否显示切换密码图标
  93. enum?: EnumProps[] | Ref<EnumProps[]> | ((params?: any) => Promise<any>) // 枚举字典
  94. value?: string | number | boolean | any[] // 选项框值
  95. enumKey?: string
  96. labelKey?: string
  97. valueKey?: string
  98. children?: string
  99. placeholder?: string
  100. data?: Record<string, any>[]
  101. multiple?: boolean
  102. disabled?: boolean
  103. elTagName?: ElTagName
  104. fileSize?: number // 文件大小
  105. fileType?: string[] // 文件类型
  106. type?: string
  107. rangeSeparator?: string // 时间范围分隔符
  108. startPlaceholder?: string // 开始时间Placeholder
  109. endPlaceholder?: string // 开始时间Placeholder
  110. step?: number // 滑块
  111. max?: number
  112. min?: number
  113. rows?: number
  114. filterable?: boolean
  115. allowCreate?: boolean
  116. valueFormat?: string
  117. props?: Record<string, any>
  118. width?: string | number
  119. style?: Record<string, any> | string
  120. appendToBody?: boolean // 树下拉
  121. checkStrictly?: boolean // 可选
  122. renderAfterExpand?: boolean // 可选
  123. controlsPosition?: 'left' | 'right' // 可选
  124. onChange?: (value: any) => void
  125. onSelect?: (value: any) => void
  126. onRemove?: (value: any) => void
  127. onClear?: () => void
  128. onFocus?: () => void
  129. onBlur?: () => void
  130. onInput?: (value: any) => void
  131. onSearch?: (value: any) => void
  132. onVisibleChange?: (value: any) => void
  133. onExpand?: (value: any) => void
  134. onCheck?: (value: any) => void
  135. }
  136. }