vxe-table 3.9.0-rc.9 → 3.9.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 (222) hide show
  1. package/README.md +80 -9
  2. package/es/grid/src/grid.js +116 -62
  3. package/es/grid/style.css +0 -1
  4. package/es/grid/style.min.css +1 -1
  5. package/es/index.esm.js +22 -3
  6. package/es/locale/lang/en-US.js +6 -2
  7. package/es/locale/lang/es-ES.js +5 -1
  8. package/es/locale/lang/hu-HU.js +5 -1
  9. package/es/locale/lang/ja-JP.js +5 -1
  10. package/es/locale/lang/ko-KR.js +5 -1
  11. package/es/locale/lang/pt-BR.js +5 -1
  12. package/es/locale/lang/ru-RU.js +5 -1
  13. package/es/locale/lang/uk-UA.js +5 -1
  14. package/es/locale/lang/vi-VN.js +5 -1
  15. package/es/locale/lang/zh-CHT.js +5 -1
  16. package/es/locale/lang/zh-CN.js +5 -1
  17. package/es/style.css +1 -1
  18. package/es/style.min.css +1 -1
  19. package/es/table/module/custom/panel.js +183 -173
  20. package/es/table/module/edit/mixin.js +35 -40
  21. package/es/table/module/export/export-panel.js +32 -4
  22. package/es/table/module/export/import-panel.js +25 -6
  23. package/es/table/module/export/mixin.js +11 -11
  24. package/es/table/module/menu/mixin.js +2 -2
  25. package/es/table/module/validator/mixin.js +4 -4
  26. package/es/table/render/index.js +17 -11
  27. package/es/table/src/body.js +1 -0
  28. package/es/table/src/columnInfo.js +3 -3
  29. package/es/table/src/methods.js +69 -55
  30. package/es/table/src/props.js +65 -15
  31. package/es/table/src/table.js +63 -29
  32. package/es/table/src/util.js +3 -2
  33. package/es/table/style.css +37 -48
  34. package/es/table/style.min.css +1 -1
  35. package/es/toolbar/src/toolbar.js +21 -7
  36. package/es/toolbar/style.css +0 -1
  37. package/es/toolbar/style.min.css +1 -1
  38. package/es/ui/index.js +5 -3
  39. package/es/ui/src/log.js +1 -1
  40. package/es/vxe-grid/style.css +0 -1
  41. package/es/vxe-grid/style.min.css +1 -1
  42. package/es/vxe-table/style.css +37 -48
  43. package/es/vxe-table/style.min.css +1 -1
  44. package/es/vxe-toolbar/style.css +0 -1
  45. package/es/vxe-toolbar/style.min.css +1 -1
  46. package/lib/colgroup/index.js +3 -3
  47. package/lib/colgroup/index.min.js +1 -1
  48. package/lib/column/index.js +3 -3
  49. package/lib/column/index.min.js +1 -1
  50. package/lib/components.js +9 -11
  51. package/lib/components.min.js +1 -1
  52. package/lib/grid/index.js +3 -3
  53. package/lib/grid/index.min.js +1 -1
  54. package/lib/grid/src/grid.js +577 -487
  55. package/lib/grid/src/grid.min.js +1 -1
  56. package/lib/grid/style/style.css +0 -1
  57. package/lib/grid/style/style.min.css +1 -1
  58. package/lib/index.common.js +3 -4
  59. package/lib/index.umd.js +9148 -17246
  60. package/lib/index.umd.min.js +1 -1
  61. package/lib/locale/lang/en-US.js +6 -2
  62. package/lib/locale/lang/en-US.min.js +1 -1
  63. package/lib/locale/lang/en-US.umd.js +6 -2
  64. package/lib/locale/lang/es-ES.js +5 -1
  65. package/lib/locale/lang/es-ES.min.js +1 -1
  66. package/lib/locale/lang/es-ES.umd.js +5 -1
  67. package/lib/locale/lang/hu-HU.js +5 -1
  68. package/lib/locale/lang/hu-HU.min.js +1 -1
  69. package/lib/locale/lang/hu-HU.umd.js +5 -1
  70. package/lib/locale/lang/ja-JP.js +5 -1
  71. package/lib/locale/lang/ja-JP.min.js +1 -1
  72. package/lib/locale/lang/ja-JP.umd.js +5 -1
  73. package/lib/locale/lang/ko-KR.js +5 -1
  74. package/lib/locale/lang/ko-KR.min.js +1 -1
  75. package/lib/locale/lang/ko-KR.umd.js +5 -1
  76. package/lib/locale/lang/pt-BR.js +5 -1
  77. package/lib/locale/lang/pt-BR.min.js +1 -1
  78. package/lib/locale/lang/pt-BR.umd.js +5 -1
  79. package/lib/locale/lang/ru-RU.js +5 -1
  80. package/lib/locale/lang/ru-RU.min.js +1 -1
  81. package/lib/locale/lang/ru-RU.umd.js +5 -1
  82. package/lib/locale/lang/uk-UA.js +5 -1
  83. package/lib/locale/lang/uk-UA.min.js +1 -1
  84. package/lib/locale/lang/uk-UA.umd.js +5 -1
  85. package/lib/locale/lang/vi-VN.js +5 -1
  86. package/lib/locale/lang/vi-VN.min.js +1 -1
  87. package/lib/locale/lang/zh-CHT.js +5 -1
  88. package/lib/locale/lang/zh-CHT.min.js +1 -1
  89. package/lib/locale/lang/zh-CHT.umd.js +5 -1
  90. package/lib/locale/lang/zh-CN.js +5 -1
  91. package/lib/locale/lang/zh-CN.min.js +1 -1
  92. package/lib/locale/lang/zh-CN.umd.js +5 -1
  93. package/lib/style.css +1 -1
  94. package/lib/style.min.css +1 -1
  95. package/lib/table/index.js +4 -4
  96. package/lib/table/index.min.js +1 -1
  97. package/lib/table/module/custom/mixin.js +53 -44
  98. package/lib/table/module/custom/mixin.min.js +1 -1
  99. package/lib/table/module/custom/panel.js +310 -239
  100. package/lib/table/module/custom/panel.min.js +1 -1
  101. package/lib/table/module/edit/mixin.js +434 -383
  102. package/lib/table/module/edit/mixin.min.js +1 -1
  103. package/lib/table/module/export/export-panel.js +136 -106
  104. package/lib/table/module/export/export-panel.min.js +1 -1
  105. package/lib/table/module/export/import-panel.js +75 -54
  106. package/lib/table/module/export/import-panel.min.js +1 -1
  107. package/lib/table/module/export/mixin.js +592 -597
  108. package/lib/table/module/export/mixin.min.js +1 -1
  109. package/lib/table/module/export/util.js +6 -4
  110. package/lib/table/module/export/util.min.js +1 -1
  111. package/lib/table/module/filter/mixin.js +147 -118
  112. package/lib/table/module/filter/mixin.min.js +1 -1
  113. package/lib/table/module/filter/panel.js +86 -65
  114. package/lib/table/module/filter/panel.min.js +1 -1
  115. package/lib/table/module/keyboard/mixin.js +163 -151
  116. package/lib/table/module/keyboard/mixin.min.js +1 -1
  117. package/lib/table/module/menu/mixin.js +125 -114
  118. package/lib/table/module/menu/mixin.min.js +1 -1
  119. package/lib/table/module/menu/panel.js +36 -34
  120. package/lib/table/module/menu/panel.min.js +1 -1
  121. package/lib/table/module/validator/mixin.js +225 -214
  122. package/lib/table/module/validator/mixin.min.js +1 -1
  123. package/lib/table/render/index.js +401 -297
  124. package/lib/table/render/index.min.js +1 -1
  125. package/lib/table/src/body.js +411 -349
  126. package/lib/table/src/body.min.js +1 -1
  127. package/lib/table/src/cell.js +470 -344
  128. package/lib/table/src/cell.min.js +1 -1
  129. package/lib/table/src/column.js +10 -10
  130. package/lib/table/src/column.min.js +1 -1
  131. package/lib/table/src/columnInfo.js +46 -55
  132. package/lib/table/src/columnInfo.min.js +1 -1
  133. package/lib/table/src/footer.js +157 -132
  134. package/lib/table/src/footer.min.js +1 -1
  135. package/lib/table/src/group.js +1 -1
  136. package/lib/table/src/group.min.js +1 -1
  137. package/lib/table/src/header.js +170 -153
  138. package/lib/table/src/header.min.js +1 -1
  139. package/lib/table/src/methods.js +2770 -2491
  140. package/lib/table/src/methods.min.js +1 -1
  141. package/lib/table/src/props.js +33 -74
  142. package/lib/table/src/props.min.js +1 -1
  143. package/lib/table/src/table.js +436 -395
  144. package/lib/table/src/table.min.js +1 -1
  145. package/lib/table/src/util.js +143 -131
  146. package/lib/table/src/util.min.js +1 -1
  147. package/lib/table/style/style.css +37 -48
  148. package/lib/table/style/style.min.css +1 -1
  149. package/lib/toolbar/index.js +3 -3
  150. package/lib/toolbar/index.min.js +1 -1
  151. package/lib/toolbar/src/toolbar.js +332 -284
  152. package/lib/toolbar/src/toolbar.min.js +1 -1
  153. package/lib/toolbar/style/style.css +0 -1
  154. package/lib/toolbar/style/style.min.css +1 -1
  155. package/lib/ui/index.js +50 -41
  156. package/lib/ui/index.min.js +1 -1
  157. package/lib/ui/src/comp.js +2 -3
  158. package/lib/ui/src/comp.min.js +1 -1
  159. package/lib/ui/src/dom.js +29 -28
  160. package/lib/ui/src/dom.min.js +1 -1
  161. package/lib/ui/src/log.js +6 -4
  162. package/lib/ui/src/log.min.js +1 -1
  163. package/lib/ui/src/utils.js +7 -7
  164. package/lib/v-x-e-table/index.js +3 -4
  165. package/lib/v-x-e-table/index.min.js +1 -1
  166. package/lib/vxe-colgroup/index.js +3 -4
  167. package/lib/vxe-colgroup/index.min.js +1 -1
  168. package/lib/vxe-column/index.js +3 -4
  169. package/lib/vxe-column/index.min.js +1 -1
  170. package/lib/vxe-grid/index.js +3 -4
  171. package/lib/vxe-grid/index.min.js +1 -1
  172. package/lib/vxe-grid/style/style.css +0 -1
  173. package/lib/vxe-grid/style/style.min.css +1 -1
  174. package/lib/vxe-table/index.js +3 -4
  175. package/lib/vxe-table/index.min.js +1 -1
  176. package/lib/vxe-table/style/style.css +37 -48
  177. package/lib/vxe-table/style/style.min.css +1 -1
  178. package/lib/vxe-toolbar/index.js +3 -4
  179. package/lib/vxe-toolbar/index.min.js +1 -1
  180. package/lib/vxe-toolbar/style/style.css +0 -1
  181. package/lib/vxe-toolbar/style/style.min.css +1 -1
  182. package/lib/vxe-ui/index.js +3 -4
  183. package/lib/vxe-ui/index.min.js +1 -1
  184. package/lib/vxe-v-x-e-table/index.js +3 -4
  185. package/lib/vxe-v-x-e-table/index.min.js +1 -1
  186. package/package.json +5 -4
  187. package/packages/grid/src/grid.ts +123 -61
  188. package/packages/locale/lang/en-US.ts +6 -2
  189. package/packages/locale/lang/es-ES.ts +5 -1
  190. package/packages/locale/lang/hu-HU.ts +5 -1
  191. package/packages/locale/lang/ja-JP.ts +5 -1
  192. package/packages/locale/lang/ko-KR.ts +5 -1
  193. package/packages/locale/lang/pt-BR.ts +5 -1
  194. package/packages/locale/lang/ru-RU.ts +5 -1
  195. package/packages/locale/lang/uk-UA.ts +5 -1
  196. package/packages/locale/lang/vi-VN.ts +5 -1
  197. package/packages/locale/lang/zh-CHT.ts +5 -1
  198. package/packages/locale/lang/zh-CN.ts +5 -1
  199. package/packages/table/module/custom/panel.ts +186 -175
  200. package/packages/table/module/edit/mixin.ts +34 -39
  201. package/packages/table/module/export/export-panel.ts +36 -4
  202. package/packages/table/module/export/import-panel.ts +29 -6
  203. package/packages/table/module/export/mixin.ts +11 -11
  204. package/packages/table/module/menu/mixin.ts +2 -2
  205. package/packages/table/module/validator/mixin.ts +4 -4
  206. package/packages/table/render/index.ts +20 -11
  207. package/packages/table/src/body.ts +1 -0
  208. package/packages/table/src/columnInfo.ts +3 -3
  209. package/packages/table/src/methods.ts +70 -55
  210. package/packages/table/src/props.ts +68 -15
  211. package/packages/table/src/table.ts +71 -26
  212. package/packages/table/src/util.ts +3 -2
  213. package/packages/toolbar/src/toolbar.ts +21 -7
  214. package/packages/ui/index.ts +3 -1
  215. package/styles/components/table.scss +82 -17
  216. package/types/all.d.ts +1 -0
  217. /package/es/{iconfont.1726453742001.ttf → iconfont.1728483486168.ttf} +0 -0
  218. /package/es/{iconfont.1726453742001.woff → iconfont.1728483486168.woff} +0 -0
  219. /package/es/{iconfont.1726453742001.woff2 → iconfont.1728483486168.woff2} +0 -0
  220. /package/lib/{iconfont.1726453742001.ttf → iconfont.1728483486168.ttf} +0 -0
  221. /package/lib/{iconfont.1726453742001.woff → iconfont.1728483486168.woff} +0 -0
  222. /package/lib/{iconfont.1726453742001.woff2 → iconfont.1728483486168.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
  // 是否显示表尾合计
@@ -119,6 +119,9 @@ export default {
119
119
  };
120
120
  },
121
121
  inject: {
122
+ $xeTabs: {
123
+ default: null
124
+ },
122
125
  $xeGrid: {
123
126
  default: null
124
127
  },
@@ -345,8 +348,7 @@ export default {
345
348
  _isLoading: false
346
349
  };
347
350
  },
348
- computed: {
349
- tableId() {
351
+ computed: Object.assign(Object.assign({}, {}), { tableId() {
350
352
  const { id } = this;
351
353
  if (id) {
352
354
  if (XEUtils.isFunction(id)) {
@@ -484,10 +486,6 @@ export default {
484
486
  computeFNROpts() {
485
487
  return Object.assign({}, getConfig().table.fnrConfig, this.fnrConfig);
486
488
  },
487
- hasTip() {
488
- return true;
489
- // return VXETable._tooltip
490
- },
491
489
  headerCtxMenu() {
492
490
  const headerOpts = this.ctxMenuOpts.header;
493
491
  return headerOpts && headerOpts.options ? headerOpts.options : [];
@@ -620,8 +618,12 @@ export default {
620
618
  return true;
621
619
  }
622
620
  return false;
623
- }
624
- },
621
+ },
622
+ tabsResizeFlag() {
623
+ const $xeTable = this;
624
+ const $xeTabs = $xeTable.$xeTabs;
625
+ return $xeTabs ? $xeTabs.reactData.resizeFlag : null;
626
+ } }),
625
627
  watch: {
626
628
  data(value) {
627
629
  const { inited, initStatus } = this;
@@ -681,6 +683,9 @@ export default {
681
683
  });
682
684
  }
683
685
  },
686
+ tabsResizeFlag() {
687
+ this.handleGlobalResizeEvent();
688
+ },
684
689
  mergeCells(value) {
685
690
  this.clearMergeCells();
686
691
  this.$nextTick(() => this.setMergeCells(value));
@@ -739,7 +744,7 @@ export default {
739
744
  fullColumnIdData: {},
740
745
  fullColumnFieldData: {}
741
746
  });
742
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
747
+ if (process.env.NODE_ENV === 'development') {
743
748
  if (this.rowId) {
744
749
  warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField']);
745
750
  }
@@ -788,7 +793,7 @@ export default {
788
793
  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(',')]);
789
794
  }
790
795
  }
791
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
796
+ if (process.env.NODE_ENV === 'development') {
792
797
  const customOpts = this.customOpts;
793
798
  if (!this.id && this.customConfig && (customOpts.storage === true || (customOpts.storage && customOpts.storage.resizable) || (customOpts.storage && customOpts.storage.visible))) {
794
799
  errLog('vxe.error.reqProp', ['id']);
@@ -828,7 +833,7 @@ export default {
828
833
  }
829
834
  }
830
835
  // v4 中只支持对象类型
831
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
836
+ if (process.env.NODE_ENV === 'development') {
832
837
  // 在 v3.0 中废弃 context-menu
833
838
  if (this.contextMenu) {
834
839
  warnLog('vxe.error.delProp', ['context-menu', 'menu-config']);
@@ -871,7 +876,7 @@ export default {
871
876
  }
872
877
  }
873
878
  // 检查是否有安装需要的模块
874
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
879
+ if (process.env.NODE_ENV === 'development') {
875
880
  if (this.editConfig && !this._insert) {
876
881
  errLog('vxe.error.reqModule', ['Edit']);
877
882
  }
@@ -917,7 +922,9 @@ export default {
917
922
  this.preventEvent(null, 'created');
918
923
  },
919
924
  mounted() {
920
- if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
925
+ const $xeTable = this;
926
+ const props = $xeTable;
927
+ if (process.env.NODE_ENV === 'development') {
921
928
  const { $listeners } = this;
922
929
  if (!this.menuConfig && ($listeners['menu-click'] || $listeners['cell-menu'] || $listeners['header-cell-menu'] || $listeners['footer-cell-menu'])) {
923
930
  warnLog('vxe.error.reqProp', ['menu-config']);
@@ -926,12 +933,32 @@ export default {
926
933
  warnLog('vxe.error.reqProp', ['tooltip-config']);
927
934
  }
928
935
  }
936
+ if (process.env.NODE_ENV === 'development') {
937
+ // 使用已安装的组件,如果未安装则不渲染
938
+ const VxeUILoadingComponent = VxeUI.getComponent('VxeLoading');
939
+ const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
940
+ $xeTable.$nextTick(() => {
941
+ if (props.loading) {
942
+ if (!VxeUILoadingComponent) {
943
+ errLog('vxe.error.reqComp', ['vxe-loading']);
944
+ }
945
+ }
946
+ if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
947
+ (props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip') ||
948
+ (props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') ||
949
+ props.tooltipConfig || props.editRules) {
950
+ if (!VxeUITooltipComponent) {
951
+ errLog('vxe.error.reqComp', ['vxe-tooltip']);
952
+ }
953
+ }
954
+ });
955
+ }
929
956
  if (this.autoResize) {
930
957
  const handleWrapperResize = this.resizeOpts.refreshDelay ? XEUtils.throttle(() => this.recalculate(true), this.resizeOpts.refreshDelay, { leading: true, trailing: true }) : null;
931
958
  const resizeObserver = globalResize.create(handleWrapperResize
932
959
  ? () => {
933
960
  if (this.autoResize) {
934
- requestAnimationFrame(handleWrapperResize);
961
+ handleWrapperResize();
935
962
  }
936
963
  }
937
964
  : () => {
@@ -973,9 +1000,13 @@ export default {
973
1000
  this.preventEvent(null, 'destroyed');
974
1001
  },
975
1002
  render(h) {
976
- 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;
1003
+ // 使用已安装的组件,如果未安装则不渲染
1004
+ const VxeUILoadingComponent = VxeUI.getComponent('VxeLoading');
1005
+ const VxeUITooltipComponent = VxeUI.getComponent('VxeTooltip');
1006
+ 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;
977
1007
  const { leftList, rightList } = columnStore;
978
1008
  const currLoading = this._isLoading || loading;
1009
+ const vSize = computeSize;
979
1010
  return h('div', {
980
1011
  class: ['vxe-table', 'vxe-table--render-default', `tid_${tId}`, vSize ? `size--${vSize}` : '', `border--${tableBorder}`, {
981
1012
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
@@ -995,6 +1026,7 @@ export default {
995
1026
  'is--fixed-left': leftList.length,
996
1027
  'is--fixed-right': rightList.length,
997
1028
  'is--animat': !!this.animat,
1029
+ 'is--padding': this.padding,
998
1030
  'is--round': this.round,
999
1031
  'is--stripe': !treeConfig && stripe,
1000
1032
  'is--loading': currLoading,
@@ -1108,14 +1140,16 @@ export default {
1108
1140
  /**
1109
1141
  * 加载中
1110
1142
  */
1111
- h('vxe-loading', {
1112
- class: 'vxe-table--loading',
1113
- props: {
1114
- value: currLoading,
1115
- icon: loadingOpts.icon,
1116
- text: loadingOpts.text
1117
- }
1118
- }, this.callSlot($scopedSlots.loading, {}, h)),
1143
+ VxeUILoadingComponent
1144
+ ? h(VxeUILoadingComponent, {
1145
+ class: 'vxe-table--loading',
1146
+ props: {
1147
+ value: currLoading,
1148
+ icon: loadingOpts.icon,
1149
+ text: loadingOpts.text
1150
+ }
1151
+ }, this.callSlot($scopedSlots.loading, {}, h))
1152
+ : _e(),
1119
1153
  /**
1120
1154
  * 自定义列
1121
1155
  */
@@ -1176,8 +1210,8 @@ export default {
1176
1210
  /**
1177
1211
  * 通用提示
1178
1212
  */
1179
- hasTip
1180
- ? h('vxe-tooltip', {
1213
+ VxeUITooltipComponent
1214
+ ? h(VxeUITooltipComponent, {
1181
1215
  ref: 'commTip',
1182
1216
  props: {
1183
1217
  isArrow: false,
@@ -1188,8 +1222,8 @@ export default {
1188
1222
  /**
1189
1223
  * 工具提示
1190
1224
  */
1191
- hasTip
1192
- ? h('vxe-tooltip', {
1225
+ VxeUITooltipComponent
1226
+ ? h(VxeUITooltipComponent, {
1193
1227
  ref: 'tooltip',
1194
1228
  props: Object.assign({}, this.tipConfig, this.tooltipStore.currOpts)
1195
1229
  })
@@ -1197,8 +1231,8 @@ export default {
1197
1231
  /**
1198
1232
  * 校验提示
1199
1233
  */
1200
- hasTip && this.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip')
1201
- ? h('vxe-tooltip', {
1234
+ VxeUITooltipComponent && this.editRules && validOpts.showMessage && (validOpts.message === 'default' ? !height : validOpts.message === 'tooltip')
1235
+ ? h(VxeUITooltipComponent, {
1202
1236
  ref: 'validTip',
1203
1237
  class: [{
1204
1238
  '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;
@@ -8,7 +8,6 @@
8
8
  font-weight: normal;
9
9
  -webkit-user-select: none;
10
10
  -moz-user-select: none;
11
- -ms-user-select: none;
12
11
  user-select: none;
13
12
  }
14
13
  [class*=vxe-icon--].rotate45 {
@@ -865,7 +864,6 @@
865
864
  border-bottom: 1px solid var(--vxe-ui-base-popup-border-color);
866
865
  -webkit-user-select: none;
867
866
  -moz-user-select: none;
868
- -ms-user-select: none;
869
867
  user-select: none;
870
868
  }
871
869
 
@@ -896,7 +894,6 @@
896
894
  font-weight: 700;
897
895
  -webkit-user-select: none;
898
896
  -moz-user-select: none;
899
- -ms-user-select: none;
900
897
  user-select: none;
901
898
  }
902
899
  .vxe-table-custom--checkbox-option.is--checked, .vxe-table-custom--checkbox-option.is--indeterminate {
@@ -932,7 +929,6 @@
932
929
  flex-shrink: 0;
933
930
  -webkit-user-select: none;
934
931
  -moz-user-select: none;
935
- -ms-user-select: none;
936
932
  user-select: none;
937
933
  }
938
934
 
@@ -973,7 +969,6 @@
973
969
  align-items: center;
974
970
  -webkit-user-select: none;
975
971
  -moz-user-select: none;
976
- -ms-user-select: none;
977
972
  user-select: none;
978
973
  }
979
974
 
@@ -1037,7 +1032,6 @@
1037
1032
  white-space: nowrap;
1038
1033
  -webkit-user-select: none;
1039
1034
  -moz-user-select: none;
1040
- -ms-user-select: none;
1041
1035
  user-select: none;
1042
1036
  pointer-events: none;
1043
1037
  background-color: var(--vxe-ui-layout-background-color);
@@ -1162,7 +1156,6 @@
1162
1156
  outline: 0;
1163
1157
  -webkit-user-select: none;
1164
1158
  -moz-user-select: none;
1165
- -ms-user-select: none;
1166
1159
  user-select: none;
1167
1160
  }
1168
1161
  .vxe-export--panel-column > ul > li {
@@ -1202,7 +1195,6 @@
1202
1195
  border-radius: var(--vxe-ui-border-radius);
1203
1196
  -webkit-user-select: none;
1204
1197
  -moz-user-select: none;
1205
- -ms-user-select: none;
1206
1198
  user-select: none;
1207
1199
  }
1208
1200
  .vxe-export--panel .vxe-export--panel-column > ul > li {
@@ -1269,7 +1261,6 @@
1269
1261
  white-space: nowrap;
1270
1262
  -webkit-user-select: none;
1271
1263
  -moz-user-select: none;
1272
- -ms-user-select: none;
1273
1264
  user-select: none;
1274
1265
  }
1275
1266
  .vxe-export--panel .vxe-import-selected--file > i {
@@ -1297,7 +1288,6 @@
1297
1288
  color: inherit;
1298
1289
  -webkit-user-select: none;
1299
1290
  -moz-user-select: none;
1300
- -ms-user-select: none;
1301
1291
  user-select: none;
1302
1292
  cursor: pointer;
1303
1293
  }
@@ -1323,7 +1313,6 @@
1323
1313
  font-weight: 700;
1324
1314
  -webkit-user-select: none;
1325
1315
  -moz-user-select: none;
1326
- -ms-user-select: none;
1327
1316
  user-select: none;
1328
1317
  }
1329
1318
  .vxe-export--panel-column-option.is--checked, .vxe-export--panel-column-option.is--indeterminate {
@@ -1425,7 +1414,6 @@
1425
1414
  overflow: auto;
1426
1415
  -webkit-user-select: none;
1427
1416
  -moz-user-select: none;
1428
- -ms-user-select: none;
1429
1417
  user-select: none;
1430
1418
  }
1431
1419
  .vxe-table--filter-wrapper.is--multiple > ul > li {
@@ -1436,7 +1424,6 @@
1436
1424
  padding: 0.6em;
1437
1425
  -webkit-user-select: none;
1438
1426
  -moz-user-select: none;
1439
- -ms-user-select: none;
1440
1427
  user-select: none;
1441
1428
  }
1442
1429
  .vxe-table--filter-wrapper .vxe-table--filter-footer button {
@@ -1466,7 +1453,6 @@
1466
1453
  font-weight: 700;
1467
1454
  -webkit-user-select: none;
1468
1455
  -moz-user-select: none;
1469
- -ms-user-select: none;
1470
1456
  user-select: none;
1471
1457
  }
1472
1458
  .vxe-table--filter-option.is--checked, .vxe-table--filter-option.is--indeterminate {
@@ -1514,7 +1500,6 @@
1514
1500
  padding: 0 1px;
1515
1501
  -webkit-user-select: none;
1516
1502
  -moz-user-select: none;
1517
- -ms-user-select: none;
1518
1503
  user-select: none;
1519
1504
  color: var(--vxe-ui-font-color);
1520
1505
  font-family: var(--vxe-ui-font-family);
@@ -1706,9 +1691,6 @@
1706
1691
  .vxe-cell .vxe-default-input::-moz-placeholder, .vxe-table--filter-template .vxe-default-input::-moz-placeholder {
1707
1692
  color: var(--vxe-ui-input-placeholder-color);
1708
1693
  }
1709
- .vxe-cell .vxe-default-input:-ms-input-placeholder, .vxe-table--filter-template .vxe-default-input:-ms-input-placeholder {
1710
- color: var(--vxe-ui-input-placeholder-color);
1711
- }
1712
1694
  .vxe-cell .vxe-default-input::placeholder,
1713
1695
  .vxe-table--filter-template .vxe-default-input::placeholder {
1714
1696
  color: var(--vxe-ui-input-placeholder-color);
@@ -1771,6 +1753,16 @@
1771
1753
  resize: none;
1772
1754
  }
1773
1755
 
1756
+ .vxe-body--column.col--height.col--active > .vxe-cell {
1757
+ height: 100%;
1758
+ }
1759
+ .vxe-body--column.col--height > .vxe-cell > .vxe-textarea, .vxe-body--column.col--height > .vxe-cell > .vxe-default-textarea {
1760
+ height: 100%;
1761
+ }
1762
+ .vxe-body--column .vxe-cell--label.is--textarea {
1763
+ white-space: pre-line;
1764
+ }
1765
+
1774
1766
  .vxe-table--checkbox-range,
1775
1767
  .vxe-table--cell-main-area,
1776
1768
  .vxe-table--cell-extend-area,
@@ -1991,12 +1983,12 @@
1991
1983
  top: 0.2em;
1992
1984
  }
1993
1985
  .vxe-header--column .vxe-cell--required-icon {
1994
- margin-right: 0.1em;
1986
+ padding-right: 0.1em;
1995
1987
  }
1996
1988
  .vxe-header--column .vxe-cell--edit-icon,
1997
1989
  .vxe-header--column .vxe-cell-title-prefix-icon,
1998
1990
  .vxe-header--column .vxe-cell-title-suffix-icon {
1999
- margin-right: 0.2em;
1991
+ padding: 0.2em;
2000
1992
  }
2001
1993
  .vxe-header--column .vxe-cell-title-prefix-icon,
2002
1994
  .vxe-header--column .vxe-cell-title-suffix-icon {
@@ -2053,10 +2045,10 @@
2053
2045
  /*单元格编辑状态*/
2054
2046
  /*可编辑*/
2055
2047
  }
2056
- .vxe-table--render-default .vxe-table--body-wrapper table {
2048
+ .vxe-table--render-default .vxe-table--body-wrapper > table {
2057
2049
  background-color: var(--vxe-ui-layout-background-color);
2058
2050
  }
2059
- .vxe-table--render-default .vxe-table--footer-wrapper table {
2051
+ .vxe-table--render-default .vxe-table--footer-wrapper > table {
2060
2052
  background-color: var(--vxe-ui-table-footer-background-color);
2061
2053
  }
2062
2054
  .vxe-table--render-default .vxe-table--header,
@@ -2128,21 +2120,25 @@
2128
2120
  .vxe-table--render-default.cell--area .vxe-body--column {
2129
2121
  -webkit-user-select: none;
2130
2122
  -moz-user-select: none;
2131
- -ms-user-select: none;
2132
2123
  user-select: none;
2133
2124
  }
2134
2125
  .vxe-table--render-default.drag--range .vxe-body--column {
2135
2126
  -webkit-user-select: none;
2136
2127
  -moz-user-select: none;
2137
- -ms-user-select: none;
2138
2128
  user-select: none;
2139
2129
  }
2140
2130
  .vxe-table--render-default.checkbox--range .vxe-body--column.col--checkbox {
2141
2131
  -webkit-user-select: none;
2142
2132
  -moz-user-select: none;
2143
- -ms-user-select: none;
2144
2133
  user-select: none;
2145
2134
  }
2135
+ .vxe-table--render-default.is--padding .vxe-body--column:not(.col--ellipsis) {
2136
+ padding: var(--vxe-ui-table-column-padding-default);
2137
+ }
2138
+ .vxe-table--render-default .vxe-header--column:not(.col--ellipsis),
2139
+ .vxe-table--render-default .vxe-footer--column:not(.col--ellipsis) {
2140
+ padding: var(--vxe-ui-table-column-padding-default);
2141
+ }
2146
2142
  .vxe-table--render-default .vxe-header--column,
2147
2143
  .vxe-table--render-default .vxe-body--column,
2148
2144
  .vxe-table--render-default .vxe-footer--column {
@@ -2150,11 +2146,6 @@
2150
2146
  line-height: var(--vxe-ui-table-row-line-height);
2151
2147
  text-align: left;
2152
2148
  }
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
2149
  .vxe-table--render-default .vxe-header--column.col--current,
2159
2150
  .vxe-table--render-default .vxe-body--column.col--current,
2160
2151
  .vxe-table--render-default .vxe-footer--column.col--current {
@@ -2286,11 +2277,13 @@
2286
2277
  .vxe-table--render-default.size--mini .vxe-cell .vxe-default-input[type=date]::-webkit-inner-spin-button {
2287
2278
  margin-top: 1px;
2288
2279
  }
2280
+ .vxe-table--render-default.is--padding .vxe-cell {
2281
+ padding-left: var(--vxe-ui-table-cell-padding-left);
2282
+ padding-right: var(--vxe-ui-table-cell-padding-right);
2283
+ }
2289
2284
  .vxe-table--render-default .vxe-cell {
2290
2285
  white-space: pre-line;
2291
2286
  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
2287
  }
2295
2288
  .vxe-table--render-default .vxe-cell--placeholder {
2296
2289
  color: var(--vxe-ui-table-cell-placeholder-color);
@@ -2307,7 +2300,6 @@
2307
2300
  font-weight: 700;
2308
2301
  -webkit-user-select: none;
2309
2302
  -moz-user-select: none;
2310
- -ms-user-select: none;
2311
2303
  user-select: none;
2312
2304
  }
2313
2305
  .vxe-table--render-default .vxe-cell--radio.is--checked {
@@ -2342,7 +2334,6 @@
2342
2334
  font-weight: 700;
2343
2335
  -webkit-user-select: none;
2344
2336
  -moz-user-select: none;
2345
- -ms-user-select: none;
2346
2337
  user-select: none;
2347
2338
  }
2348
2339
  .vxe-table--render-default .vxe-cell--checkbox.is--checked, .vxe-table--render-default .vxe-cell--checkbox.is--indeterminate {
@@ -2498,7 +2489,6 @@
2498
2489
  z-index: 1;
2499
2490
  -webkit-user-select: none;
2500
2491
  -moz-user-select: none;
2501
- -ms-user-select: none;
2502
2492
  user-select: none;
2503
2493
  cursor: pointer;
2504
2494
  }
@@ -2529,7 +2519,6 @@
2529
2519
  text-align: center;
2530
2520
  -webkit-user-select: none;
2531
2521
  -moz-user-select: none;
2532
- -ms-user-select: none;
2533
2522
  user-select: none;
2534
2523
  color: var(--vxe-ui-font-lighten-color);
2535
2524
  transition: transform 0.1s ease-in-out;
@@ -2567,14 +2556,14 @@
2567
2556
  text-overflow: ellipsis;
2568
2557
  white-space: nowrap;
2569
2558
  }
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 {
2559
+ .vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2560
+ .vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2561
+ .vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2573
2562
  max-height: var(--vxe-ui-table-row-height-default);
2574
2563
  }
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 {
2564
+ .vxe-table--render-default.size--medium .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2565
+ .vxe-table--render-default.size--medium .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2566
+ .vxe-table--render-default.size--medium .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2578
2567
  max-height: var(--vxe-ui-table-row-height-medium);
2579
2568
  }
2580
2569
  .vxe-table--render-default.size--medium .vxe-cell--checkbox {
@@ -2583,9 +2572,9 @@
2583
2572
  .vxe-table--render-default.size--medium .vxe-cell--radio {
2584
2573
  font-size: var(--vxe-radio-font-size-medium);
2585
2574
  }
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 {
2575
+ .vxe-table--render-default.size--small .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2576
+ .vxe-table--render-default.size--small .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2577
+ .vxe-table--render-default.size--small .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2589
2578
  max-height: var(--vxe-ui-table-row-height-small);
2590
2579
  }
2591
2580
  .vxe-table--render-default.size--small .vxe-cell--checkbox {
@@ -2594,9 +2583,9 @@
2594
2583
  .vxe-table--render-default.size--small .vxe-cell--radio {
2595
2584
  font-size: var(--vxe-radio-font-size-small);
2596
2585
  }
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 {
2586
+ .vxe-table--render-default.size--mini .vxe-header--column.col--ellipsis:not(.col--height) > .vxe-cell,
2587
+ .vxe-table--render-default.size--mini .vxe-body--column.col--ellipsis:not(.col--height) > .vxe-cell,
2588
+ .vxe-table--render-default.size--mini .vxe-footer--column.col--ellipsis:not(.col--height) > .vxe-cell {
2600
2589
  max-height: var(--vxe-ui-table-row-height-mini);
2601
2590
  }
2602
2591
  .vxe-table--render-default.size--mini .vxe-cell--checkbox {