vxe-table 4.4.1 → 4.4.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/es/button/style.css +27 -27
  2. package/es/checkbox/style.css +11 -11
  3. package/es/export/style.css +12 -12
  4. package/es/filter/style.css +13 -13
  5. package/es/form/style.css +33 -33
  6. package/es/grid/style.css +8 -8
  7. package/es/icon/style.css +10 -10
  8. package/es/input/style.css +82 -82
  9. package/es/list/style.css +1 -1
  10. package/es/loading/style.css +3 -3
  11. package/es/menu/style.css +7 -7
  12. package/es/modal/style.css +20 -20
  13. package/es/pager/style.css +31 -31
  14. package/es/pulldown/style.css +7 -7
  15. package/es/radio/style.css +20 -20
  16. package/es/select/style.css +23 -23
  17. package/es/style.css +1 -1
  18. package/es/style.min.css +1 -1
  19. package/es/switch/style.css +11 -11
  20. package/es/table/src/body.js +1 -1
  21. package/es/table/src/table.js +1 -1
  22. package/es/table/style.css +118 -118
  23. package/es/textarea/style.css +23 -23
  24. package/es/toolbar/style.css +20 -20
  25. package/es/tools/log.js +1 -1
  26. package/es/tooltip/style.css +17 -17
  27. package/es/v-x-e-table/index.js +1 -1
  28. package/es/v-x-e-table/style.css +12 -12
  29. package/es/vxe-button/style.css +27 -27
  30. package/es/vxe-checkbox/style.css +11 -11
  31. package/es/vxe-form/style.css +33 -33
  32. package/es/vxe-grid/style.css +8 -8
  33. package/es/vxe-icon/style.css +9 -9
  34. package/es/vxe-input/style.css +82 -82
  35. package/es/vxe-list/style.css +1 -1
  36. package/es/vxe-loading/style.css +3 -3
  37. package/es/vxe-modal/style.css +20 -20
  38. package/es/vxe-module-export/style.css +12 -12
  39. package/es/vxe-module-filter/style.css +13 -13
  40. package/es/vxe-module-menu/style.css +7 -7
  41. package/es/vxe-pager/style.css +31 -31
  42. package/es/vxe-pulldown/style.css +7 -7
  43. package/es/vxe-radio/style.css +20 -20
  44. package/es/vxe-select/style.css +23 -23
  45. package/es/vxe-switch/style.css +11 -11
  46. package/es/vxe-table/style.css +118 -118
  47. package/es/vxe-textarea/style.css +23 -23
  48. package/es/vxe-toolbar/style.css +20 -20
  49. package/es/vxe-tooltip/style.css +17 -17
  50. package/lib/button/style/style.css +27 -27
  51. package/lib/button/style/style.min.css +1 -1
  52. package/lib/checkbox/style/style.css +11 -11
  53. package/lib/checkbox/style/style.min.css +1 -1
  54. package/lib/export/style/style.css +12 -12
  55. package/lib/export/style/style.min.css +1 -1
  56. package/lib/filter/style/style.css +13 -13
  57. package/lib/filter/style/style.min.css +1 -1
  58. package/lib/form/style/style.css +33 -33
  59. package/lib/form/style/style.min.css +1 -1
  60. package/lib/grid/style/style.css +8 -8
  61. package/lib/grid/style/style.min.css +1 -1
  62. package/lib/icon/style/style.css +10 -10
  63. package/lib/icon/style/style.min.css +10 -10
  64. package/lib/index.umd.js +8 -4
  65. package/lib/index.umd.min.js +1 -1
  66. package/lib/input/style/style.css +82 -82
  67. package/lib/input/style/style.min.css +1 -1
  68. package/lib/list/style/style.css +1 -1
  69. package/lib/list/style/style.min.css +1 -1
  70. package/lib/loading/style/style.css +3 -3
  71. package/lib/loading/style/style.min.css +1 -1
  72. package/lib/menu/style/style.css +7 -7
  73. package/lib/menu/style/style.min.css +1 -1
  74. package/lib/modal/style/style.css +20 -20
  75. package/lib/modal/style/style.min.css +1 -1
  76. package/lib/pager/style/style.css +31 -31
  77. package/lib/pager/style/style.min.css +1 -1
  78. package/lib/pulldown/style/style.css +7 -7
  79. package/lib/pulldown/style/style.min.css +1 -1
  80. package/lib/radio/style/style.css +20 -20
  81. package/lib/radio/style/style.min.css +1 -1
  82. package/lib/select/style/style.css +23 -23
  83. package/lib/select/style/style.min.css +1 -1
  84. package/lib/style.css +1 -1
  85. package/lib/style.min.css +1 -1
  86. package/lib/switch/style/style.css +11 -11
  87. package/lib/switch/style/style.min.css +1 -1
  88. package/lib/table/src/body.js +2 -1
  89. package/lib/table/src/body.min.js +1 -1
  90. package/lib/table/src/table.js +4 -1
  91. package/lib/table/src/table.min.js +1 -1
  92. package/lib/table/style/style.css +118 -118
  93. package/lib/table/style/style.min.css +1 -1
  94. package/lib/textarea/style/style.css +23 -23
  95. package/lib/textarea/style/style.min.css +1 -1
  96. package/lib/toolbar/style/style.css +20 -20
  97. package/lib/toolbar/style/style.min.css +1 -1
  98. package/lib/tools/log.js +1 -1
  99. package/lib/tools/log.min.js +1 -1
  100. package/lib/tooltip/style/style.css +17 -17
  101. package/lib/tooltip/style/style.min.css +1 -1
  102. package/lib/v-x-e-table/index.js +1 -1
  103. package/lib/v-x-e-table/index.min.js +1 -1
  104. package/lib/v-x-e-table/style/style.css +12 -12
  105. package/lib/v-x-e-table/style/style.min.css +1 -1
  106. package/lib/vxe-button/style/style.css +27 -27
  107. package/lib/vxe-button/style/style.min.css +1 -1
  108. package/lib/vxe-checkbox/style/style.css +11 -11
  109. package/lib/vxe-checkbox/style/style.min.css +1 -1
  110. package/lib/vxe-form/style/style.css +33 -33
  111. package/lib/vxe-form/style/style.min.css +1 -1
  112. package/lib/vxe-grid/style/style.css +8 -8
  113. package/lib/vxe-grid/style/style.min.css +1 -1
  114. package/lib/vxe-icon/style/style.css +9 -9
  115. package/lib/vxe-icon/style/style.min.css +1 -1
  116. package/lib/vxe-input/style/style.css +82 -82
  117. package/lib/vxe-input/style/style.min.css +1 -1
  118. package/lib/vxe-list/style/style.css +1 -1
  119. package/lib/vxe-list/style/style.min.css +1 -1
  120. package/lib/vxe-loading/style/style.css +3 -3
  121. package/lib/vxe-loading/style/style.min.css +1 -1
  122. package/lib/vxe-modal/style/style.css +20 -20
  123. package/lib/vxe-modal/style/style.min.css +1 -1
  124. package/lib/vxe-module-export/style/style.css +12 -12
  125. package/lib/vxe-module-export/style/style.min.css +1 -1
  126. package/lib/vxe-module-filter/style/style.css +13 -13
  127. package/lib/vxe-module-filter/style/style.min.css +1 -1
  128. package/lib/vxe-module-menu/style/style.css +7 -7
  129. package/lib/vxe-module-menu/style/style.min.css +1 -1
  130. package/lib/vxe-pager/style/style.css +31 -31
  131. package/lib/vxe-pager/style/style.min.css +1 -1
  132. package/lib/vxe-pulldown/style/style.css +7 -7
  133. package/lib/vxe-pulldown/style/style.min.css +1 -1
  134. package/lib/vxe-radio/style/style.css +20 -20
  135. package/lib/vxe-radio/style/style.min.css +1 -1
  136. package/lib/vxe-select/style/style.css +23 -23
  137. package/lib/vxe-select/style/style.min.css +1 -1
  138. package/lib/vxe-switch/style/style.css +11 -11
  139. package/lib/vxe-switch/style/style.min.css +1 -1
  140. package/lib/vxe-table/style/style.css +118 -118
  141. package/lib/vxe-table/style/style.min.css +1 -1
  142. package/lib/vxe-textarea/style/style.css +23 -23
  143. package/lib/vxe-textarea/style/style.min.css +1 -1
  144. package/lib/vxe-toolbar/style/style.css +20 -20
  145. package/lib/vxe-toolbar/style/style.min.css +1 -1
  146. package/lib/vxe-tooltip/style/style.css +17 -17
  147. package/lib/vxe-tooltip/style/style.min.css +1 -1
  148. package/package.json +2 -2
  149. package/packages/table/src/body.ts +1 -1
  150. package/packages/table/src/table.ts +1 -1
  151. package/styles/button.scss +27 -27
  152. package/styles/checkbox.scss +11 -11
  153. package/styles/cssvar.scss +257 -0
  154. package/styles/export.scss +12 -12
  155. package/styles/filter.scss +13 -13
  156. package/styles/form.scss +31 -31
  157. package/styles/grid.scss +8 -8
  158. package/styles/input.scss +75 -75
  159. package/styles/list.scss +1 -1
  160. package/styles/loading.scss +3 -3
  161. package/styles/menu.scss +7 -7
  162. package/styles/modal.scss +20 -20
  163. package/styles/modules.scss +1 -0
  164. package/styles/old-icon.scss +9 -9
  165. package/styles/pager.scss +31 -31
  166. package/styles/pulldown.scss +7 -7
  167. package/styles/radio.scss +20 -20
  168. package/styles/select.scss +23 -23
  169. package/styles/switch.scss +11 -11
  170. package/styles/table.scss +126 -126
  171. package/styles/textarea.scss +22 -22
  172. package/styles/toolbar.scss +20 -20
  173. package/styles/tooltip.scss +17 -17
  174. package/types/button.d.ts +23 -2
  175. package/types/checkbox-group.d.ts +11 -2
  176. package/types/checkbox.d.ts +11 -2
  177. package/types/colgroup.d.ts +19 -3
  178. package/types/column.d.ts +142 -61
  179. package/types/component.d.ts +7 -2
  180. package/types/form-gather.d.ts +10 -1
  181. package/types/form-item.d.ts +16 -1
  182. package/types/form.d.ts +10 -1
  183. package/types/grid.d.ts +72 -2
  184. package/types/index.d.ts +1 -1
  185. package/types/input.d.ts +11 -2
  186. package/types/list.d.ts +11 -2
  187. package/types/modal.d.ts +40 -2
  188. package/types/optgroup.d.ts +10 -1
  189. package/types/option.d.ts +10 -1
  190. package/types/pager.d.ts +17 -2
  191. package/types/pulldown.d.ts +26 -9
  192. package/types/radio-button.d.ts +11 -2
  193. package/types/radio-group.d.ts +11 -2
  194. package/types/radio.d.ts +11 -2
  195. package/types/select.d.ts +11 -2
  196. package/types/switch.d.ts +11 -2
  197. package/types/table.d.ts +20 -3
  198. package/types/textarea.d.ts +11 -2
  199. package/types/toolbar.d.ts +17 -2
  200. package/types/tooltip.d.ts +11 -2
  201. /package/es/icon/style/{iconfont.1685110524528.ttf → iconfont.1685611928442.ttf} +0 -0
  202. /package/es/icon/style/{iconfont.1685110524528.woff → iconfont.1685611928442.woff} +0 -0
  203. /package/es/icon/style/{iconfont.1685110524528.woff2 → iconfont.1685611928442.woff2} +0 -0
  204. /package/es/{iconfont.1685110524528.ttf → iconfont.1685611928442.ttf} +0 -0
  205. /package/es/{iconfont.1685110524528.woff → iconfont.1685611928442.woff} +0 -0
  206. /package/es/{iconfont.1685110524528.woff2 → iconfont.1685611928442.woff2} +0 -0
  207. /package/lib/icon/style/{iconfont.1685110524528.ttf → iconfont.1685611928442.ttf} +0 -0
  208. /package/lib/icon/style/{iconfont.1685110524528.woff → iconfont.1685611928442.woff} +0 -0
  209. /package/lib/icon/style/{iconfont.1685110524528.woff2 → iconfont.1685611928442.woff2} +0 -0
  210. /package/lib/{iconfont.1685110524528.ttf → iconfont.1685611928442.ttf} +0 -0
  211. /package/lib/{iconfont.1685110524528.woff → iconfont.1685611928442.woff} +0 -0
  212. /package/lib/{iconfont.1685110524528.woff2 → iconfont.1685611928442.woff2} +0 -0
@@ -3,9 +3,14 @@ import { App, VNode } from 'vue'
3
3
  export type SizeType = null | '' | 'medium' | 'small' | 'mini'
4
4
  export type ValueOf<T> = T extends any[] ? T[number] : T[keyof T]
5
5
 
6
- export type VXEComponent<P = { [key: string]: any }, E = { [key: string]: any }> = ({
6
+ export type VXEComponent<
7
+ P = { [key: string]: any },
8
+ E = { [key: string]: any },
9
+ S = { [key: string]: (...args: any[]) => any }
10
+ > = ({
7
11
  new (): {
8
- $props: P & E
12
+ $props: P & E,
13
+ $slots: S
9
14
  }
10
15
  } & {
11
16
  install(app: App): void
@@ -11,7 +11,7 @@ export const VxeFormGather: VXEComponent<VxeFormGatherProps>
11
11
  /**
12
12
  * 组件 - 表单项集合
13
13
  */
14
- export const FormGather: VXEComponent<VxeFormGatherProps>
14
+ export const FormGather: typeof VxeFormGather
15
15
 
16
16
  export interface VxeFormGatherProps {
17
17
  /**
@@ -23,3 +23,12 @@ export interface VxeFormGatherProps {
23
23
  */
24
24
  className?: VxeFormItemPropTypes.ClassName
25
25
  }
26
+
27
+ export interface VxeFormGatherSlots {
28
+ /**
29
+ * 自定义插槽模板
30
+ */
31
+ [key: string]: ((params: {
32
+ [key: string]: any
33
+ }) => any) | undefined
34
+ }
@@ -15,7 +15,7 @@ export const VxeFormItem: VXEComponent<VxeFormItemProps>
15
15
  /**
16
16
  * 组件 - 表单项
17
17
  */
18
- export const FormItem: VXEComponent<VxeFormItemProps>
18
+ export const FormItem: typeof VxeFormItem
19
19
 
20
20
  export interface VxeFormItemProps {
21
21
  /**
@@ -262,3 +262,18 @@ export interface FormItemResetParams {
262
262
  */
263
263
  property: string
264
264
  }
265
+
266
+ export interface VxeFormItemSlots {
267
+ /**
268
+ * 自定义内容模板
269
+ */
270
+ default: (params: {
271
+ [key: string]: any
272
+ }) => any
273
+ /**
274
+ * 自定义标题模板
275
+ */
276
+ title: (params: {
277
+ [key: string]: any
278
+ }) => any
279
+ }
package/types/form.d.ts CHANGED
@@ -13,7 +13,7 @@ export const VxeForm: VXEComponent<VxeFormProps, VxeFormEventProps>
13
13
  /**
14
14
  * 组件 - 表单
15
15
  */
16
- export const Form: VXEComponent<VxeFormProps, VxeFormEventProps>
16
+ export const Form: typeof VxeForm
17
17
 
18
18
  export type VxeFormInstance = ComponentPublicInstance<VxeFormProps, VxeFormConstructor>
19
19
 
@@ -337,3 +337,12 @@ export namespace VxeFormEvents {
337
337
  export type SubmitInvalid = (params: VxeFormDefines.SubmitInvalidEventParams) => void
338
338
  export type Reset = (params: VxeFormDefines.ResetEventParams) => void
339
339
  }
340
+
341
+ export interface VxeFormSlots {
342
+ /**
343
+ * 自定义插槽模板
344
+ */
345
+ [key: string]: ((params: {
346
+ [key: string]: any
347
+ }) => any) | undefined
348
+ }
package/types/grid.d.ts CHANGED
@@ -12,11 +12,11 @@ import { VxeTableDataRow, VxeTableDefines, VxeTableEmits, VxeTableConstructor, V
12
12
  * 组件 - 高级表格
13
13
  * @example import { VxeGrid } from 'vxe-table'
14
14
  */
15
- export const VxeGrid: VXEComponent<VxeGridProps<any>, VxeGridEventProps<any>>
15
+ export const VxeGrid: VXEComponent<VxeGridProps<any>, VxeGridEventProps<any>, VxeGridSlots<any>>
16
16
  /**
17
17
  * 组件 - 高级表格
18
18
  */
19
- export const Grid: VXEComponent<VxeGridProps<any>, VxeGridEventProps<any>>
19
+ export const Grid: typeof VxeGrid
20
20
 
21
21
  export type VxeGridInstance<D = any> = ComponentPublicInstance<VxeGridProps<D>, VxeGridConstructor<D>>
22
22
 
@@ -505,3 +505,73 @@ export namespace VxeGridEvents {
505
505
  export type ToolbarToolClick<D = any> = (params: VxeGridDefines.ToolbarToolClickEventParams<D>) => void
506
506
  export type Zoom<D = any> = (params: VxeGridDefines.ZoomEventParams<D>) => void
507
507
  }
508
+
509
+ export interface VxeGridSlots<D = VxeTableDataRow> {
510
+ /**
511
+ * 自定义空数据时显示模板
512
+ */
513
+ empty?(params: {
514
+ $table: VxeTableConstructor<D>
515
+ $grid: VxeGridConstructor<D> | null | undefined
516
+ }): any
517
+ /**
518
+ * 自定义加载中模板
519
+ */
520
+ loading?(params: {
521
+ $table: VxeTableConstructor<D>
522
+ $grid: VxeGridConstructor<D> | null | undefined
523
+ }): any
524
+ /**
525
+ * 自定义表单模板
526
+ */
527
+ form?(params: {
528
+ $table: VxeTableConstructor<D>
529
+ $grid: VxeGridConstructor<D> | null | undefined
530
+ }): any
531
+ /**
532
+ * 自定义工具栏模板
533
+ */
534
+ toolbar?(params: {
535
+ $table: VxeTableConstructor<D>
536
+ $grid: VxeGridConstructor<D> | null | undefined
537
+ }): any
538
+ /**
539
+ * 自定义表格顶部模板
540
+ */
541
+ top?(params: {
542
+ $table: VxeTableConstructor<D>
543
+ $grid: VxeGridConstructor<D> | null | undefined
544
+ }): any
545
+ /**
546
+ * 表格底部模板
547
+ */
548
+ bottom?(params: {
549
+ $table: VxeTableConstructor<D>
550
+ $grid: VxeGridConstructor<D> | null | undefined
551
+ }): any
552
+ /**
553
+ * 自定义分页模板
554
+ */
555
+ pager?(params: {
556
+ $table: VxeTableConstructor<D>
557
+ $grid: VxeGridConstructor<D> | null | undefined
558
+ }): any
559
+
560
+ /**
561
+ * 自定义插槽模板
562
+ */
563
+ [key: string]: ((params: {
564
+ $table: VxeTableConstructor<D>
565
+ $grid: VxeGridConstructor<D> | null | undefined
566
+ row: D
567
+ rowIndex: number
568
+ $rowIndex: number
569
+ _rowIndex: number
570
+ column: VxeTableDefines.ColumnInfo<D>
571
+ columnIndex: number
572
+ $columnIndex: number
573
+ _columnIndex: number
574
+
575
+ [key: string]: any
576
+ }) => any) | undefined
577
+ }
package/types/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as VXETableExport from './all'
2
2
 
3
3
  /**
4
- * 一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
4
+ * 一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
5
5
  */
6
6
  declare const VXETable: typeof VXETableExport
7
7
 
package/types/input.d.ts CHANGED
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, SizeType, VNodeStyle, ValueOf } from '.
7
7
  * 组件 - 输入框
8
8
  * @example import { VxeInput } from 'vxe-table'
9
9
  */
10
- export const VxeInput: VXEComponent<VxeInputProps, VxeInputEventProps>
10
+ export const VxeInput: VXEComponent<VxeInputProps, VxeInputEventProps, VxeInputSlots>
11
11
  /**
12
12
  * 组件 - 输入框
13
13
  */
14
- export const Input: VXEComponent<VxeInputProps, VxeInputEventProps>
14
+ export const Input: typeof VxeInput
15
15
 
16
16
  export type VxeInputInstance = ComponentPublicInstance<VxeInputProps, VxeInputConstructor>
17
17
 
@@ -350,3 +350,12 @@ export namespace VxeInputEvents {
350
350
  export type DateToday = (params: VxeInputDefines.DateTodayEventParams) => void
351
351
  export type DateNext = (params: VxeInputDefines.DateNextEventParams) => void
352
352
  }
353
+
354
+ export interface VxeInputSlots {
355
+ /**
356
+ * 自定义插槽模板
357
+ */
358
+ [key: string]: ((params: {
359
+ [key: string]: any
360
+ }) => any) | undefined
361
+ }
package/types/list.d.ts CHANGED
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf } from './c
7
7
  * 组件 - 虚拟列表
8
8
  * @example import { VxeList } from 'vxe-table'
9
9
  */
10
- export const VxeList: VXEComponent<VxeListProps, VxeListEventProps>
10
+ export const VxeList: VXEComponent<VxeListProps, VxeListEventProps, VxeListSlots>
11
11
  /**
12
12
  * 组件 - 虚拟列表
13
13
  */
14
- export const List: VXEComponent<VxeListProps, VxeListEventProps>
14
+ export const List: typeof VxeList
15
15
 
16
16
  export type VxeListInstance = ComponentPublicInstance<VxeListProps, VxeListConstructor>
17
17
 
@@ -156,3 +156,12 @@ export interface VxeListListeners {
156
156
  export namespace VxeListEvents {
157
157
  export type Scroll = (params: VxeListDefines.ScrollEventParams) => void
158
158
  }
159
+
160
+ export interface VxeListSlots {
161
+ /**
162
+ * 自定义插槽模板
163
+ */
164
+ [key: string]: ((params: {
165
+ [key: string]: any
166
+ }) => any) | undefined
167
+ }
package/types/modal.d.ts CHANGED
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf } from './c
7
7
  * 组件 - 弹窗
8
8
  * @example import { VxeModal } from 'vxe-table'
9
9
  */
10
- export const VxeModal: VXEComponent<VxeModalProps, VxeModalEventProps>
10
+ export const VxeModal: VXEComponent<VxeModalProps, VxeModalEventProps, VxeModalSlots>
11
11
  /**
12
12
  * 组件 - 弹窗
13
13
  */
14
- export const Modal: VXEComponent<VxeModalProps, VxeModalEventProps>
14
+ export const Modal: typeof VxeModal
15
15
 
16
16
  export type VxeModalInstance = ComponentPublicInstance<VxeModalProps, VxeModalConstructor>
17
17
 
@@ -211,10 +211,25 @@ export type VxeModalProps = {
211
211
  }
212
212
 
213
213
  export type ModalSlots = {
214
+ /**
215
+ * 自定义窗口内容模板
216
+ */
214
217
  default?(params: ModalDefaultSlotParams): JSX.Element[] | VNode[] | string[]
218
+ /**
219
+ * 自定义窗口头部的模板
220
+ */
215
221
  header?(params: ModalHeaderSlotParams): JSX.Element[] | VNode[] | string[]
222
+ /**
223
+ * 自定义窗口标题的模板(如果使用了 header 插槽,则该插槽无效)
224
+ */
216
225
  title?(params: ModalTitleSlotParams): JSX.Element[] | VNode[] | string[]
226
+ /**
227
+ * 自定义窗口右上角的模板
228
+ */
217
229
  corner?(params: ModalTitleSlotParams): JSX.Element[] | VNode[] | string[]
230
+ /**
231
+ * 自定义窗口底部的模板
232
+ */
218
233
  footer?(params: ModalFooterSlotParams): JSX.Element[] | VNode[] | string[]
219
234
  }
220
235
 
@@ -360,3 +375,26 @@ export namespace VxeModalEvents {
360
375
  export type Close = (params: VxeModalDefines.CloseEventParams) => void
361
376
  export type Zoom = (params: VxeModalDefines.ZoomEventParams) => void
362
377
  }
378
+
379
+ export interface VxeModalSlots {
380
+ /**
381
+ * 自定义窗口内容模板
382
+ */
383
+ default: (params: ModalDefaultSlotParams) => any
384
+ /**
385
+ * 自定义窗口头部的模板
386
+ */
387
+ header: (params: ModalHeaderSlotParams) => any
388
+ /**
389
+ * 自定义窗口标题的模板(如果使用了 header 插槽,则该插槽无效)
390
+ */
391
+ title: (params: ModalTitleSlotParams) => any
392
+ /**
393
+ * 自定义窗口右上角的模板
394
+ */
395
+ corner: (params: ModalTitleSlotParams) => any
396
+ /**
397
+ * 自定义窗口底部的模板
398
+ */
399
+ footer: (params: ModalFooterSlotParams) => any
400
+ }
@@ -11,7 +11,7 @@ export const VxeOptgroup: VXEComponent<VxeOptgroupProps>
11
11
  /**
12
12
  * 组件 - 下拉框选项分组
13
13
  */
14
- export const Optgroup: VXEComponent<VxeOptgroupProps>
14
+ export const Optgroup: typeof VxeOptgroup
15
15
 
16
16
  export type VxeOptgroupProps = {
17
17
  /**
@@ -28,3 +28,12 @@ export type VxeOptgroupProps = {
28
28
  */
29
29
  disabled?: VxeOptionPropTypes.Disabled
30
30
  }
31
+
32
+ export interface VxeOptgroupSlots {
33
+ /**
34
+ * 自定义插槽模板
35
+ */
36
+ [key: string]: ((params: {
37
+ [key: string]: any
38
+ }) => any) | undefined
39
+ }
package/types/option.d.ts CHANGED
@@ -12,7 +12,7 @@ export const VxeOption: VXEComponent<VxeOptionProps>
12
12
  /**
13
13
  * 组件 - 下拉框选项
14
14
  */
15
- export const Option: VXEComponent<VxeOptionProps>
15
+ export const Option: typeof VxeOption
16
16
 
17
17
  export type VxeOptionProps = {
18
18
  /**
@@ -56,3 +56,12 @@ export namespace VxeOptionPropTypes {
56
56
  }) => JSX.Element[] | VNode[] | string[]) | null
57
57
  }
58
58
  }
59
+
60
+ export interface VxeOptionSlots {
61
+ /**
62
+ * 自定义插槽模板
63
+ */
64
+ [key: string]: ((params: {
65
+ [key: string]: any
66
+ }) => any) | undefined
67
+ }
package/types/pager.d.ts CHANGED
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf } from './c
7
7
  * 组件 - 分页
8
8
  * @example import { VxePager } from 'vxe-table'
9
9
  */
10
- export const VxePager: VXEComponent<VxePagerProps, VxePagerEventProps>
10
+ export const VxePager: VXEComponent<VxePagerProps, VxePagerEventProps, VxePagerSlots>
11
11
  /**
12
12
  * 组件 - 分页
13
13
  */
14
- export const Pager: VXEComponent<VxePagerProps, VxePagerEventProps>
14
+ export const Pager: typeof VxePager
15
15
 
16
16
  export type VxePagerInstance = ComponentPublicInstance<VxePagerProps, VxePagerConstructor>
17
17
 
@@ -182,3 +182,18 @@ export interface VxePagerListeners {
182
182
  export namespace VxePagerEvents {
183
183
  export type PageChange = (params: VxePagerDefines.PageChangeEventParams) => void
184
184
  }
185
+
186
+ export interface VxePagerSlots {
187
+ /**
188
+ * 自定义左侧模板
189
+ */
190
+ left: (params: {
191
+ [key: string]: any
192
+ }) => any
193
+ /**
194
+ * 自定义右侧模板
195
+ */
196
+ right: (params: {
197
+ [key: string]: any
198
+ }) => any
199
+ }
@@ -1,6 +1,18 @@
1
1
  import { RenderFunction, SetupContext, ComponentPublicInstance, Ref } from 'vue'
2
2
  import { VXEComponent, VxeComponentBase, SizeType, VNodeStyle, VxeEvent, ValueOf } from './component'
3
3
 
4
+ /* eslint-disable no-use-before-define */
5
+
6
+ /**
7
+ * 组件 - 下拉容器
8
+ * @example import { Pulldown as VxePulldown } from 'vxe-table'
9
+ */
10
+ export const VxePulldown: VXEComponent<VxePulldownProps, VxePulldownEventProps, VxePulldownSlots>
11
+ /**
12
+ * 组件 - 下拉容器
13
+ */
14
+ export const Pulldown: typeof VxePulldown
15
+
4
16
  export type VxePulldownEmits = [
5
17
  'update:modelValue',
6
18
  'hide-panel'
@@ -109,12 +121,17 @@ export interface VxePulldownListeners {
109
121
  hidePanel?: VxePulldownEvents.HidePanel
110
122
  }
111
123
 
112
- /**
113
- * 组件 - 下拉容器
114
- * @example import { Pulldown as VxePulldown } from 'vxe-table'
115
- */
116
- export const VxePulldown: VXEComponent<VxePulldownProps, VxePulldownEventProps>
117
- /**
118
- * 组件 - 下拉容器
119
- */
120
- export const Pulldown: VXEComponent<VxePulldownProps, VxePulldownEventProps>
124
+ export interface VxePulldownSlots {
125
+ /**
126
+ * 自定义显示的内容
127
+ */
128
+ default: (params: {
129
+ [key: string]: any
130
+ }) => any
131
+ /**
132
+ * 自定义下拉面板显示的内容
133
+ */
134
+ dropdown: (params: {
135
+ [key: string]: any
136
+ }) => any
137
+ }
@@ -8,11 +8,11 @@ import { VxeRadioPropTypes } from './radio'
8
8
  * 组件 - 单选框按钮
9
9
  * @example import { VxeRadioButton } from 'vxe-table'
10
10
  */
11
- export const VxeRadioButton: VXEComponent<VxeRadioButtonProps, VxeRadioButtonEventProps>
11
+ export const VxeRadioButton: VXEComponent<VxeRadioButtonProps, VxeRadioButtonEventProps, VxeRadioButtonSlots>
12
12
  /**
13
13
  * 组件 - 单选框按钮
14
14
  */
15
- export const RadioButton: VXEComponent<VxeRadioButtonProps, VxeRadioButtonEventProps>
15
+ export const RadioButton: typeof VxeRadioButton
16
16
 
17
17
  export type VxeRadioButtonInstance = ComponentPublicInstance<VxeRadioButtonProps, VxeRadioButtonConstructor>
18
18
 
@@ -80,3 +80,12 @@ export interface VxeRadioButtonListeners {
80
80
  export namespace VxeRadioButtonEvents {
81
81
  export type Change = (params: VxeRadioButtonDefines.ChangeEventParams) => void
82
82
  }
83
+
84
+ export interface VxeRadioButtonSlots {
85
+ /**
86
+ * 自定义插槽模板
87
+ */
88
+ [key: string]: ((params: {
89
+ [key: string]: any
90
+ }) => any) | undefined
91
+ }
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, SizeType, VxeEvent, ValueOf } from './c
7
7
  * 组件 - 单选框组
8
8
  * @example import { VxeRadioGroup } from 'vxe-table'
9
9
  */
10
- export const VxeRadioGroup: VXEComponent<VxeRadioGroupProps, VxeRadioGroupEventProps>
10
+ export const VxeRadioGroup: VXEComponent<VxeRadioGroupProps, VxeRadioGroupEventProps, VxeRadioGroupSlots>
11
11
  /**
12
12
  * 组件 - 单选框组
13
13
  */
14
- export const RadioGroup: VXEComponent<VxeRadioGroupProps, VxeRadioGroupEventProps>
14
+ export const RadioGroup: typeof VxeRadioGroup
15
15
 
16
16
  export type VxeRadioGroupInstance = ComponentPublicInstance<VxeRadioGroupProps, VxeRadioGroupConstructor>
17
17
 
@@ -76,3 +76,12 @@ export interface VxeRadioGroupListeners {
76
76
  export namespace VxeRadioGroupEvents {
77
77
  export type Change = (params: VxeRadioGroupDefines.ChangeEventParams) => void
78
78
  }
79
+
80
+ export interface VxeRadioGroupSlots {
81
+ /**
82
+ * 自定义插槽模板
83
+ */
84
+ [key: string]: ((params: {
85
+ [key: string]: any
86
+ }) => any) | undefined
87
+ }
package/types/radio.d.ts CHANGED
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf } from './c
7
7
  * 组件 - 单选框
8
8
  * @example import { VxeRadio } from 'vxe-table'
9
9
  */
10
- export const VxeRadio: VXEComponent<VxeRadioProps, VxeRadioEventProps>
10
+ export const VxeRadio: VXEComponent<VxeRadioProps, VxeRadioEventProps, VxeRadioSlots>
11
11
  /**
12
12
  * 组件 - 单选框
13
13
  */
14
- export const Radio: VXEComponent<VxeRadioProps, VxeRadioEventProps>
14
+ export const Radio: typeof VxeRadio
15
15
 
16
16
  export type VxeRadioInstance = ComponentPublicInstance<VxeRadioProps, VxeRadioConstructor>
17
17
 
@@ -99,3 +99,12 @@ export interface VxeRadioListeners {
99
99
  export namespace VxeRadioEvents {
100
100
  export type Change = (params: VxeRadioDefines.ChangeEventParams) => void
101
101
  }
102
+
103
+ export interface VxeRadioSlots {
104
+ /**
105
+ * 自定义插槽模板
106
+ */
107
+ [key: string]: ((params: {
108
+ [key: string]: any
109
+ }) => any) | undefined
110
+ }
package/types/select.d.ts CHANGED
@@ -10,11 +10,11 @@ import { VxeOptionProps, VxeOptionPropTypes } from './option'
10
10
  * 组件 - 下拉框
11
11
  * @example import { VxeSelect } from 'vxe-table'
12
12
  */
13
- export const VxeSelect: VXEComponent<VxeSelectProps, VxeSelectEventProps>
13
+ export const VxeSelect: VXEComponent<VxeSelectProps, VxeSelectEventProps, VxeSelectSlots>
14
14
  /**
15
15
  * 组件 - 下拉框
16
16
  */
17
- export const Select: VXEComponent<VxeSelectProps, VxeSelectEventProps>
17
+ export const Select: typeof VxeSelect
18
18
 
19
19
  export type VxeSelectInstance = ComponentPublicInstance<VxeSelectProps, VxeSelectConstructor>
20
20
 
@@ -228,3 +228,12 @@ export namespace VxeSelectEvents {
228
228
  export type Focus = (params: VxeSelectDefines.FocusEventParams) => void
229
229
  export type Blur = (params: VxeSelectDefines.BlurEventParams) => void
230
230
  }
231
+
232
+ export interface VxeSelectSlots {
233
+ /**
234
+ * 自定义插槽模板
235
+ */
236
+ [key: string]: ((params: {
237
+ [key: string]: any
238
+ }) => any) | undefined
239
+ }
package/types/switch.d.ts CHANGED
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf } from './c
7
7
  * 组件 - 开关
8
8
  * @example import { VxeSwitch } from 'vxe-table'
9
9
  */
10
- export const VxeSwitch: VXEComponent<VxeSwitchProps, VxeSwitchEventProps>
10
+ export const VxeSwitch: VXEComponent<VxeSwitchProps, VxeSwitchEventProps, VxeSwitchSlots>
11
11
  /**
12
12
  * 组件 - 开关
13
13
  */
14
- export const Switch: VXEComponent<VxeSwitchProps, VxeSwitchEventProps>
14
+ export const Switch: typeof VxeSwitch
15
15
 
16
16
  export type VxeSwitchInstance = ComponentPublicInstance<VxeSwitchProps, VxeSwitchConstructor>
17
17
 
@@ -102,3 +102,12 @@ export namespace VxeSwitchEvents {
102
102
  export type Focus = (params: VxeSwitchDefines.FocusEventParams) => void
103
103
  export type Blur = (params: VxeSwitchDefines.BlurEventParams) => void
104
104
  }
105
+
106
+ export interface VxeSwitchSlots {
107
+ /**
108
+ * 自定义插槽模板
109
+ */
110
+ [key: string]: ((params: {
111
+ [key: string]: any
112
+ }) => any) | undefined
113
+ }
package/types/table.d.ts CHANGED
@@ -14,11 +14,11 @@ import { VxeMenuPanelInstance } from './menu'
14
14
  * 组件 - 表格
15
15
  * @example import { VxeTable } from 'vxe-table'
16
16
  */
17
- export const VxeTable: VXEComponent<VxeTableProps<any>, VxeTableEventProps<any>>
17
+ export const VxeTable: VXEComponent<VxeTableProps<any>, VxeTableEventProps<any>, VxeTableSlots<any>>
18
18
  /**
19
19
  * 组件 - 表格
20
20
  */
21
- export const Table: VXEComponent<VxeTableProps<any>, VxeTableEventProps<any>>
21
+ export const Table: typeof VxeTable
22
22
 
23
23
  export type VxeTableInstance<D = any> = ComponentPublicInstance<VxeTableProps<D>, VxeTableConstructor<D>>
24
24
 
@@ -34,7 +34,7 @@ export interface VxeTableConstructor<D = any> extends VxeComponentBase, VxeTable
34
34
  getComputeMaps(): TablePrivateComputed<D>
35
35
  renderVN: RenderFunction
36
36
 
37
- xegrid: VxeGridConstructor | null
37
+ xegrid: VxeGridConstructor<D> | null
38
38
  }
39
39
 
40
40
  export interface TablePrivateRef {
@@ -2742,3 +2742,20 @@ export namespace VxeTableEvents {
2742
2742
  export type Scroll<D = any> = (params: VxeTableDefines.ScrollEventParams<D>) => void
2743
2743
  export type Custom<D = any> = (params: VxeTableDefines.CustomEventParams<D>) => void
2744
2744
  }
2745
+
2746
+ export interface VxeTableSlots<D = VxeTableDataRow> {
2747
+ /**
2748
+ * 自定义空数据时显示模板
2749
+ */
2750
+ empty?(params: {
2751
+ $table: VxeTableConstructor<D>
2752
+ $grid: VxeGridConstructor<D> | null | undefined
2753
+ }): any
2754
+ /**
2755
+ * 自定义加载中模板
2756
+ */
2757
+ loading?(params: {
2758
+ $table: VxeTableConstructor<D>
2759
+ $grid: VxeGridConstructor<D> | null | undefined
2760
+ }): any
2761
+ }
@@ -7,11 +7,11 @@ import { VXEComponent, VxeComponentBase, VxeEvent, SizeType, ValueOf } from './c
7
7
  * 组件 - 文本域
8
8
  * @example import { VxeTextarea } from 'vxe-table'
9
9
  */
10
- export const VxeTextarea: VXEComponent<VxeTextareaProps, VxeTextareaEventProps>
10
+ export const VxeTextarea: VXEComponent<VxeTextareaProps, VxeTextareaEventProps, VxeTextareaSlots>
11
11
  /**
12
12
  * 组件 - 文本域
13
13
  */
14
- export const Textarea: VXEComponent<VxeTextareaProps, VxeTextareaEventProps>
14
+ export const Textarea: typeof VxeTextarea
15
15
 
16
16
  export type VxeTextareaInstance = ComponentPublicInstance<VxeTextareaProps, VxeTextareaConstructor>
17
17
 
@@ -200,3 +200,12 @@ export namespace VxeTextareaEvents {
200
200
  export type Focus = (params: VxeTextareaDefines.FocusEventParams) => void
201
201
  export type Blur = (params: VxeTextareaDefines.BlurEventParams) => void
202
202
  }
203
+
204
+ export interface VxeTextareaSlots {
205
+ /**
206
+ * 自定义插槽模板
207
+ */
208
+ [key: string]: ((params: {
209
+ [key: string]: any
210
+ }) => any) | undefined
211
+ }
@@ -10,11 +10,11 @@ import { VxeButtonProps } from './button'
10
10
  * 组件 - 工具栏
11
11
  * @example import { VxeToolbar } from 'vxe-table'
12
12
  */
13
- export const VxeToolbar: VXEComponent<VxeToolbarProps, VxeToolbarEventProps>
13
+ export const VxeToolbar: VXEComponent<VxeToolbarProps, VxeToolbarEventProps, VxeToolbarSlots>
14
14
  /**
15
15
  * 组件 - 工具栏
16
16
  */
17
- export const Toolbar: VXEComponent<VxeToolbarProps, VxeToolbarEventProps>
17
+ export const Toolbar: typeof VxeToolbar
18
18
 
19
19
  export type VxeToolbarInstance = ComponentPublicInstance<VxeToolbarProps, VxeToolbarConstructor>
20
20
 
@@ -195,3 +195,18 @@ export type VxeToolbarEventProps = {
195
195
  export interface VxeToolbarListeners { }
196
196
 
197
197
  export namespace VxeToolbarEvents { }
198
+
199
+ export interface VxeToolbarSlots {
200
+ /**
201
+ * 自定义左侧按钮列表
202
+ */
203
+ buttons: (params: {
204
+ [key: string]: any
205
+ }) => any
206
+ /**
207
+ * 自定义右侧工具列表
208
+ */
209
+ tools: ((params: {
210
+ [key: string]: any
211
+ }) => any) | undefined
212
+ }