vxe-table 3.12.10-beta.2 → 3.12.10-beta.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 (178) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +2 -1
  4. package/es/locale/lang/de-DE.js +2 -1
  5. package/es/locale/lang/en-US.js +2 -1
  6. package/es/locale/lang/es-ES.js +2 -1
  7. package/es/locale/lang/fr-FR.js +2 -1
  8. package/es/locale/lang/hu-HU.js +2 -1
  9. package/es/locale/lang/hy-AM.js +2 -1
  10. package/es/locale/lang/it-IT.js +2 -1
  11. package/es/locale/lang/ja-JP.js +2 -1
  12. package/es/locale/lang/ko-KR.js +2 -1
  13. package/es/locale/lang/nb-NO.js +2 -1
  14. package/es/locale/lang/pt-BR.js +2 -1
  15. package/es/locale/lang/ru-RU.js +4 -3
  16. package/es/locale/lang/th-TH.js +2 -1
  17. package/es/locale/lang/ug-CN.js +2 -1
  18. package/es/locale/lang/uk-UA.js +518 -517
  19. package/es/locale/lang/vi-VN.js +2 -1
  20. package/es/locale/lang/zh-CHT.js +2 -1
  21. package/es/locale/lang/zh-CN.js +2 -1
  22. package/es/style.css +1 -1
  23. package/es/style.min.css +1 -1
  24. package/es/table/module/edit/mixin.js +7 -7
  25. package/es/table/module/export/mixin.js +55 -32
  26. package/es/table/module/keyboard/mixin.js +68 -25
  27. package/es/table/module/menu/mixin.js +3 -1
  28. package/es/table/src/body.js +96 -64
  29. package/es/table/src/cell.js +3 -7
  30. package/es/table/src/column.js +2 -0
  31. package/es/table/src/columnInfo.js +1 -0
  32. package/es/table/src/footer.js +31 -6
  33. package/es/table/src/header.js +45 -141
  34. package/es/table/src/methods.js +918 -456
  35. package/es/table/src/props.js +6 -2
  36. package/es/table/src/table.js +299 -149
  37. package/es/table/src/util.js +67 -57
  38. package/es/table/style.css +299 -191
  39. package/es/table/style.min.css +1 -1
  40. package/es/ui/index.js +20 -10
  41. package/es/ui/src/log.js +1 -1
  42. package/es/vxe-table/style.css +299 -191
  43. package/es/vxe-table/style.min.css +1 -1
  44. package/lib/index.css +1 -1
  45. package/lib/index.min.css +1 -1
  46. package/lib/index.umd.js +1735 -1025
  47. package/lib/index.umd.min.js +1 -1
  48. package/lib/locale/lang/ar-EG.js +2 -1
  49. package/lib/locale/lang/ar-EG.min.js +1 -1
  50. package/lib/locale/lang/de-DE.js +2 -1
  51. package/lib/locale/lang/de-DE.min.js +1 -1
  52. package/lib/locale/lang/en-US.js +2 -1
  53. package/lib/locale/lang/en-US.min.js +1 -1
  54. package/lib/locale/lang/en-US.umd.js +2 -1
  55. package/lib/locale/lang/es-ES.js +2 -1
  56. package/lib/locale/lang/es-ES.min.js +1 -1
  57. package/lib/locale/lang/es-ES.umd.js +2 -1
  58. package/lib/locale/lang/fr-FR.js +2 -1
  59. package/lib/locale/lang/fr-FR.min.js +1 -1
  60. package/lib/locale/lang/hu-HU.js +2 -1
  61. package/lib/locale/lang/hu-HU.min.js +1 -1
  62. package/lib/locale/lang/hu-HU.umd.js +2 -1
  63. package/lib/locale/lang/hy-AM.js +2 -1
  64. package/lib/locale/lang/hy-AM.min.js +1 -1
  65. package/lib/locale/lang/it-IT.js +2 -1
  66. package/lib/locale/lang/it-IT.min.js +1 -1
  67. package/lib/locale/lang/ja-JP.js +2 -1
  68. package/lib/locale/lang/ja-JP.min.js +1 -1
  69. package/lib/locale/lang/ja-JP.umd.js +2 -1
  70. package/lib/locale/lang/ko-KR.js +2 -1
  71. package/lib/locale/lang/ko-KR.min.js +1 -1
  72. package/lib/locale/lang/ko-KR.umd.js +2 -1
  73. package/lib/locale/lang/nb-NO.js +2 -1
  74. package/lib/locale/lang/nb-NO.min.js +1 -1
  75. package/lib/locale/lang/pt-BR.js +2 -1
  76. package/lib/locale/lang/pt-BR.min.js +1 -1
  77. package/lib/locale/lang/pt-BR.umd.js +2 -1
  78. package/lib/locale/lang/ru-RU.js +4 -3
  79. package/lib/locale/lang/ru-RU.min.js +1 -1
  80. package/lib/locale/lang/ru-RU.umd.js +4 -3
  81. package/lib/locale/lang/th-TH.js +2 -1
  82. package/lib/locale/lang/th-TH.min.js +1 -1
  83. package/lib/locale/lang/ug-CN.js +2 -1
  84. package/lib/locale/lang/ug-CN.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.js +518 -517
  86. package/lib/locale/lang/uk-UA.min.js +1 -1
  87. package/lib/locale/lang/uk-UA.umd.js +518 -517
  88. package/lib/locale/lang/vi-VN.js +2 -1
  89. package/lib/locale/lang/vi-VN.min.js +1 -1
  90. package/lib/locale/lang/zh-CHT.js +2 -1
  91. package/lib/locale/lang/zh-CHT.min.js +1 -1
  92. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  93. package/lib/locale/lang/zh-CN.js +2 -1
  94. package/lib/locale/lang/zh-CN.min.js +1 -1
  95. package/lib/locale/lang/zh-CN.umd.js +2 -1
  96. package/lib/style.css +1 -1
  97. package/lib/style.min.css +1 -1
  98. package/lib/table/module/edit/mixin.js +12 -2
  99. package/lib/table/module/edit/mixin.min.js +1 -1
  100. package/lib/table/module/export/mixin.js +52 -27
  101. package/lib/table/module/export/mixin.min.js +1 -1
  102. package/lib/table/module/keyboard/mixin.js +73 -27
  103. package/lib/table/module/keyboard/mixin.min.js +1 -1
  104. package/lib/table/module/menu/mixin.js +3 -1
  105. package/lib/table/src/body.js +89 -60
  106. package/lib/table/src/body.min.js +1 -1
  107. package/lib/table/src/cell.js +3 -5
  108. package/lib/table/src/cell.min.js +1 -1
  109. package/lib/table/src/column.js +2 -0
  110. package/lib/table/src/column.min.js +1 -1
  111. package/lib/table/src/columnInfo.js +1 -0
  112. package/lib/table/src/columnInfo.min.js +1 -1
  113. package/lib/table/src/footer.js +26 -6
  114. package/lib/table/src/footer.min.js +1 -1
  115. package/lib/table/src/header.js +38 -153
  116. package/lib/table/src/header.min.js +1 -1
  117. package/lib/table/src/methods.js +1076 -551
  118. package/lib/table/src/methods.min.js +1 -1
  119. package/lib/table/src/props.js +6 -2
  120. package/lib/table/src/props.min.js +1 -1
  121. package/lib/table/src/table.js +269 -129
  122. package/lib/table/src/table.min.js +1 -1
  123. package/lib/table/src/util.js +80 -70
  124. package/lib/table/src/util.min.js +1 -1
  125. package/lib/table/style/style.css +299 -191
  126. package/lib/table/style/style.min.css +1 -1
  127. package/lib/ui/index.js +20 -10
  128. package/lib/ui/index.min.js +1 -1
  129. package/lib/ui/src/log.js +1 -1
  130. package/lib/ui/src/log.min.js +1 -1
  131. package/lib/vxe-table/style/style.css +299 -191
  132. package/lib/vxe-table/style/style.min.css +1 -1
  133. package/package.json +2 -2
  134. package/packages/locale/lang/ar-EG.ts +2 -1
  135. package/packages/locale/lang/de-DE.ts +2 -1
  136. package/packages/locale/lang/en-US.ts +2 -1
  137. package/packages/locale/lang/es-ES.ts +2 -1
  138. package/packages/locale/lang/fr-FR.ts +2 -1
  139. package/packages/locale/lang/hu-HU.ts +2 -1
  140. package/packages/locale/lang/hy-AM.ts +2 -1
  141. package/packages/locale/lang/it-IT.ts +2 -1
  142. package/packages/locale/lang/ja-JP.ts +2 -1
  143. package/packages/locale/lang/ko-KR.ts +2 -1
  144. package/packages/locale/lang/nb-NO.ts +2 -1
  145. package/packages/locale/lang/pt-BR.ts +2 -1
  146. package/packages/locale/lang/ru-RU.ts +4 -3
  147. package/packages/locale/lang/th-TH.ts +2 -1
  148. package/packages/locale/lang/ug-CN.ts +2 -1
  149. package/packages/locale/lang/uk-UA.ts +518 -517
  150. package/packages/locale/lang/vi-VN.ts +2 -1
  151. package/packages/locale/lang/zh-CHT.ts +2 -1
  152. package/packages/locale/lang/zh-CN.ts +2 -1
  153. package/packages/table/module/edit/mixin.ts +7 -7
  154. package/packages/table/module/export/mixin.ts +50 -27
  155. package/packages/table/module/keyboard/mixin.ts +65 -24
  156. package/packages/table/module/menu/mixin.ts +4 -1
  157. package/packages/table/src/body.ts +102 -61
  158. package/packages/table/src/cell.ts +3 -7
  159. package/packages/table/src/column.ts +7 -2
  160. package/packages/table/src/columnInfo.ts +1 -0
  161. package/packages/table/src/footer.ts +31 -6
  162. package/packages/table/src/header.ts +45 -141
  163. package/packages/table/src/methods.ts +957 -461
  164. package/packages/table/src/props.ts +6 -2
  165. package/packages/table/src/table.ts +325 -149
  166. package/packages/table/src/util.ts +75 -62
  167. package/packages/ui/index.ts +21 -9
  168. package/styles/components/table.scss +352 -260
  169. package/styles/theme/base.scss +4 -6
  170. package/styles/theme/dark.scss +1 -0
  171. package/styles/theme/light.scss +1 -0
  172. package/styles/variable.scss +1 -0
  173. /package/es/{iconfont.1736736807414.ttf → iconfont.1737182271148.ttf} +0 -0
  174. /package/es/{iconfont.1736736807414.woff → iconfont.1737182271148.woff} +0 -0
  175. /package/es/{iconfont.1736736807414.woff2 → iconfont.1737182271148.woff2} +0 -0
  176. /package/lib/{iconfont.1736736807414.ttf → iconfont.1737182271148.ttf} +0 -0
  177. /package/lib/{iconfont.1736736807414.woff → iconfont.1737182271148.woff} +0 -0
  178. /package/lib/{iconfont.1736736807414.woff2 → iconfont.1737182271148.woff2} +0 -0
@@ -37,10 +37,10 @@ var _default = exports.default = {
37
37
  type: [Boolean, String],
38
38
  default: () => getConfig().table.border
39
39
  },
40
- // 单元格是否有边距
40
+ // 已废弃,被 cell-config.padding 替换
41
41
  padding: {
42
42
  type: Boolean,
43
- default: () => getConfig().table.padding
43
+ default: null
44
44
  },
45
45
  // 是否圆角边框
46
46
  round: {
@@ -186,6 +186,10 @@ var _default = exports.default = {
186
186
  columnConfig: Object,
187
187
  // 单元格配置信息
188
188
  cellConfig: Object,
189
+ // 表头单元格配置信息
190
+ headerCellConfig: Object,
191
+ // 表尾单元格配置信息
192
+ footerCellConfig: Object,
189
193
  // 行配置信息
190
194
  rowConfig: Object,
191
195
  // 已废弃,被 rowDragConfig 替换
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../ui");let getConfig=_ui.VxeUI.getConfig;var _default=exports.default={id:[String,Function],data:Array,height:[Number,String],minHeight:{type:[Number,String],default:()=>getConfig().table.minHeight},maxHeight:[Number,String],resizable:{type:Boolean,default:()=>getConfig().table.resizable},stripe:{type:Boolean,default:()=>getConfig().table.stripe},border:{type:[Boolean,String],default:()=>getConfig().table.border},padding:{type:Boolean,default:()=>getConfig().table.padding},round:{type:Boolean,default:()=>getConfig().table.round},size:{type:String,default:()=>getConfig().table.size||getConfig().size},fit:{type:Boolean,default:()=>getConfig().table.fit},loading:Boolean,align:{type:String,default:()=>getConfig().table.align},headerAlign:{type:String,default:()=>getConfig().table.headerAlign},footerAlign:{type:String,default:()=>getConfig().table.footerAlign},showHeader:{type:Boolean,default:()=>getConfig().table.showHeader},highlightCurrentRow:{type:Boolean,default:()=>getConfig().table.highlightCurrentRow},highlightHoverRow:{type:Boolean,default:()=>getConfig().table.highlightHoverRow},highlightCurrentColumn:{type:Boolean,default:()=>getConfig().table.highlightCurrentColumn},highlightHoverColumn:{type:Boolean,default:()=>getConfig().table.highlightHoverColumn},highlightCell:Boolean,showFooter:Boolean,footerData:Array,footerMethod:Function,rowClassName:[String,Function],cellClassName:[String,Function],headerRowClassName:[String,Function],headerCellClassName:[String,Function],footerRowClassName:[String,Function],footerCellClassName:[String,Function],cellStyle:[Object,Function],headerCellStyle:[Object,Function],footerCellStyle:[Object,Function],rowStyle:[Object,Function],headerRowStyle:[Object,Function],footerRowStyle:[Object,Function],mergeCells:Array,mergeFooterItems:Array,spanMethod:Function,footerSpanMethod:Function,showOverflow:{type:[Boolean,String],default:()=>getConfig().table.showOverflow},showHeaderOverflow:{type:[Boolean,String],default:()=>getConfig().table.showHeaderOverflow},showFooterOverflow:{type:[Boolean,String],default:()=>getConfig().table.showFooterOverflow},columnKey:Boolean,rowKey:Boolean,rowId:{type:String,default:()=>getConfig().table.rowId},zIndex:Number,emptyText:{type:String,default:()=>getConfig().table.emptyText},keepSource:{type:Boolean,default:()=>getConfig().table.keepSource},autoResize:{type:Boolean,default:()=>getConfig().table.autoResize},syncResize:[Boolean,String,Number],resizeConfig:Object,columnConfig:Object,cellConfig:Object,rowConfig:Object,dragConfig:Object,rowDragConfig:Object,columnDragConfig:Object,resizableConfig:Object,seqConfig:Object,sortConfig:Object,filterConfig:Object,radioConfig:Object,checkboxConfig:Object,tooltipConfig:Object,exportConfig:[Boolean,Object],importConfig:[Boolean,Object],printConfig:Object,expandConfig:Object,treeConfig:[Boolean,Object],menuConfig:[Boolean,Object],contextMenu:[Boolean,Object],mouseConfig:Object,areaConfig:Object,keyboardConfig:Object,clipConfig:Object,fnrConfig:Object,editConfig:[Boolean,Object],validConfig:Object,editRules:Object,loadingConfig:Object,emptyRender:[Boolean,Object],customConfig:Object,scrollX:Object,scrollY:Object,virtualXConfig:Object,virtualYConfig:Object,scrollbarConfig:Object,animat:{type:Boolean,default:()=>getConfig().table.animat},delayHover:{type:Number,default:()=>getConfig().table.delayHover},params:Object};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ui=require("../../ui");let getConfig=_ui.VxeUI.getConfig;var _default=exports.default={id:[String,Function],data:Array,height:[Number,String],minHeight:{type:[Number,String],default:()=>getConfig().table.minHeight},maxHeight:[Number,String],resizable:{type:Boolean,default:()=>getConfig().table.resizable},stripe:{type:Boolean,default:()=>getConfig().table.stripe},border:{type:[Boolean,String],default:()=>getConfig().table.border},padding:{type:Boolean,default:null},round:{type:Boolean,default:()=>getConfig().table.round},size:{type:String,default:()=>getConfig().table.size||getConfig().size},fit:{type:Boolean,default:()=>getConfig().table.fit},loading:Boolean,align:{type:String,default:()=>getConfig().table.align},headerAlign:{type:String,default:()=>getConfig().table.headerAlign},footerAlign:{type:String,default:()=>getConfig().table.footerAlign},showHeader:{type:Boolean,default:()=>getConfig().table.showHeader},highlightCurrentRow:{type:Boolean,default:()=>getConfig().table.highlightCurrentRow},highlightHoverRow:{type:Boolean,default:()=>getConfig().table.highlightHoverRow},highlightCurrentColumn:{type:Boolean,default:()=>getConfig().table.highlightCurrentColumn},highlightHoverColumn:{type:Boolean,default:()=>getConfig().table.highlightHoverColumn},highlightCell:Boolean,showFooter:Boolean,footerData:Array,footerMethod:Function,rowClassName:[String,Function],cellClassName:[String,Function],headerRowClassName:[String,Function],headerCellClassName:[String,Function],footerRowClassName:[String,Function],footerCellClassName:[String,Function],cellStyle:[Object,Function],headerCellStyle:[Object,Function],footerCellStyle:[Object,Function],rowStyle:[Object,Function],headerRowStyle:[Object,Function],footerRowStyle:[Object,Function],mergeCells:Array,mergeFooterItems:Array,spanMethod:Function,footerSpanMethod:Function,showOverflow:{type:[Boolean,String],default:()=>getConfig().table.showOverflow},showHeaderOverflow:{type:[Boolean,String],default:()=>getConfig().table.showHeaderOverflow},showFooterOverflow:{type:[Boolean,String],default:()=>getConfig().table.showFooterOverflow},columnKey:Boolean,rowKey:Boolean,rowId:{type:String,default:()=>getConfig().table.rowId},zIndex:Number,emptyText:{type:String,default:()=>getConfig().table.emptyText},keepSource:{type:Boolean,default:()=>getConfig().table.keepSource},autoResize:{type:Boolean,default:()=>getConfig().table.autoResize},syncResize:[Boolean,String,Number],resizeConfig:Object,columnConfig:Object,cellConfig:Object,headerCellConfig:Object,footerCellConfig:Object,rowConfig:Object,dragConfig:Object,rowDragConfig:Object,columnDragConfig:Object,resizableConfig:Object,seqConfig:Object,sortConfig:Object,filterConfig:Object,radioConfig:Object,checkboxConfig:Object,tooltipConfig:Object,exportConfig:[Boolean,Object],importConfig:[Boolean,Object],printConfig:Object,expandConfig:Object,treeConfig:[Boolean,Object],menuConfig:[Boolean,Object],contextMenu:[Boolean,Object],mouseConfig:Object,areaConfig:Object,keyboardConfig:Object,clipConfig:Object,fnrConfig:Object,editConfig:[Boolean,Object],validConfig:Object,editRules:Object,loadingConfig:Object,emptyRender:[Boolean,Object],customConfig:Object,scrollX:Object,scrollY:Object,virtualXConfig:Object,virtualYConfig:Object,scrollbarConfig:Object,animat:{type:Boolean,default:()=>getConfig().table.animat},delayHover:{type:Number,default:()=>getConfig().table.delayHover},params:Object};
@@ -185,7 +185,7 @@ const renderDragTip = (h, $xeTable) => {
185
185
  }
186
186
  return renderEmptyElement($xeTable);
187
187
  };
188
- function handleUupdateResize(_vm) {
188
+ function handleUpdateResize(_vm) {
189
189
  const {
190
190
  $el
191
191
  } = _vm;
@@ -193,6 +193,120 @@ function handleUupdateResize(_vm) {
193
193
  _vm.recalculate();
194
194
  }
195
195
  }
196
+ function renderScrollX(h, $xeTable) {
197
+ return h('div', {
198
+ key: 'vsx',
199
+ ref: 'refScrollXVirtualElem',
200
+ class: 'vxe-table--scroll-x-virtual'
201
+ }, [h('div', {
202
+ ref: 'refScrollXLeftCornerElem',
203
+ class: 'vxe-table--scroll-x-left-corner'
204
+ }), h('div', {
205
+ ref: 'refScrollXWrapperElem',
206
+ class: 'vxe-table--scroll-x-wrapper'
207
+ }, [h('div', {
208
+ ref: 'refScrollXHandleElem',
209
+ class: 'vxe-table--scroll-x-handle',
210
+ on: {
211
+ scroll: $xeTable.triggerVirtualScrollXEvent
212
+ }
213
+ }, [h('div', {
214
+ ref: 'refScrollXSpaceElem',
215
+ class: 'vxe-table--scroll-x-space'
216
+ })])]), h('div', {
217
+ ref: 'refScrollXRightCornerElem',
218
+ class: 'vxe-table--scroll-x-right-corner'
219
+ })]);
220
+ }
221
+ function renderScrollY(h, $xeTable) {
222
+ return h('div', {
223
+ ref: 'refScrollYVirtualElem',
224
+ class: 'vxe-table--scroll-y-virtual'
225
+ }, [h('div', {
226
+ ref: 'refScrollYTopCornerElem',
227
+ class: 'vxe-table--scroll-y-top-corner'
228
+ }), h('div', {
229
+ ref: 'refScrollYWrapperElem',
230
+ class: 'vxe-table--scroll-y-wrapper'
231
+ }, [h('div', {
232
+ ref: 'refScrollYHandleElem',
233
+ class: 'vxe-table--scroll-y-handle',
234
+ on: {
235
+ scroll: $xeTable.triggerVirtualScrollYEvent
236
+ }
237
+ }, [h('div', {
238
+ ref: 'refScrollYSpaceElem',
239
+ class: 'vxe-table--scroll-y-space'
240
+ })])]), h('div', {
241
+ ref: 'refScrollYBottomCornerElem',
242
+ class: 'vxe-table--scroll-y-bottom-corner'
243
+ })]);
244
+ }
245
+ function renderViewport(h, $xeTable) {
246
+ const props = $xeTable;
247
+ const reactData = $xeTable;
248
+ const {
249
+ showHeader,
250
+ showFooter
251
+ } = props;
252
+ const {
253
+ overflowX,
254
+ tableData,
255
+ tableColumn,
256
+ tableGroupColumn,
257
+ footerTableData,
258
+ columnStore
259
+ } = reactData;
260
+ const {
261
+ leftList,
262
+ rightList
263
+ } = columnStore;
264
+ return h('div', {
265
+ ref: 'refTableViewportElem',
266
+ class: 'vxe-table--viewport-wrapper'
267
+ }, [h('div', {
268
+ class: 'vxe-table--main-wrapper'
269
+ }, [
270
+ /**
271
+ * 表头
272
+ */
273
+ showHeader ? h(_header.default, {
274
+ ref: 'refTableHeader',
275
+ props: {
276
+ tableData,
277
+ tableColumn,
278
+ tableGroupColumn
279
+ }
280
+ }) : renderEmptyElement($xeTable),
281
+ /**
282
+ * 表体
283
+ */
284
+ h(_body.default, {
285
+ ref: 'refTableBody',
286
+ props: {
287
+ tableData,
288
+ tableColumn
289
+ }
290
+ }),
291
+ /**
292
+ * 表尾
293
+ */
294
+ showFooter ? h(_footer.default, {
295
+ ref: 'refTableFooter',
296
+ props: {
297
+ footerTableData,
298
+ tableColumn
299
+ }
300
+ }) : renderEmptyElement($xeTable)]), h('div', {
301
+ class: 'vxe-table--fixed-wrapper'
302
+ }, [leftList && leftList.length && overflowX ? renderFixed(h, $xeTable, 'left') : renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderFixed(h, $xeTable, 'right') : renderEmptyElement($xeTable)])]);
303
+ }
304
+ function renderBody(h, $xeTable) {
305
+ const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
306
+ return h('div', {
307
+ class: 'vxe-table--layout-wrapper'
308
+ }, scrollbarYToLeft ? [renderScrollY(h, $xeTable), renderViewport(h, $xeTable)] : [renderViewport(h, $xeTable), renderScrollY(h, $xeTable)]);
309
+ }
196
310
  var _default = exports.default = {
197
311
  name: 'VxeTable',
198
312
  mixins: [globalMixins.sizeMixin, _mixin.default, _mixin2.default, _mixin3.default, _mixin4.default, _mixin5.default, _mixin6.default, _mixin7.default],
@@ -219,8 +333,7 @@ var _default = exports.default = {
219
333
  const xID = _xeUtils.default.uniqueId();
220
334
  return {
221
335
  xID,
222
- tId: `${_xeUtils.default.uniqueId()}`,
223
- isCalcColumn: false,
336
+ tId: xID,
224
337
  // 低性能的静态列
225
338
  staticColumns: [],
226
339
  // 渲染的列分组
@@ -431,15 +544,19 @@ var _default = exports.default = {
431
544
  isFooter: false
432
545
  },
433
546
  scrollVMLoading: false,
434
- isCalcCellHeight: 0,
547
+ calcCellHeightFlag: 0,
548
+ resizeHeightFlag: 0,
435
549
  isCustomStatus: false,
436
550
  isDragRowMove: false,
437
551
  dragRow: null,
438
552
  isDragColMove: false,
439
553
  dragCol: null,
440
554
  dragTipText: '',
441
- _isResize: false,
442
- isLoading: false
555
+ isDragResize: false,
556
+ isLoading: false,
557
+ reScrollFlag: 0,
558
+ reLayoutFlag: 0,
559
+ footFlag: 0
443
560
  };
444
561
  },
445
562
  computed: Object.assign(Object.assign({}, {}), {
@@ -506,6 +623,16 @@ var _default = exports.default = {
506
623
  const props = $xeTable;
507
624
  return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
508
625
  },
626
+ computeScrollbarXToTop() {
627
+ const $xeTable = this;
628
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
629
+ return !!(scrollbarOpts.x && scrollbarOpts.x.position === 'top');
630
+ },
631
+ computeScrollbarYToLeft() {
632
+ const $xeTable = this;
633
+ const scrollbarOpts = $xeTable.computeScrollbarOpts;
634
+ return !!(scrollbarOpts.y && scrollbarOpts.y.position === 'left');
635
+ },
509
636
  computeScrollYThreshold() {
510
637
  const $xeTable = this;
511
638
  const sYOpts = $xeTable.computeSYOpts;
@@ -532,7 +659,7 @@ var _default = exports.default = {
532
659
  const $xeTable = this;
533
660
  const vSize = $xeTable.computeSize;
534
661
  const rowHeightMaps = $xeTable.computeRowHeightMaps;
535
- return rowHeightMaps[vSize || 'default'];
662
+ return rowHeightMaps[vSize || 'default'] || 18;
536
663
  },
537
664
  columnOpts() {
538
665
  return this.computeColumnOpts;
@@ -541,7 +668,19 @@ var _default = exports.default = {
541
668
  return Object.assign({}, getConfig().table.columnConfig, this.columnConfig);
542
669
  },
543
670
  computeCellOpts() {
544
- return Object.assign({}, getConfig().table.cellConfig, this.cellConfig);
671
+ const $xeTable = this;
672
+ const props = $xeTable;
673
+ return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
674
+ },
675
+ computeHeaderCellOpts() {
676
+ const $xeTable = this;
677
+ const props = $xeTable;
678
+ return Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
679
+ },
680
+ computeFooterCellOpts() {
681
+ const $xeTable = this;
682
+ const props = $xeTable;
683
+ return Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
545
684
  },
546
685
  rowOpts() {
547
686
  return this.computeRowOpts;
@@ -596,6 +735,20 @@ var _default = exports.default = {
596
735
  tipConfig() {
597
736
  return Object.assign({}, this.tooltipOpts);
598
737
  },
738
+ computeTableTipConfig() {
739
+ const $xeTable = this;
740
+ const reactData = $xeTable;
741
+ const {
742
+ tooltipStore
743
+ } = reactData;
744
+ const tooltipOpts = $xeTable.computeTooltipOpts;
745
+ return Object.assign({}, tooltipOpts, tooltipStore.currOpts);
746
+ },
747
+ computeValidTipConfig() {
748
+ const $xeTable = this;
749
+ const tooltipOpts = $xeTable.computeTooltipOpts;
750
+ return Object.assign({}, tooltipOpts);
751
+ },
599
752
  validTipOpts() {
600
753
  return Object.assign({
601
754
  isArrow: false
@@ -652,23 +805,55 @@ var _default = exports.default = {
652
805
  return Object.assign({}, getConfig().table.fnrConfig, this.fnrConfig);
653
806
  },
654
807
  headerCtxMenu() {
655
- const headerOpts = this.ctxMenuOpts.header;
808
+ return this.computeHeaderMenu;
809
+ },
810
+ computeHeaderMenu() {
811
+ const $xeTable = this;
812
+ const menuOpts = $xeTable.computeMenuOpts;
813
+ const headerOpts = menuOpts.header;
656
814
  return headerOpts && headerOpts.options ? headerOpts.options : [];
657
815
  },
658
816
  bodyCtxMenu() {
659
- const bodyOpts = this.ctxMenuOpts.body;
817
+ return this.computeBodyMenu;
818
+ },
819
+ computeBodyMenu() {
820
+ const $xeTable = this;
821
+ const menuOpts = $xeTable.computeMenuOpts;
822
+ const bodyOpts = menuOpts.body;
660
823
  return bodyOpts && bodyOpts.options ? bodyOpts.options : [];
661
824
  },
662
825
  footerCtxMenu() {
663
- const footerOpts = this.ctxMenuOpts.footer;
826
+ return this.computeFooterMenu;
827
+ },
828
+ computeFooterMenu() {
829
+ const $xeTable = this;
830
+ const menuOpts = $xeTable.computeMenuOpts;
831
+ const footerOpts = menuOpts.footer;
664
832
  return footerOpts && footerOpts.options ? footerOpts.options : [];
665
833
  },
666
834
  isCtxMenu() {
667
- return !!((this.contextMenu || this.menuConfig) && (0, _utils.isEnableConf)(this.ctxMenuOpts) && (this.headerCtxMenu.length || this.bodyCtxMenu.length || this.footerCtxMenu.length));
835
+ return this.computeIsMenu;
836
+ },
837
+ computeIsMenu() {
838
+ const $xeTable = this;
839
+ const props = $xeTable;
840
+ const menuOpts = $xeTable.computeMenuOpts;
841
+ const headerMenu = $xeTable.computeHeaderMenu;
842
+ const bodyMenu = $xeTable.computeBodyMenu;
843
+ const footerMenu = $xeTable.computeFooterMenu;
844
+ return !!((props.contextMenu || props.menuConfig) && (0, _utils.isEnableConf)(menuOpts) && (headerMenu.length || bodyMenu.length || footerMenu.length));
668
845
  },
669
846
  ctxMenuList() {
847
+ return this.computeMenuList;
848
+ },
849
+ computeMenuList() {
850
+ const $xeTable = this;
851
+ const reactData = $xeTable;
852
+ const {
853
+ ctxMenuStore
854
+ } = reactData;
670
855
  const rest = [];
671
- this.ctxMenuStore.list.forEach(list => {
856
+ ctxMenuStore.list.forEach(list => {
672
857
  list.forEach(item => {
673
858
  rest.push(item);
674
859
  });
@@ -881,7 +1066,7 @@ var _default = exports.default = {
881
1066
  if (value && value.length >= 50000) {
882
1067
  (0, _log.warnLog)('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
883
1068
  }
884
- this.loadTableData(value || []).then(() => {
1069
+ this.loadTableData(value || [], false).then(() => {
885
1070
  this.inited = true;
886
1071
  this.initStatus = true;
887
1072
  if (!initStatus) {
@@ -909,33 +1094,50 @@ var _default = exports.default = {
909
1094
  reColumnFlag() {
910
1095
  this.$nextTick().then(() => this.refreshColumn());
911
1096
  },
1097
+ computeSize() {
1098
+ this.reScrollFlag++;
1099
+ },
912
1100
  showHeader() {
913
- this.$nextTick(() => {
914
- this.recalculate(true).then(() => this.refreshScroll());
915
- });
1101
+ this.reScrollFlag++;
916
1102
  },
917
1103
  showFooter() {
918
- this.$nextTick(() => {
919
- this.recalculate(true).then(() => this.refreshScroll());
1104
+ this.reScrollFlag++;
1105
+ },
1106
+ reScrollFlag() {
1107
+ const $xeTable = this;
1108
+ $xeTable.$nextTick(() => {
1109
+ $xeTable.recalculate(true).then(() => $xeTable.refreshScroll());
920
1110
  });
921
1111
  },
922
1112
  height() {
923
- this.$nextTick(() => this.recalculate(true));
1113
+ this.reLayoutFlag++;
924
1114
  },
925
1115
  maxHeight() {
926
- this.$nextTick(() => this.recalculate(true));
1116
+ this.reLayoutFlag++;
927
1117
  },
928
- computeSize() {
929
- this.$nextTick(() => {
930
- this.recalculate(true).then(() => this.refreshScroll());
931
- });
1118
+ computeScrollbarXToTop() {
1119
+ this.reLayoutFlag++;
1120
+ },
1121
+ computeScrollbarYToLeft() {
1122
+ this.reLayoutFlag++;
1123
+ },
1124
+ reLayoutFlag() {
1125
+ const $xeTable = this;
1126
+ $xeTable.$nextTick(() => $xeTable.recalculate(true));
1127
+ },
1128
+ footerData() {
1129
+ this.footFlag++;
1130
+ },
1131
+ footFlag() {
1132
+ const $xeTable = this;
1133
+ $xeTable.updateFooter();
932
1134
  },
933
1135
  syncResize(value) {
934
1136
  if (value) {
935
- handleUupdateResize(this);
1137
+ handleUpdateResize(this);
936
1138
  this.$nextTick(() => {
937
- handleUupdateResize(this);
938
- setTimeout(() => handleUupdateResize(this));
1139
+ handleUpdateResize(this);
1140
+ setTimeout(() => handleUpdateResize(this));
939
1141
  });
940
1142
  }
941
1143
  },
@@ -1047,11 +1249,14 @@ var _default = exports.default = {
1047
1249
  if (treeConfig && (treeOpts.showLine || treeOpts.line) && (!(this.rowKey || rowOpts.useKey) || !showOverflow)) {
1048
1250
  (0, _log.warnLog)('vxe.error.reqProp', ['row-config.useKey | show-overflow']);
1049
1251
  }
1252
+ if (treeConfig && !treeOpts.transform && this.stripe) {
1253
+ (0, _log.warnLog)('vxe.error.noTree', ['stripe']);
1254
+ }
1050
1255
  if (this.showFooter && !(this.footerMethod || this.footerData)) {
1051
1256
  (0, _log.warnLog)('vxe.error.reqProp', ['footer-data | footer-method']);
1052
1257
  }
1053
- if (treeConfig && !treeOpts.transform && this.stripe) {
1054
- (0, _log.warnLog)('vxe.error.noTree', ['stripe']);
1258
+ if (rowOpts.height) {
1259
+ (0, _log.warnLog)('vxe.error.delProp', ['row-config.height', 'cell-config.height']);
1055
1260
  }
1056
1261
  if (this.tooltipOpts.enabled) {
1057
1262
  (0, _log.warnLog)('vxe.error.delProp', ['tooltip-config.enabled', 'tooltip-config.showAll']);
@@ -1198,7 +1403,7 @@ var _default = exports.default = {
1198
1403
  endIndex: 1,
1199
1404
  visibleSize: 0
1200
1405
  });
1201
- this.loadTableData(data).then(() => {
1406
+ this.loadTableData(data, true).then(() => {
1202
1407
  if (data && data.length) {
1203
1408
  this.inited = true;
1204
1409
  this.initStatus = true;
@@ -1321,29 +1526,24 @@ var _default = exports.default = {
1321
1526
  editRules
1322
1527
  } = props;
1323
1528
  const {
1324
- isCalcColumn,
1325
1529
  isGroup,
1326
1530
  overflowX,
1327
1531
  overflowY,
1328
1532
  scrollXLoad,
1329
1533
  scrollYLoad,
1330
- scrollbarHeight,
1331
1534
  tableData,
1332
- tableColumn,
1333
- tableGroupColumn,
1334
- footerTableData,
1335
1535
  initStore,
1336
1536
  columnStore,
1337
1537
  filterStore,
1338
- customStore,
1339
- tooltipStore
1538
+ customStore
1340
1539
  } = reactData;
1341
1540
  const {
1342
1541
  leftList,
1343
1542
  rightList
1344
1543
  } = columnStore;
1345
1544
  const loadingSlot = slots.loading;
1346
- const tooltipOpts = $xeTable.computeTooltipOpts;
1545
+ const tableTipConfig = $xeTable.computeTableTipConfig;
1546
+ const validTipConfig = $xeTable.computeValidTipConfig;
1347
1547
  const validOpts = $xeTable.computeValidOpts;
1348
1548
  const checkboxOpts = $xeTable.computeCheckboxOpts;
1349
1549
  const treeOpts = $xeTable.computeTreeOpts;
@@ -1359,9 +1559,11 @@ var _default = exports.default = {
1359
1559
  const resizableOpts = $xeTable.computeResizableOpts;
1360
1560
  const isArea = mouseConfig && mouseOpts.area;
1361
1561
  const columnDragOpts = $xeTable.computeColumnDragOpts;
1562
+ const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
1563
+ const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
1362
1564
  return h('div', {
1363
1565
  ref: 'refElem',
1364
- class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, {
1566
+ class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
1365
1567
  [`size--${vSize}`]: vSize,
1366
1568
  [`valid-msg--${validOpts.msgMode}`]: !!editRules,
1367
1569
  'vxe-editable': !!editConfig,
@@ -1374,7 +1576,6 @@ var _default = exports.default = {
1374
1576
  'row--highlight': rowOpts.isHover || highlightHoverRow,
1375
1577
  'column--highlight': columnOpts.isHover || highlightHoverColumn,
1376
1578
  'checkbox--range': checkboxOpts.range,
1377
- 'column--calc': isCalcColumn,
1378
1579
  'col--drag-cell': columnOpts.drag && columnDragOpts.trigger === 'cell',
1379
1580
  'is--header': showHeader,
1380
1581
  'is--footer': showFooter,
@@ -1383,7 +1584,6 @@ var _default = exports.default = {
1383
1584
  'is--fixed-left': leftList.length,
1384
1585
  'is--fixed-right': rightList.length,
1385
1586
  'is--animat': !!props.animat,
1386
- 'is--padding': props.padding,
1387
1587
  'is--round': props.round,
1388
1588
  'is--stripe': !treeConfig && stripe,
1389
1589
  'is--loading': currLoading,
@@ -1409,82 +1609,7 @@ var _default = exports.default = {
1409
1609
  }, this.$slots.default), h('div', {
1410
1610
  key: 'tw',
1411
1611
  class: 'vxe-table--render-wrapper'
1412
- }, [h('div', {
1413
- ref: 'refTableViewportElem',
1414
- class: 'vxe-table--viewport-wrapper'
1415
- }, [h('div', {
1416
- class: 'vxe-table--main-wrapper'
1417
- }, [
1418
- /**
1419
- * 表头
1420
- */
1421
- showHeader ? h(_header.default, {
1422
- ref: 'refTableHeader',
1423
- props: {
1424
- tableData,
1425
- tableColumn,
1426
- tableGroupColumn,
1427
- size: vSize
1428
- }
1429
- }) : renderEmptyElement($xeTable),
1430
- /**
1431
- * 表体
1432
- */
1433
- h(_body.default, {
1434
- ref: 'refTableBody',
1435
- props: {
1436
- tableData,
1437
- tableColumn,
1438
- size: vSize
1439
- }
1440
- }),
1441
- /**
1442
- * 表尾
1443
- */
1444
- showFooter ? h(_footer.default, {
1445
- ref: 'refTableFooter',
1446
- props: {
1447
- footerTableData,
1448
- tableColumn,
1449
- size: vSize
1450
- }
1451
- }) : renderEmptyElement($xeTable)]), h('div', {
1452
- class: 'vxe-table--fixed-wrapper'
1453
- }, [leftList && leftList.length && overflowX ? renderFixed(h, this, 'left') : renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderFixed(h, this, 'right') : renderEmptyElement($xeTable)])]), h('div', {
1454
- ref: 'refScrollYVirtualElem',
1455
- class: 'vxe-table--scroll-y-virtual'
1456
- }, [h('div', {
1457
- ref: 'refScrollYTopCornerElem',
1458
- class: 'vxe-table--scroll-y-top-corner'
1459
- }), h('div', {
1460
- ref: 'refScrollYHandleElem',
1461
- class: 'vxe-table--scroll-y-handle',
1462
- on: {
1463
- scroll: this.scrollYEvent
1464
- }
1465
- }, [h('div', {
1466
- ref: 'refScrollYSpaceElem',
1467
- class: 'vxe-table--scroll-y-space'
1468
- })]), h('div', {
1469
- ref: 'refScrollYBottomCornerElem',
1470
- class: 'vxe-table--scroll-y-bottom-corner'
1471
- })])]), h('div', {
1472
- key: 'vx',
1473
- ref: 'refScrollXVirtualElem',
1474
- class: 'vxe-table--scroll-x-virtual'
1475
- }, [h('div', {
1476
- ref: 'refScrollXHandleElem',
1477
- class: 'vxe-table--scroll-x-handle',
1478
- on: {
1479
- scroll: this.scrollXEvent
1480
- }
1481
- }, [h('div', {
1482
- ref: 'refScrollXSpaceElem',
1483
- class: 'vxe-table--scroll-x-space'
1484
- })]), h('div', {
1485
- ref: 'refScrollXRightCornerElem',
1486
- class: 'vxe-table--scroll-x-right-corner'
1487
- })]),
1612
+ }, scrollbarXToTop ? [renderScrollX(h, $xeTable), renderBody(h, $xeTable)] : [renderBody(h, $xeTable), renderScrollX(h, $xeTable)]),
1488
1613
  /**
1489
1614
  * 空数据
1490
1615
  */
@@ -1506,14 +1631,21 @@ var _default = exports.default = {
1506
1631
  * 列宽线
1507
1632
  */
1508
1633
  h('div', {
1509
- key: 'cl',
1510
- ref: 'refCellResizeBar',
1511
- class: 'vxe-table--resizable-bar',
1512
- style: overflowX ? {
1513
- 'padding-bottom': `${scrollbarHeight}px`
1514
- } : undefined
1634
+ key: 'tcl',
1635
+ ref: 'refColResizeBar',
1636
+ class: 'vxe-table--resizable-col-bar'
1637
+ }, resizableOpts.showDragTip ? [h('div', {
1638
+ ref: 'refColResizeTip',
1639
+ class: 'vxe-table--resizable-number-tip'
1640
+ })] : []),
1641
+ /**
1642
+ * 行高线
1643
+ */
1644
+ h('div', {
1645
+ key: 'trl',
1646
+ ref: 'refRowResizeBar',
1647
+ class: 'vxe-table--resizable-row-bar'
1515
1648
  }, resizableOpts.showDragTip ? [h('div', {
1516
- ref: 'refCellResizeTip',
1517
1649
  class: 'vxe-table--resizable-number-tip'
1518
1650
  })] : []),
1519
1651
  /**
@@ -1615,7 +1747,12 @@ var _default = exports.default = {
1615
1747
  VxeUITooltipComponent ? h(VxeUITooltipComponent, {
1616
1748
  key: 'btp',
1617
1749
  ref: 'tooltip',
1618
- props: Object.assign({}, tooltipOpts, tooltipStore.currOpts)
1750
+ props: {
1751
+ theme: tableTipConfig.theme,
1752
+ enterable: tableTipConfig.enterable,
1753
+ enterDelay: tableTipConfig.enterDelay,
1754
+ leaveDelay: tableTipConfig.leaveDelay
1755
+ }
1619
1756
  }) : renderEmptyElement($xeTable),
1620
1757
  /**
1621
1758
  * 校验提示
@@ -1626,9 +1763,12 @@ var _default = exports.default = {
1626
1763
  class: [{
1627
1764
  'old-cell-valid': editRules && getConfig().cellVaildMode === 'obsolete'
1628
1765
  }, 'vxe-table--valid-error'],
1629
- props: validOpts.message === 'tooltip' || tableData.length === 1 ? Object.assign({
1630
- isArrow: false
1631
- }, tooltipOpts) : {}
1766
+ props: {
1767
+ theme: validTipConfig.theme,
1768
+ enterable: validTipConfig.enterable,
1769
+ enterDelay: validTipConfig.enterDelay,
1770
+ leaveDelay: validTipConfig.leaveDelay
1771
+ }
1632
1772
  }) : renderEmptyElement($xeTable)])]);
1633
1773
  },
1634
1774
  methods: _methods.default