vxe-table 3.9.0-rc.2 → 3.9.0-rc.21

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 (186) hide show
  1. package/es/grid/src/grid.js +120 -66
  2. package/es/locale/lang/en-US.js +2 -8
  3. package/es/locale/lang/es-ES.js +2 -1
  4. package/es/locale/lang/hu-HU.d.ts +2 -0
  5. package/es/locale/lang/hu-HU.js +497 -501
  6. package/es/locale/lang/ja-JP.js +2 -8
  7. package/es/locale/lang/ko-KR.d.ts +2 -0
  8. package/es/locale/lang/ko-KR.js +2 -8
  9. package/es/locale/lang/pt-BR.js +2 -8
  10. package/es/locale/lang/ru-RU.d.ts +2 -0
  11. package/es/locale/lang/ru-RU.js +497 -503
  12. package/es/locale/lang/uk-UA.d.ts +2 -0
  13. package/es/locale/lang/uk-UA.js +667 -0
  14. package/es/locale/lang/vi-VN.js +2 -8
  15. package/es/locale/lang/zh-CHT.d.ts +2 -0
  16. package/es/locale/lang/zh-CHT.js +667 -0
  17. package/es/locale/lang/zh-CN.js +2 -8
  18. package/es/locale/lang/zh-HK.js +2 -2
  19. package/es/locale/lang/zh-MO.js +2 -2
  20. package/es/locale/lang/zh-TC.js +2 -673
  21. package/es/locale/lang/zh-TW.js +2 -2
  22. package/es/style.css +1 -1
  23. package/es/style.min.css +1 -1
  24. package/es/table/index.js +29 -3
  25. package/es/table/module/custom/panel.js +183 -173
  26. package/es/table/module/edit/mixin.js +33 -24
  27. package/es/table/module/export/export-panel.js +32 -4
  28. package/es/table/module/export/import-panel.js +24 -5
  29. package/es/table/module/export/mixin.js +11 -11
  30. package/es/table/module/menu/mixin.js +2 -2
  31. package/es/table/module/validator/mixin.js +4 -4
  32. package/es/table/render/index.js +23 -38
  33. package/es/table/src/body.js +1 -0
  34. package/es/table/src/columnInfo.js +3 -3
  35. package/es/table/src/methods.js +48 -40
  36. package/es/table/src/props.js +65 -15
  37. package/es/table/src/table.js +161 -55
  38. package/es/table/src/util.js +3 -2
  39. package/es/table/style.css +37 -23
  40. package/es/table/style.min.css +1 -1
  41. package/es/toolbar/src/toolbar.js +21 -7
  42. package/es/ui/index.js +5 -4
  43. package/es/ui/src/log.js +1 -1
  44. package/es/ui/src/vn.js +24 -1
  45. package/es/vxe-table/style.css +37 -23
  46. package/es/vxe-table/style.min.css +1 -1
  47. package/lib/grid/src/grid.js +115 -68
  48. package/lib/grid/src/grid.min.js +1 -1
  49. package/lib/index.umd.js +632 -330
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/locale/lang/en-US.js +2 -8
  52. package/lib/locale/lang/en-US.min.js +1 -1
  53. package/lib/locale/lang/en-US.umd.js +2 -8
  54. package/lib/locale/lang/es-ES.js +2 -1
  55. package/lib/locale/lang/es-ES.min.js +1 -1
  56. package/lib/locale/lang/es-ES.umd.js +2 -1
  57. package/lib/locale/lang/hu-HU.d.ts +2 -0
  58. package/lib/locale/lang/hu-HU.js +497 -501
  59. package/lib/locale/lang/hu-HU.min.js +1 -1
  60. package/lib/locale/lang/hu-HU.umd.js +687 -0
  61. package/lib/locale/lang/ja-JP.js +2 -8
  62. package/lib/locale/lang/ja-JP.min.js +1 -1
  63. package/lib/locale/lang/ja-JP.umd.js +2 -8
  64. package/lib/locale/lang/ko-KR.d.ts +2 -0
  65. package/lib/locale/lang/ko-KR.js +2 -8
  66. package/lib/locale/lang/ko-KR.min.js +1 -1
  67. package/lib/locale/lang/ko-KR.umd.js +687 -0
  68. package/lib/locale/lang/pt-BR.js +2 -8
  69. package/lib/locale/lang/pt-BR.min.js +1 -1
  70. package/lib/locale/lang/pt-BR.umd.js +2 -8
  71. package/lib/locale/lang/ru-RU.d.ts +2 -0
  72. package/lib/locale/lang/ru-RU.js +497 -503
  73. package/lib/locale/lang/ru-RU.min.js +1 -1
  74. package/lib/locale/lang/ru-RU.umd.js +687 -0
  75. package/lib/locale/lang/uk-UA.d.ts +2 -0
  76. package/lib/locale/lang/uk-UA.js +673 -0
  77. package/lib/locale/lang/uk-UA.min.js +1 -0
  78. package/lib/locale/lang/uk-UA.umd.js +687 -0
  79. package/lib/locale/lang/vi-VN.js +2 -8
  80. package/lib/locale/lang/vi-VN.min.js +1 -1
  81. package/lib/locale/lang/zh-CHT.d.ts +2 -0
  82. package/lib/locale/lang/zh-CHT.js +673 -0
  83. package/lib/locale/lang/zh-CHT.min.js +1 -0
  84. package/lib/locale/lang/zh-CHT.umd.js +687 -0
  85. package/lib/locale/lang/zh-CN.js +2 -8
  86. package/lib/locale/lang/zh-CN.min.js +1 -1
  87. package/lib/locale/lang/zh-CN.umd.js +2 -8
  88. package/lib/locale/lang/zh-HK.js +2 -2
  89. package/lib/locale/lang/zh-HK.min.js +1 -1
  90. package/lib/locale/lang/zh-HK.umd.js +7 -677
  91. package/lib/locale/lang/zh-MO.js +2 -2
  92. package/lib/locale/lang/zh-MO.min.js +1 -1
  93. package/lib/locale/lang/zh-MO.umd.js +7 -677
  94. package/lib/locale/lang/zh-TC.js +3 -673
  95. package/lib/locale/lang/zh-TC.min.js +1 -1
  96. package/lib/locale/lang/zh-TC.umd.js +7 -677
  97. package/lib/locale/lang/zh-TW.js +2 -2
  98. package/lib/locale/lang/zh-TW.min.js +1 -1
  99. package/lib/locale/lang/zh-TW.umd.js +7 -677
  100. package/lib/style.css +1 -1
  101. package/lib/style.min.css +1 -1
  102. package/lib/table/index.js +30 -3
  103. package/lib/table/index.min.js +1 -1
  104. package/lib/table/module/custom/panel.js +12 -7
  105. package/lib/table/module/custom/panel.min.js +1 -1
  106. package/lib/table/module/edit/mixin.js +32 -23
  107. package/lib/table/module/edit/mixin.min.js +1 -1
  108. package/lib/table/module/export/export-panel.js +31 -4
  109. package/lib/table/module/export/export-panel.min.js +1 -1
  110. package/lib/table/module/export/import-panel.js +23 -5
  111. package/lib/table/module/export/import-panel.min.js +1 -1
  112. package/lib/table/module/export/mixin.js +11 -11
  113. package/lib/table/module/export/mixin.min.js +1 -1
  114. package/lib/table/module/menu/mixin.js +2 -2
  115. package/lib/table/module/menu/mixin.min.js +1 -1
  116. package/lib/table/module/validator/mixin.js +4 -4
  117. package/lib/table/module/validator/mixin.min.js +1 -1
  118. package/lib/table/render/index.js +27 -41
  119. package/lib/table/render/index.min.js +1 -1
  120. package/lib/table/src/body.js +1 -1
  121. package/lib/table/src/body.min.js +1 -1
  122. package/lib/table/src/columnInfo.js +3 -3
  123. package/lib/table/src/columnInfo.min.js +1 -1
  124. package/lib/table/src/methods.js +47 -40
  125. package/lib/table/src/methods.min.js +1 -1
  126. package/lib/table/src/props.js +7 -0
  127. package/lib/table/src/props.min.js +1 -1
  128. package/lib/table/src/table.js +147 -48
  129. package/lib/table/src/table.min.js +1 -1
  130. package/lib/table/src/util.js +3 -2
  131. package/lib/table/src/util.min.js +1 -1
  132. package/lib/table/style/style.css +37 -23
  133. package/lib/table/style/style.min.css +1 -1
  134. package/lib/toolbar/src/toolbar.js +21 -7
  135. package/lib/toolbar/src/toolbar.min.js +1 -1
  136. package/lib/ui/index.js +6 -5
  137. package/lib/ui/index.min.js +1 -1
  138. package/lib/ui/src/log.js +1 -1
  139. package/lib/ui/src/log.min.js +1 -1
  140. package/lib/ui/src/vn.js +26 -1
  141. package/lib/ui/src/vn.min.js +1 -1
  142. package/lib/vxe-table/style/style.css +37 -23
  143. package/lib/vxe-table/style/style.min.css +1 -1
  144. package/package.json +2 -2
  145. package/packages/grid/src/grid.ts +127 -65
  146. package/packages/locale/lang/en-US.ts +2 -10
  147. package/packages/locale/lang/es-ES.ts +2 -1
  148. package/packages/locale/lang/hu-HU.ts +497 -503
  149. package/packages/locale/lang/ja-JP.ts +2 -10
  150. package/packages/locale/lang/ko-KR.ts +2 -10
  151. package/packages/locale/lang/pt-BR.ts +2 -10
  152. package/packages/locale/lang/ru-RU.ts +497 -505
  153. package/packages/locale/lang/uk-UA.ts +667 -0
  154. package/packages/locale/lang/vi-VN.ts +2 -10
  155. package/packages/locale/lang/zh-CHT.ts +667 -0
  156. package/packages/locale/lang/zh-CN.ts +2 -10
  157. package/packages/locale/lang/zh-HK.ts +2 -2
  158. package/packages/locale/lang/zh-MO.ts +2 -2
  159. package/packages/locale/lang/zh-TC.ts +2 -674
  160. package/packages/locale/lang/zh-TW.ts +2 -2
  161. package/packages/table/index.ts +28 -5
  162. package/packages/table/module/custom/panel.ts +186 -175
  163. package/packages/table/module/edit/mixin.ts +32 -23
  164. package/packages/table/module/export/export-panel.ts +36 -4
  165. package/packages/table/module/export/import-panel.ts +28 -5
  166. package/packages/table/module/export/mixin.ts +11 -11
  167. package/packages/table/module/menu/mixin.ts +2 -2
  168. package/packages/table/module/validator/mixin.ts +4 -4
  169. package/packages/table/render/index.ts +26 -40
  170. package/packages/table/src/body.ts +1 -0
  171. package/packages/table/src/columnInfo.ts +3 -3
  172. package/packages/table/src/methods.ts +47 -40
  173. package/packages/table/src/props.ts +68 -15
  174. package/packages/table/src/table.ts +167 -56
  175. package/packages/table/src/util.ts +3 -2
  176. package/packages/toolbar/src/toolbar.ts +21 -7
  177. package/packages/ui/index.ts +3 -2
  178. package/packages/ui/src/vn.ts +26 -1
  179. package/styles/components/table.scss +82 -17
  180. package/types/all.d.ts +2 -2
  181. /package/es/{iconfont.1726028471123.ttf → iconfont.1727868548661.ttf} +0 -0
  182. /package/es/{iconfont.1726028471123.woff → iconfont.1727868548661.woff} +0 -0
  183. /package/es/{iconfont.1726028471123.woff2 → iconfont.1727868548661.woff2} +0 -0
  184. /package/lib/{iconfont.1726028471123.ttf → iconfont.1727868548661.ttf} +0 -0
  185. /package/lib/{iconfont.1726028471123.woff → iconfont.1727868548661.woff} +0 -0
  186. /package/lib/{iconfont.1726028471123.woff2 → iconfont.1727868548661.woff2} +0 -0
@@ -8,39 +8,89 @@ export default {
8
8
  // 表格的高度
9
9
  height: [Number, String],
10
10
  // 表格的最小高度
11
- minHeight: { type: [Number, String], default: () => getConfig().table.minHeight },
11
+ minHeight: {
12
+ type: [Number, String],
13
+ default: () => getConfig().table.minHeight
14
+ },
12
15
  // 表格的最大高度
13
16
  maxHeight: [Number, String],
14
17
  // 已废弃,被 column-config.resizable 替换
15
- resizable: { type: Boolean, default: () => getConfig().table.resizable },
18
+ resizable: {
19
+ type: Boolean,
20
+ default: () => getConfig().table.resizable
21
+ },
16
22
  // 是否带有斑马纹
17
- stripe: { type: Boolean, default: () => getConfig().table.stripe },
23
+ stripe: {
24
+ type: Boolean,
25
+ default: () => getConfig().table.stripe
26
+ },
18
27
  // 是否带有边框
19
- border: { type: [Boolean, String], default: () => getConfig().table.border },
28
+ border: {
29
+ type: [Boolean, String],
30
+ default: () => getConfig().table.border
31
+ },
32
+ // 单元格是否有边距
33
+ padding: {
34
+ type: Boolean,
35
+ default: () => getConfig().table.padding
36
+ },
20
37
  // 是否圆角边框
21
- round: { type: Boolean, default: () => getConfig().table.round },
38
+ round: {
39
+ type: Boolean,
40
+ default: () => getConfig().table.round
41
+ },
22
42
  // 表格的尺寸
23
- size: { type: String, default: () => getConfig().table.size || getConfig().size },
43
+ size: {
44
+ type: String,
45
+ default: () => getConfig().table.size || getConfig().size
46
+ },
24
47
  // 列的宽度是否自撑开(可能会被废弃的参数,不要使用)
25
- fit: { type: Boolean, default: () => getConfig().table.fit },
48
+ fit: {
49
+ type: Boolean,
50
+ default: () => getConfig().table.fit
51
+ },
26
52
  // 表格是否加载中
27
53
  loading: Boolean,
28
54
  // 所有的列对其方式
29
- align: { type: String, default: () => getConfig().table.align },
55
+ align: {
56
+ type: String,
57
+ default: () => getConfig().table.align
58
+ },
30
59
  // 所有的表头列的对齐方式
31
- headerAlign: { type: String, default: () => getConfig().table.headerAlign },
60
+ headerAlign: {
61
+ type: String,
62
+ default: () => getConfig().table.headerAlign
63
+ },
32
64
  // 所有的表尾列的对齐方式
33
- footerAlign: { type: String, default: () => getConfig().table.footerAlign },
65
+ footerAlign: {
66
+ type: String,
67
+ default: () => getConfig().table.footerAlign
68
+ },
34
69
  // 是否显示表头
35
- showHeader: { type: Boolean, default: () => getConfig().table.showHeader },
70
+ showHeader: {
71
+ type: Boolean,
72
+ default: () => getConfig().table.showHeader
73
+ },
36
74
  // 已废弃,被 row-config.isCurrent 替换
37
- highlightCurrentRow: { type: Boolean, default: () => getConfig().table.highlightCurrentRow },
75
+ highlightCurrentRow: {
76
+ type: Boolean,
77
+ default: () => getConfig().table.highlightCurrentRow
78
+ },
38
79
  // 已废弃,被 row-config.isHover 替换
39
- highlightHoverRow: { type: Boolean, default: () => getConfig().table.highlightHoverRow },
80
+ highlightHoverRow: {
81
+ type: Boolean,
82
+ default: () => getConfig().table.highlightHoverRow
83
+ },
40
84
  // 已废弃,被 column-config.isCurrent 替换
41
- highlightCurrentColumn: { type: Boolean, default: () => getConfig().table.highlightCurrentColumn },
85
+ highlightCurrentColumn: {
86
+ type: Boolean,
87
+ default: () => getConfig().table.highlightCurrentColumn
88
+ },
42
89
  // 已废弃,被 column-config.isHover 替换
43
- highlightHoverColumn: { type: Boolean, default: () => getConfig().table.highlightHoverColumn },
90
+ highlightHoverColumn: {
91
+ type: Boolean,
92
+ default: () => getConfig().table.highlightHoverColumn
93
+ },
44
94
  // 已废弃,直接删除
45
95
  highlightCell: Boolean,
46
96
  // 是否显示表尾合计
@@ -357,13 +357,22 @@ export default {
357
357
  return '';
358
358
  },
359
359
  validOpts() {
360
- return Object.assign({ message: 'default' }, getConfig().table.validConfig, this.validConfig);
360
+ return this.computeValidOpts;
361
+ },
362
+ computeValidOpts() {
363
+ return Object.assign({ message: 'default' }, XEUtils.clone(getConfig().table.validConfig, true), this.validConfig);
361
364
  },
362
365
  sXOpts() {
363
- return Object.assign({}, getConfig().table.scrollX, this.scrollX);
366
+ return this.computeSXOpts;
367
+ },
368
+ computeSXOpts() {
369
+ return Object.assign({}, XEUtils.clone(getConfig().table.scrollX, true), this.scrollX);
364
370
  },
365
371
  sYOpts() {
366
- return Object.assign({}, getConfig().table.scrollY, this.scrollY);
372
+ return this.computeSYOpts;
373
+ },
374
+ computeSYOpts() {
375
+ return Object.assign({}, XEUtils.clone(getConfig().table.scrollY, true), this.scrollY);
367
376
  },
368
377
  rowHeightMaps() {
369
378
  return {
@@ -374,28 +383,52 @@ export default {
374
383
  };
375
384
  },
376
385
  columnOpts() {
377
- return Object.assign({}, getConfig().table.columnConfig, this.columnConfig);
386
+ return this.computeColumnOpts;
387
+ },
388
+ computeColumnOpts() {
389
+ return Object.assign({}, XEUtils.clone(getConfig().table.columnConfig, true), this.columnConfig);
378
390
  },
379
391
  rowOpts() {
380
- return Object.assign({}, getConfig().table.rowConfig, this.rowConfig);
392
+ return this.computeRowOpts;
393
+ },
394
+ computeRowOpts() {
395
+ return Object.assign({}, XEUtils.clone(getConfig().table.rowConfig, true), this.rowConfig);
381
396
  },
382
397
  resizeOpts() {
383
- return Object.assign({}, getConfig().table.resizeConfig, this.resizeConfig);
398
+ return this.computeResizeOpts;
399
+ },
400
+ computeResizeOpts() {
401
+ return Object.assign({}, XEUtils.clone(getConfig().table.resizeConfig, true), this.resizeConfig);
384
402
  },
385
403
  resizableOpts() {
386
- return Object.assign({}, getConfig().table.resizableConfig, this.resizableConfig);
404
+ return this.computeResizableOpts;
405
+ },
406
+ computeResizableOpts() {
407
+ return Object.assign({}, XEUtils.clone(getConfig().table.resizableConfig, true), this.resizableConfig);
387
408
  },
388
409
  seqOpts() {
389
- return Object.assign({ startIndex: 0 }, getConfig().table.seqConfig, this.seqConfig);
410
+ return this.computeSeqOpts;
411
+ },
412
+ computeSeqOpts() {
413
+ return Object.assign({ startIndex: 0 }, XEUtils.clone(getConfig().table.seqConfig, true), this.seqConfig);
390
414
  },
391
415
  radioOpts() {
392
- return Object.assign({}, getConfig().table.radioConfig, this.radioConfig);
416
+ return this.computeRadioOpts;
417
+ },
418
+ computeRadioOpts() {
419
+ return Object.assign({}, XEUtils.clone(getConfig().table.radioConfig, true), this.radioConfig);
393
420
  },
394
421
  checkboxOpts() {
395
- return Object.assign({}, getConfig().table.checkboxConfig, this.checkboxConfig);
422
+ return this.computeCheckboxOpts;
423
+ },
424
+ computeCheckboxOpts() {
425
+ return Object.assign({}, XEUtils.clone(getConfig().table.checkboxConfig, true), this.checkboxConfig);
396
426
  },
397
427
  tooltipOpts() {
398
- return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, this.tooltipConfig);
428
+ return this.computeTooltipOpts;
429
+ },
430
+ computeTooltipOpts() {
431
+ return Object.assign({}, XEUtils.clone(getConfig().tooltip, true), XEUtils.clone(getConfig().table.tooltipConfig, true), this.tooltipConfig);
399
432
  },
400
433
  tipConfig() {
401
434
  return Object.assign({}, this.tooltipOpts);
@@ -404,32 +437,52 @@ export default {
404
437
  return Object.assign({ isArrow: false }, this.tooltipOpts);
405
438
  },
406
439
  editOpts() {
407
- return Object.assign({}, getConfig().table.editConfig, this.editConfig);
440
+ return this.computeEditOpts;
441
+ },
442
+ computeEditOpts() {
443
+ return Object.assign({}, XEUtils.clone(getConfig().table.editConfig, true), this.editConfig);
408
444
  },
409
445
  sortOpts() {
410
- return Object.assign({ orders: ['asc', 'desc', null] }, getConfig().table.sortConfig, this.sortConfig);
446
+ return this.computeSortOpts;
447
+ },
448
+ computeSortOpts() {
449
+ return Object.assign({ orders: ['asc', 'desc', null] }, XEUtils.clone(getConfig().table.sortConfig, true), this.sortConfig);
411
450
  },
412
451
  filterOpts() {
413
- return Object.assign({}, getConfig().table.filterConfig, this.filterConfig);
452
+ return this.computeFilterOpts;
453
+ },
454
+ computeFilterOpts() {
455
+ return Object.assign({}, XEUtils.clone(getConfig().table.filterConfig, true), this.filterConfig);
414
456
  },
415
457
  mouseOpts() {
416
- return Object.assign({}, getConfig().table.mouseConfig, this.mouseConfig);
458
+ return this.computeMouseOpts;
459
+ },
460
+ computeMouseOpts() {
461
+ return Object.assign({}, XEUtils.clone(getConfig().table.mouseConfig, true), this.mouseConfig);
417
462
  },
418
463
  areaOpts() {
419
- return Object.assign({}, getConfig().table.areaConfig, this.areaConfig);
464
+ return this.computeAreaOpts;
465
+ },
466
+ computeAreaOpts() {
467
+ return Object.assign({}, XEUtils.clone(getConfig().table.areaConfig, true), this.areaConfig);
420
468
  },
421
469
  keyboardOpts() {
422
- return Object.assign({}, getConfig().table.keyboardConfig, this.keyboardConfig);
470
+ return this.computeKeyboardOpts;
471
+ },
472
+ computeKeyboardOpts() {
473
+ return Object.assign({}, XEUtils.clone(getConfig().table.keyboardConfig, true), this.keyboardConfig);
423
474
  },
424
475
  clipOpts() {
425
- return Object.assign({}, getConfig().table.clipConfig, this.clipConfig);
476
+ return this.computeClipOpts;
477
+ },
478
+ computeClipOpts() {
479
+ return Object.assign({}, XEUtils.clone(getConfig().table.clipConfig, true), this.clipConfig);
426
480
  },
427
481
  fnrOpts() {
428
- return Object.assign({}, getConfig().table.fnrConfig, this.fnrConfig);
482
+ return this.computeFNROpts;
429
483
  },
430
- hasTip() {
431
- return true;
432
- // return VXETable._tooltip
484
+ computeFNROpts() {
485
+ return Object.assign({}, XEUtils.clone(getConfig().table.fnrConfig, true), this.fnrConfig);
433
486
  },
434
487
  headerCtxMenu() {
435
488
  const headerOpts = this.ctxMenuOpts.header;
@@ -446,9 +499,6 @@ export default {
446
499
  isCtxMenu() {
447
500
  return !!((this.contextMenu || this.menuConfig) && isEnableConf(this.ctxMenuOpts) && (this.headerCtxMenu.length || this.bodyCtxMenu.length || this.footerCtxMenu.length));
448
501
  },
449
- ctxMenuOpts() {
450
- return Object.assign({}, getConfig().table.menuConfig, this.contextMenu, this.menuConfig);
451
- },
452
502
  ctxMenuList() {
453
503
  const rest = [];
454
504
  this.ctxMenuStore.list.forEach((list) => {
@@ -458,36 +508,63 @@ export default {
458
508
  });
459
509
  return rest;
460
510
  },
511
+ ctxMenuOpts() {
512
+ return this.computeMenuOpts;
513
+ },
514
+ computeMenuOpts() {
515
+ return Object.assign({}, XEUtils.clone(getConfig().table.menuConfig, true), this.contextMenu, this.menuConfig);
516
+ },
461
517
  exportOpts() {
462
- return Object.assign({}, getConfig().table.exportConfig, this.exportConfig);
518
+ return this.computeExportOpts;
519
+ },
520
+ computeExportOpts() {
521
+ return Object.assign({}, XEUtils.clone(getConfig().table.exportConfig, true), this.exportConfig);
463
522
  },
464
523
  importOpts() {
465
- return Object.assign({}, getConfig().table.importConfig, this.importConfig);
524
+ return this.computeImportOpts;
525
+ },
526
+ computeImportOpts() {
527
+ return Object.assign({}, XEUtils.clone(getConfig().table.importConfig, true), this.importConfig);
466
528
  },
467
529
  printOpts() {
468
- return Object.assign({}, getConfig().table.printConfig, this.printConfig);
530
+ return this.computePrintOpts;
531
+ },
532
+ computePrintOpts() {
533
+ return Object.assign({}, XEUtils.clone(getConfig().table.printConfig, true), this.printConfig);
469
534
  },
470
535
  expandOpts() {
471
- return Object.assign({}, getConfig().table.expandConfig, this.expandConfig);
536
+ return this.computeExpandOpts;
537
+ },
538
+ computeExpandOpts() {
539
+ return Object.assign({}, XEUtils.clone(getConfig().table.expandConfig, true), this.expandConfig);
472
540
  },
473
541
  treeOpts() {
474
- return Object.assign({}, getConfig().table.treeConfig, this.treeConfig);
542
+ return this.computeTreeOpts;
543
+ },
544
+ computeTreeOpts() {
545
+ return Object.assign({}, XEUtils.clone(getConfig().table.treeConfig, true), this.treeConfig);
475
546
  },
476
547
  emptyOpts() {
477
- return Object.assign({}, getConfig().table.emptyRender, this.emptyRender);
548
+ return this.computeEmptyOpts;
549
+ },
550
+ computeEmptyOpts() {
551
+ return Object.assign({}, XEUtils.clone(getConfig().table.emptyRender, true), this.emptyRender);
478
552
  },
479
553
  loadingOpts() {
480
- return Object.assign({}, getConfig().table.loadingConfig, this.loadingConfig);
554
+ return this.computeLoadingOpts;
555
+ },
556
+ computeLoadingOpts() {
557
+ return Object.assign({}, XEUtils.clone(getConfig().table.loadingConfig, true), this.loadingConfig);
481
558
  },
482
559
  cellOffsetWidth() {
483
560
  return this.border ? Math.max(2, Math.ceil(this.scrollbarWidth / this.tableColumn.length)) : 1;
484
561
  },
485
- computeCustomOpts() {
486
- return Object.assign({}, getConfig().table.customConfig, this.customConfig);
487
- },
488
562
  customOpts() {
489
563
  return this.computeCustomOpts;
490
564
  },
565
+ computeCustomOpts() {
566
+ return Object.assign({}, XEUtils.clone(getConfig().table.customConfig, true), this.customConfig);
567
+ },
491
568
  autoWidthColumnList() {
492
569
  const { tableColumn, visibleColumn } = this;
493
570
  return tableColumn.length || visibleColumn.length ? visibleColumn.filter((column) => column.width === 'auto' || column.minWidth === 'auto') : [];
@@ -658,7 +735,7 @@ export default {
658
735
  fullColumnIdData: {},
659
736
  fullColumnFieldData: {}
660
737
  });
661
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
738
+ if (process.env.NODE_ENV === 'development') {
662
739
  if (this.rowId) {
663
740
  warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField']);
664
741
  }
@@ -707,7 +784,7 @@ export default {
707
784
  warnLog('vxe.error.errProp', [`export-config.types=${exportOpts.types.join(',')}`, exportOpts.types.filter((type) => XEUtils.includes(XEUtils.keys(exportOpts._typeMaps), type)).join(',') || XEUtils.keys(exportOpts._typeMaps).join(',')]);
708
785
  }
709
786
  }
710
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
787
+ if (process.env.NODE_ENV === 'development') {
711
788
  const customOpts = this.customOpts;
712
789
  if (!this.id && this.customConfig && (customOpts.storage === true || (customOpts.storage && customOpts.storage.resizable) || (customOpts.storage && customOpts.storage.visible))) {
713
790
  errLog('vxe.error.reqProp', ['id']);
@@ -747,7 +824,7 @@ export default {
747
824
  }
748
825
  }
749
826
  // v4 中只支持对象类型
750
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
827
+ if (process.env.NODE_ENV === 'development') {
751
828
  // 在 v3.0 中废弃 context-menu
752
829
  if (this.contextMenu) {
753
830
  warnLog('vxe.error.delProp', ['context-menu', 'menu-config']);
@@ -790,7 +867,7 @@ export default {
790
867
  }
791
868
  }
792
869
  // 检查是否有安装需要的模块
793
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
870
+ if (process.env.NODE_ENV === 'development') {
794
871
  if (this.editConfig && !this._insert) {
795
872
  errLog('vxe.error.reqModule', ['Edit']);
796
873
  }
@@ -836,7 +913,9 @@ export default {
836
913
  this.preventEvent(null, 'created');
837
914
  },
838
915
  mounted() {
839
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
916
+ const $xeTable = this;
917
+ const props = $xeTable;
918
+ if (process.env.NODE_ENV === 'development') {
840
919
  const { $listeners } = this;
841
920
  if (!this.menuConfig && ($listeners['menu-click'] || $listeners['cell-menu'] || $listeners['header-cell-menu'] || $listeners['footer-cell-menu'])) {
842
921
  warnLog('vxe.error.reqProp', ['menu-config']);
@@ -845,6 +924,26 @@ export default {
845
924
  warnLog('vxe.error.reqProp', ['tooltip-config']);
846
925
  }
847
926
  }
927
+ if (process.env.NODE_ENV === 'development') {
928
+ // 使用已安装的组件,如果未安装则不渲染
929
+ const VxeUILoadingComponent = VxeUI.getComponent('VxeLoading');
930
+ const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
931
+ $xeTable.$nextTick(() => {
932
+ if (props.loading) {
933
+ if (!VxeUILoadingComponent) {
934
+ errLog('vxe.error.reqComp', ['vxe-loading']);
935
+ }
936
+ }
937
+ if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
938
+ (props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip') ||
939
+ (props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') ||
940
+ props.tooltipConfig || props.editRules) {
941
+ if (!VxeUITooltipComponent) {
942
+ errLog('vxe.error.reqComp', ['vxe-tooltip']);
943
+ }
944
+ }
945
+ });
946
+ }
848
947
  if (this.autoResize) {
849
948
  const handleWrapperResize = this.resizeOpts.refreshDelay ? XEUtils.throttle(() => this.recalculate(true), this.resizeOpts.refreshDelay, { leading: true, trailing: true }) : null;
850
949
  const resizeObserver = globalResize.create(handleWrapperResize
@@ -892,9 +991,13 @@ export default {
892
991
  this.preventEvent(null, 'destroyed');
893
992
  },
894
993
  render(h) {
895
- const { _e, $scopedSlots, tId, isCalcColumn, tableData, tableColumn, tableGroupColumn, isGroup, loading, stripe, showHeader, height, tableBorder, treeOpts, treeConfig, mouseConfig, mouseOpts, vSize, validOpts, showFooter, overflowX, overflowY, scrollXLoad, scrollYLoad, scrollbarHeight, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, validTipOpts, initStore, columnStore, filterStore, customStore, ctxMenuStore, ctxMenuOpts, footerTableData, hasTip, columnOpts, rowOpts, checkboxOpts, loadingOpts, editRules } = this;
994
+ // 使用已安装的组件,如果未安装则不渲染
995
+ const VxeUILoadingComponent = VxeUI.getComponent('VxeLoading');
996
+ const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
997
+ const { _e, $scopedSlots, tId, isCalcColumn, tableData, tableColumn, tableGroupColumn, isGroup, loading, stripe, showHeader, height, tableBorder, treeOpts, treeConfig, mouseConfig, mouseOpts, computeSize, validOpts, showFooter, overflowX, overflowY, scrollXLoad, scrollYLoad, scrollbarHeight, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, validTipOpts, initStore, columnStore, filterStore, customStore, ctxMenuStore, ctxMenuOpts, footerTableData, columnOpts, rowOpts, checkboxOpts, loadingOpts, editRules } = this;
896
998
  const { leftList, rightList } = columnStore;
897
999
  const currLoading = this._isLoading || loading;
1000
+ const vSize = computeSize;
898
1001
  return h('div', {
899
1002
  class: ['vxe-table', 'vxe-table--render-default', `tid_${tId}`, vSize ? `size--${vSize}` : '', `border--${tableBorder}`, {
900
1003
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
@@ -914,6 +1017,7 @@ export default {
914
1017
  'is--fixed-left': leftList.length,
915
1018
  'is--fixed-right': rightList.length,
916
1019
  'is--animat': !!this.animat,
1020
+ 'is--padding': this.padding,
917
1021
  'is--round': this.round,
918
1022
  'is--stripe': !treeConfig && stripe,
919
1023
  'is--loading': currLoading,
@@ -1027,14 +1131,16 @@ export default {
1027
1131
  /**
1028
1132
  * 加载中
1029
1133
  */
1030
- h('vxe-loading', {
1031
- class: 'vxe-table--loading',
1032
- props: {
1033
- value: currLoading,
1034
- icon: loadingOpts.icon,
1035
- text: loadingOpts.text
1036
- }
1037
- }, this.callSlot($scopedSlots.loading, {}, h)),
1134
+ VxeUILoadingComponent
1135
+ ? h(VxeUILoadingComponent, {
1136
+ class: 'vxe-table--loading',
1137
+ props: {
1138
+ value: currLoading,
1139
+ icon: loadingOpts.icon,
1140
+ text: loadingOpts.text
1141
+ }
1142
+ }, this.callSlot($scopedSlots.loading, {}, h))
1143
+ : _e(),
1038
1144
  /**
1039
1145
  * 自定义列
1040
1146
  */
@@ -1095,8 +1201,8 @@ export default {
1095
1201
  /**
1096
1202
  * 通用提示
1097
1203
  */
1098
- hasTip
1099
- ? h('vxe-tooltip', {
1204
+ VxeUITooltipComponent
1205
+ ? h(VxeUITooltipComponent, {
1100
1206
  ref: 'commTip',
1101
1207
  props: {
1102
1208
  isArrow: false,
@@ -1107,8 +1213,8 @@ export default {
1107
1213
  /**
1108
1214
  * 工具提示
1109
1215
  */
1110
- hasTip
1111
- ? h('vxe-tooltip', {
1216
+ VxeUITooltipComponent
1217
+ ? h(VxeUITooltipComponent, {
1112
1218
  ref: 'tooltip',
1113
1219
  props: Object.assign({}, this.tipConfig, this.tooltipStore.currOpts)
1114
1220
  })
@@ -1116,8 +1222,8 @@ export default {
1116
1222
  /**
1117
1223
  * 校验提示
1118
1224
  */
1119
- hasTip && this.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip')
1120
- ? h('vxe-tooltip', {
1225
+ VxeUITooltipComponent && this.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip')
1226
+ ? h(VxeUITooltipComponent, {
1121
1227
  ref: 'validTip',
1122
1228
  class: [{
1123
1229
  'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
@@ -135,7 +135,7 @@ export function assembleColumn(_vm) {
135
135
  const groupConfig = $xecolumn ? $xecolumn.columnConfig : null;
136
136
  columnConfig.slots = _vm.$scopedSlots;
137
137
  if (groupConfig) {
138
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
138
+ if (process.env.NODE_ENV === 'development') {
139
139
  if ($xecolumn.$options._componentTag === 'vxe-table-column') {
140
140
  errLog('vxe.error.groupTag', [`<vxe-table-colgroup title=${$xecolumn.title} ...>`, `<vxe-table-column title=${$xecolumn.title} ...>`]);
141
141
  }
@@ -251,7 +251,8 @@ function countTreeExpand(prevRow, params) {
251
251
  return count;
252
252
  }
253
253
  export function getOffsetSize($xetable) {
254
- return lineOffsetSizes[$xetable.vSize] || 0;
254
+ const vSize = $xetable.computeSize;
255
+ return lineOffsetSizes[vSize] || 0;
255
256
  }
256
257
  export function calcTreeLine(params, items, rIndex) {
257
258
  const { $table } = params;
@@ -1771,6 +1771,16 @@
1771
1771
  resize: none;
1772
1772
  }
1773
1773
 
1774
+ .vxe-body--column.col--height.col--active > .vxe-cell {
1775
+ height: 100%;
1776
+ }
1777
+ .vxe-body--column.col--height > .vxe-cell > .vxe-textarea, .vxe-body--column.col--height > .vxe-cell > .vxe-default-textarea {
1778
+ height: 100%;
1779
+ }
1780
+ .vxe-body--column .vxe-cell--label.is--textarea {
1781
+ white-space: pre-line;
1782
+ }
1783
+
1774
1784
  .vxe-table--checkbox-range,
1775
1785
  .vxe-table--cell-main-area,
1776
1786
  .vxe-table--cell-extend-area,
@@ -1991,12 +2001,12 @@
1991
2001
  top: 0.2em;
1992
2002
  }
1993
2003
  .vxe-header--column .vxe-cell--required-icon {
1994
- margin-right: 0.1em;
2004
+ padding-right: 0.1em;
1995
2005
  }
1996
2006
  .vxe-header--column .vxe-cell--edit-icon,
1997
2007
  .vxe-header--column .vxe-cell-title-prefix-icon,
1998
2008
  .vxe-header--column .vxe-cell-title-suffix-icon {
1999
- margin-right: 0.2em;
2009
+ padding: 0.2em;
2000
2010
  }
2001
2011
  .vxe-header--column .vxe-cell-title-prefix-icon,
2002
2012
  .vxe-header--column .vxe-cell-title-suffix-icon {
@@ -2053,10 +2063,10 @@
2053
2063
  /*单元格编辑状态*/
2054
2064
  /*可编辑*/
2055
2065
  }
2056
- .vxe-table--render-default .vxe-table--body-wrapper table {
2066
+ .vxe-table--render-default .vxe-table--body-wrapper > table {
2057
2067
  background-color: var(--vxe-ui-layout-background-color);
2058
2068
  }
2059
- .vxe-table--render-default .vxe-table--footer-wrapper table {
2069
+ .vxe-table--render-default .vxe-table--footer-wrapper > table {
2060
2070
  background-color: var(--vxe-ui-table-footer-background-color);
2061
2071
  }
2062
2072
  .vxe-table--render-default .vxe-table--header,
@@ -2143,6 +2153,13 @@
2143
2153
  -ms-user-select: none;
2144
2154
  user-select: none;
2145
2155
  }
2156
+ .vxe-table--render-default.is--padding .vxe-body--column:not(.col--ellipsis) {
2157
+ padding: var(--vxe-ui-table-column-padding-default);
2158
+ }
2159
+ .vxe-table--render-default .vxe-header--column:not(.col--ellipsis),
2160
+ .vxe-table--render-default .vxe-footer--column:not(.col--ellipsis) {
2161
+ padding: var(--vxe-ui-table-column-padding-default);
2162
+ }
2146
2163
  .vxe-table--render-default .vxe-header--column,
2147
2164
  .vxe-table--render-default .vxe-body--column,
2148
2165
  .vxe-table--render-default .vxe-footer--column {
@@ -2150,11 +2167,6 @@
2150
2167
  line-height: var(--vxe-ui-table-row-line-height);
2151
2168
  text-align: left;
2152
2169
  }
2153
- .vxe-table--render-default .vxe-header--column:not(.col--ellipsis),
2154
- .vxe-table--render-default .vxe-body--column:not(.col--ellipsis),
2155
- .vxe-table--render-default .vxe-footer--column:not(.col--ellipsis) {
2156
- padding: var(--vxe-ui-table-column-padding-default);
2157
- }
2158
2170
  .vxe-table--render-default .vxe-header--column.col--current,
2159
2171
  .vxe-table--render-default .vxe-body--column.col--current,
2160
2172
  .vxe-table--render-default .vxe-footer--column.col--current {
@@ -2286,11 +2298,13 @@
2286
2298
  .vxe-table--render-default.size--mini .vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button {
2287
2299
  margin-top: 1px;
2288
2300
  }
2301
+ .vxe-table--render-default.is--padding .vxe-cell {
2302
+ padding-left: var(--vxe-ui-table-cell-padding-left);
2303
+ padding-right: var(--vxe-ui-table-cell-padding-right);
2304
+ }
2289
2305
  .vxe-table--render-default .vxe-cell {
2290
2306
  white-space: pre-line;
2291
2307
  word-break: break-all;
2292
- padding-left: var(--vxe-ui-table-cell-padding-left);
2293
- padding-right: var(--vxe-ui-table-cell-padding-right);
2294
2308
  }
2295
2309
  .vxe-table--render-default .vxe-cell--placeholder {
2296
2310
  color: var(--vxe-ui-table-cell-placeholder-color);
@@ -2567,14 +2581,14 @@
2567
2581
  text-overflow: ellipsis;
2568
2582
  white-space: nowrap;
2569
2583
  }
2570
- .vxe-table--render-default .vxe-header--column.col--ellipsis > .vxe-cell,
2571
- .vxe-table--render-default .vxe-body--column.col--ellipsis > .vxe-cell,
2572
- .vxe-table--render-default .vxe-footer--column.col--ellipsis > .vxe-cell {
2584
+ .vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2585
+ .vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2586
+ .vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2573
2587
  max-height: var(--vxe-ui-table-row-height-default);
2574
2588
  }
2575
- .vxe-table--render-default.size--medium .vxe-header--column.col--ellipsis > .vxe-cell,
2576
- .vxe-table--render-default.size--medium .vxe-body--column.col--ellipsis > .vxe-cell,
2577
- .vxe-table--render-default.size--medium .vxe-footer--column.col--ellipsis > .vxe-cell {
2589
+ .vxe-table--render-default.size--medium .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2590
+ .vxe-table--render-default.size--medium .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2591
+ .vxe-table--render-default.size--medium .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2578
2592
  max-height: var(--vxe-ui-table-row-height-medium);
2579
2593
  }
2580
2594
  .vxe-table--render-default.size--medium .vxe-cell--checkbox {
@@ -2583,9 +2597,9 @@
2583
2597
  .vxe-table--render-default.size--medium .vxe-cell--radio {
2584
2598
  font-size: var(--vxe-radio-font-size-medium);
2585
2599
  }
2586
- .vxe-table--render-default.size--small .vxe-header--column.col--ellipsis > .vxe-cell,
2587
- .vxe-table--render-default.size--small .vxe-body--column.col--ellipsis > .vxe-cell,
2588
- .vxe-table--render-default.size--small .vxe-footer--column.col--ellipsis > .vxe-cell {
2600
+ .vxe-table--render-default.size--small .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2601
+ .vxe-table--render-default.size--small .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2602
+ .vxe-table--render-default.size--small .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2589
2603
  max-height: var(--vxe-ui-table-row-height-small);
2590
2604
  }
2591
2605
  .vxe-table--render-default.size--small .vxe-cell--checkbox {
@@ -2594,9 +2608,9 @@
2594
2608
  .vxe-table--render-default.size--small .vxe-cell--radio {
2595
2609
  font-size: var(--vxe-radio-font-size-small);
2596
2610
  }
2597
- .vxe-table--render-default.size--mini .vxe-header--column.col--ellipsis > .vxe-cell,
2598
- .vxe-table--render-default.size--mini .vxe-body--column.col--ellipsis > .vxe-cell,
2599
- .vxe-table--render-default.size--mini .vxe-footer--column.col--ellipsis > .vxe-cell {
2611
+ .vxe-table--render-default.size--mini .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2612
+ .vxe-table--render-default.size--mini .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2613
+ .vxe-table--render-default.size--mini .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2600
2614
  max-height: var(--vxe-ui-table-row-height-mini);
2601
2615
  }
2602
2616
  .vxe-table--render-default.size--mini .vxe-cell--checkbox {