vxe-table 3.14.0-beta.8 → 3.14.0

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 (209) hide show
  1. package/es/grid/src/grid.js +75 -50
  2. package/es/locale/lang/ar-EG.js +7 -1
  3. package/es/locale/lang/de-DE.js +7 -1
  4. package/es/locale/lang/en-US.js +7 -1
  5. package/es/locale/lang/es-ES.js +7 -1
  6. package/es/locale/lang/fr-FR.js +7 -1
  7. package/es/locale/lang/hu-HU.js +7 -1
  8. package/es/locale/lang/hy-AM.js +7 -1
  9. package/es/locale/lang/id-ID.js +7 -1
  10. package/es/locale/lang/it-IT.js +7 -1
  11. package/es/locale/lang/ja-JP.js +7 -1
  12. package/es/locale/lang/ko-KR.js +7 -1
  13. package/es/locale/lang/nb-NO.js +7 -1
  14. package/es/locale/lang/pt-BR.js +7 -1
  15. package/es/locale/lang/ru-RU.js +7 -1
  16. package/es/locale/lang/th-TH.js +7 -1
  17. package/es/locale/lang/ug-CN.js +7 -1
  18. package/es/locale/lang/uk-UA.js +7 -1
  19. package/es/locale/lang/vi-VN.js +7 -1
  20. package/es/locale/lang/zh-CHT.js +7 -1
  21. package/es/locale/lang/zh-CN.js +7 -1
  22. package/es/style.css +1 -1
  23. package/es/table/module/custom/mixin.js +4 -2
  24. package/es/table/module/custom/panel.js +24 -23
  25. package/es/table/module/edit/mixin.js +17 -11
  26. package/es/table/module/export/export-panel.js +5 -4
  27. package/es/table/module/export/import-panel.js +8 -7
  28. package/es/table/module/export/mixin.js +30 -27
  29. package/es/table/module/filter/panel.js +21 -10
  30. package/es/table/module/keyboard/mixin.js +141 -41
  31. package/es/table/module/menu/mixin.js +6 -3
  32. package/es/table/module/menu/panel.js +7 -7
  33. package/es/table/module/validator/mixin.js +2 -2
  34. package/es/table/render/index.js +2 -2
  35. package/es/table/src/body.js +39 -20
  36. package/es/table/src/cell.js +27 -22
  37. package/es/table/src/column.js +11 -9
  38. package/es/table/src/columnInfo.js +6 -6
  39. package/es/table/src/footer.js +12 -7
  40. package/es/table/src/group.js +6 -5
  41. package/es/table/src/header.js +15 -9
  42. package/es/table/src/methods.js +773 -704
  43. package/es/table/src/props.js +4 -0
  44. package/es/table/src/table.js +85 -49
  45. package/es/table/src/util.js +55 -20
  46. package/es/toolbar/src/toolbar.js +3 -3
  47. package/es/ui/index.js +2 -1
  48. package/es/ui/src/log.js +1 -1
  49. package/helper/vetur/attributes.json +1 -1
  50. package/helper/vetur/tags.json +1 -1
  51. package/lib/grid/src/grid.js +82 -67
  52. package/lib/grid/src/grid.min.js +1 -1
  53. package/lib/index.umd.js +1590 -1249
  54. package/lib/index.umd.min.js +1 -1
  55. package/lib/locale/lang/ar-EG.js +7 -1
  56. package/lib/locale/lang/ar-EG.min.js +1 -1
  57. package/lib/locale/lang/de-DE.js +7 -1
  58. package/lib/locale/lang/de-DE.min.js +1 -1
  59. package/lib/locale/lang/en-US.js +7 -1
  60. package/lib/locale/lang/en-US.min.js +1 -1
  61. package/lib/locale/lang/en-US.umd.js +7 -1
  62. package/lib/locale/lang/es-ES.js +7 -1
  63. package/lib/locale/lang/es-ES.min.js +1 -1
  64. package/lib/locale/lang/es-ES.umd.js +7 -1
  65. package/lib/locale/lang/fr-FR.js +7 -1
  66. package/lib/locale/lang/fr-FR.min.js +1 -1
  67. package/lib/locale/lang/hu-HU.js +7 -1
  68. package/lib/locale/lang/hu-HU.min.js +1 -1
  69. package/lib/locale/lang/hu-HU.umd.js +7 -1
  70. package/lib/locale/lang/hy-AM.js +7 -1
  71. package/lib/locale/lang/hy-AM.min.js +1 -1
  72. package/lib/locale/lang/id-ID.js +7 -1
  73. package/lib/locale/lang/id-ID.min.js +1 -1
  74. package/lib/locale/lang/it-IT.js +7 -1
  75. package/lib/locale/lang/it-IT.min.js +1 -1
  76. package/lib/locale/lang/ja-JP.js +7 -1
  77. package/lib/locale/lang/ja-JP.min.js +1 -1
  78. package/lib/locale/lang/ja-JP.umd.js +7 -1
  79. package/lib/locale/lang/ko-KR.js +7 -1
  80. package/lib/locale/lang/ko-KR.min.js +1 -1
  81. package/lib/locale/lang/ko-KR.umd.js +7 -1
  82. package/lib/locale/lang/nb-NO.js +7 -1
  83. package/lib/locale/lang/nb-NO.min.js +1 -1
  84. package/lib/locale/lang/pt-BR.js +7 -1
  85. package/lib/locale/lang/pt-BR.min.js +1 -1
  86. package/lib/locale/lang/pt-BR.umd.js +7 -1
  87. package/lib/locale/lang/ru-RU.js +7 -1
  88. package/lib/locale/lang/ru-RU.min.js +1 -1
  89. package/lib/locale/lang/ru-RU.umd.js +7 -1
  90. package/lib/locale/lang/th-TH.js +7 -1
  91. package/lib/locale/lang/th-TH.min.js +1 -1
  92. package/lib/locale/lang/ug-CN.js +7 -1
  93. package/lib/locale/lang/ug-CN.min.js +1 -1
  94. package/lib/locale/lang/uk-UA.js +7 -1
  95. package/lib/locale/lang/uk-UA.min.js +1 -1
  96. package/lib/locale/lang/uk-UA.umd.js +7 -1
  97. package/lib/locale/lang/vi-VN.js +7 -1
  98. package/lib/locale/lang/vi-VN.min.js +1 -1
  99. package/lib/locale/lang/zh-CHT.js +7 -1
  100. package/lib/locale/lang/zh-CHT.min.js +1 -1
  101. package/lib/locale/lang/zh-CHT.umd.js +7 -1
  102. package/lib/locale/lang/zh-CN.js +7 -1
  103. package/lib/locale/lang/zh-CN.min.js +1 -1
  104. package/lib/locale/lang/zh-CN.umd.js +7 -1
  105. package/lib/style.css +1 -1
  106. package/lib/table/module/custom/mixin.js +5 -3
  107. package/lib/table/module/custom/mixin.min.js +1 -1
  108. package/lib/table/module/custom/panel.js +22 -29
  109. package/lib/table/module/custom/panel.min.js +1 -1
  110. package/lib/table/module/edit/mixin.js +19 -13
  111. package/lib/table/module/edit/mixin.min.js +1 -1
  112. package/lib/table/module/export/export-panel.js +5 -4
  113. package/lib/table/module/export/export-panel.min.js +1 -1
  114. package/lib/table/module/export/import-panel.js +8 -7
  115. package/lib/table/module/export/import-panel.min.js +1 -1
  116. package/lib/table/module/export/mixin.js +35 -34
  117. package/lib/table/module/export/mixin.min.js +1 -1
  118. package/lib/table/module/filter/panel.js +16 -16
  119. package/lib/table/module/filter/panel.min.js +1 -1
  120. package/lib/table/module/keyboard/mixin.js +149 -47
  121. package/lib/table/module/keyboard/mixin.min.js +1 -1
  122. package/lib/table/module/menu/mixin.js +6 -3
  123. package/lib/table/module/menu/mixin.min.js +1 -1
  124. package/lib/table/module/menu/panel.js +7 -7
  125. package/lib/table/module/menu/panel.min.js +1 -1
  126. package/lib/table/module/validator/mixin.js +3 -3
  127. package/lib/table/module/validator/mixin.min.js +1 -1
  128. package/lib/table/render/index.js +3 -2
  129. package/lib/table/render/index.min.js +1 -1
  130. package/lib/table/src/body.js +47 -20
  131. package/lib/table/src/body.min.js +1 -1
  132. package/lib/table/src/cell.js +39 -23
  133. package/lib/table/src/cell.min.js +1 -1
  134. package/lib/table/src/column.js +11 -9
  135. package/lib/table/src/column.min.js +1 -1
  136. package/lib/table/src/columnInfo.js +6 -6
  137. package/lib/table/src/columnInfo.min.js +1 -1
  138. package/lib/table/src/footer.js +12 -5
  139. package/lib/table/src/footer.min.js +1 -1
  140. package/lib/table/src/group.js +6 -5
  141. package/lib/table/src/group.min.js +1 -1
  142. package/lib/table/src/header.js +16 -8
  143. package/lib/table/src/header.min.js +1 -1
  144. package/lib/table/src/methods.js +911 -830
  145. package/lib/table/src/methods.min.js +1 -1
  146. package/lib/table/src/props.js +4 -0
  147. package/lib/table/src/props.min.js +1 -1
  148. package/lib/table/src/table.js +93 -52
  149. package/lib/table/src/table.min.js +1 -1
  150. package/lib/table/src/util.js +62 -21
  151. package/lib/table/src/util.min.js +1 -1
  152. package/lib/toolbar/src/toolbar.js +3 -3
  153. package/lib/ui/index.js +2 -1
  154. package/lib/ui/index.min.js +1 -1
  155. package/lib/ui/src/log.js +1 -1
  156. package/lib/ui/src/log.min.js +1 -1
  157. package/package.json +2 -2
  158. package/packages/grid/src/grid.ts +88 -59
  159. package/packages/locale/lang/ar-EG.ts +7 -1
  160. package/packages/locale/lang/de-DE.ts +7 -1
  161. package/packages/locale/lang/en-US.ts +7 -1
  162. package/packages/locale/lang/es-ES.ts +7 -1
  163. package/packages/locale/lang/fr-FR.ts +7 -1
  164. package/packages/locale/lang/hu-HU.ts +7 -1
  165. package/packages/locale/lang/hy-AM.ts +7 -1
  166. package/packages/locale/lang/id-ID.ts +7 -1
  167. package/packages/locale/lang/it-IT.ts +7 -1
  168. package/packages/locale/lang/ja-JP.ts +7 -1
  169. package/packages/locale/lang/ko-KR.ts +7 -1
  170. package/packages/locale/lang/nb-NO.ts +7 -1
  171. package/packages/locale/lang/pt-BR.ts +7 -1
  172. package/packages/locale/lang/ru-RU.ts +7 -1
  173. package/packages/locale/lang/th-TH.ts +7 -1
  174. package/packages/locale/lang/ug-CN.ts +7 -1
  175. package/packages/locale/lang/uk-UA.ts +7 -1
  176. package/packages/locale/lang/vi-VN.ts +7 -1
  177. package/packages/locale/lang/zh-CHT.ts +7 -1
  178. package/packages/locale/lang/zh-CN.ts +7 -1
  179. package/packages/table/module/custom/mixin.ts +6 -3
  180. package/packages/table/module/custom/panel.ts +42 -37
  181. package/packages/table/module/edit/mixin.ts +20 -14
  182. package/packages/table/module/export/export-panel.ts +8 -5
  183. package/packages/table/module/export/import-panel.ts +11 -7
  184. package/packages/table/module/export/mixin.ts +37 -32
  185. package/packages/table/module/filter/panel.ts +25 -10
  186. package/packages/table/module/keyboard/mixin.ts +155 -49
  187. package/packages/table/module/menu/mixin.ts +12 -6
  188. package/packages/table/module/menu/panel.ts +10 -7
  189. package/packages/table/module/validator/mixin.ts +2 -2
  190. package/packages/table/render/index.ts +2 -2
  191. package/packages/table/src/body.ts +39 -20
  192. package/packages/table/src/cell.ts +27 -22
  193. package/packages/table/src/column.ts +14 -10
  194. package/packages/table/src/columnInfo.ts +9 -6
  195. package/packages/table/src/footer.ts +12 -7
  196. package/packages/table/src/group.ts +9 -5
  197. package/packages/table/src/header.ts +16 -9
  198. package/packages/table/src/methods.ts +854 -740
  199. package/packages/table/src/props.ts +16 -12
  200. package/packages/table/src/table.ts +99 -52
  201. package/packages/table/src/util.ts +63 -21
  202. package/packages/toolbar/src/toolbar.ts +3 -3
  203. package/packages/ui/index.ts +1 -0
  204. /package/es/{iconfont.1741333630357.ttf → iconfont.1742955973002.ttf} +0 -0
  205. /package/es/{iconfont.1741333630357.woff → iconfont.1742955973002.woff} +0 -0
  206. /package/es/{iconfont.1741333630357.woff2 → iconfont.1742955973002.woff2} +0 -0
  207. /package/lib/{iconfont.1741333630357.ttf → iconfont.1742955973002.ttf} +0 -0
  208. /package/lib/{iconfont.1741333630357.woff → iconfont.1742955973002.woff} +0 -0
  209. /package/lib/{iconfont.1741333630357.woff2 → iconfont.1742955973002.woff2} +0 -0
@@ -89,6 +89,7 @@ const renderSimplePanel = (h, _vm) => {
89
89
  const props = _vm;
90
90
  const $xeTable = _vm.$xeTable;
91
91
  const reactData = $xeTable;
92
+ const $xeGrid = $xeTable.$xeGrid;
92
93
  const { customStore } = props;
93
94
  const { isCustomStatus, customColumnList } = reactData;
94
95
  const customOpts = $xeTable.computeCustomOpts;
@@ -115,7 +116,7 @@ const renderSimplePanel = (h, _vm) => {
115
116
  }
116
117
  const params = {
117
118
  $table: $xeTable,
118
- $grid: $xeTable.xegrid,
119
+ $grid: $xeGrid,
119
120
  columns: customColumnList,
120
121
  isAllChecked,
121
122
  isAllIndeterminate,
@@ -253,7 +254,7 @@ const renderSimplePanel = (h, _vm) => {
253
254
  class: ['vxe-table-custom-wrapper', `placement--${placement}`, {
254
255
  'is--active': customStore.visible
255
256
  }],
256
- style: maxHeight && !['left', 'right'].includes(placement)
257
+ style: maxHeight && !['left', 'right'].includes(placement || '')
257
258
  ? {
258
259
  maxHeight: `${maxHeight}px`
259
260
  }
@@ -391,6 +392,7 @@ const renderPopupPanel = (h, _vm) => {
391
392
  const $xeTable = _vm.$xeTable;
392
393
  const tableProps = $xeTable;
393
394
  const reactData = $xeTable;
395
+ const $xeGrid = $xeTable.$xeGrid;
394
396
  const { customStore } = props;
395
397
  const { resizable: allResizable } = tableProps;
396
398
  const { isCustomStatus, customColumnList } = reactData;
@@ -417,7 +419,7 @@ const renderPopupPanel = (h, _vm) => {
417
419
  const isAllIndeterminate = customStore.isIndeterminate;
418
420
  const params = {
419
421
  $table: $xeTable,
420
- $grid: $xeTable.xegrid,
422
+ $grid: $xeGrid,
421
423
  columns: customColumnList,
422
424
  isAllChecked,
423
425
  isAllIndeterminate,
@@ -802,9 +804,6 @@ export default {
802
804
  inject: {
803
805
  $xeTable: {
804
806
  default: null
805
- },
806
- $xetable: {
807
- default: null
808
807
  }
809
808
  },
810
809
  data() {
@@ -822,8 +821,8 @@ export default {
822
821
  const VxeUINumberInputComponent = VxeUI.getComponent('VxeNumberInput');
823
822
  const VxeUIRadioGroupComponent = VxeUI.getComponent('VxeRadioGroup');
824
823
  this.$nextTick(() => {
825
- const { $xetable } = this;
826
- const { customOpts } = $xetable;
824
+ const $xeTable = this.$xeTable;
825
+ const { customOpts } = $xeTable;
827
826
  const { mode } = customOpts;
828
827
  if (!VxeUIModalComponent) {
829
828
  errLog('vxe.error.reqComp', ['vxe-modal']);
@@ -852,16 +851,18 @@ export default {
852
851
  },
853
852
  methods: {
854
853
  handleWrapperMouseenterEvent(evnt) {
855
- const { $xetable, customStore } = this;
854
+ const $xeTable = this.$xeTable;
855
+ const { customStore } = this;
856
856
  customStore.activeWrapper = true;
857
- $xetable.customOpenEvent(evnt);
857
+ $xeTable.customOpenEvent(evnt);
858
858
  },
859
859
  handleWrapperMouseleaveEvent(evnt) {
860
- const { $xetable, customStore } = this;
860
+ const $xeTable = this.$xeTable;
861
+ const { customStore } = this;
861
862
  customStore.activeWrapper = false;
862
863
  setTimeout(() => {
863
864
  if (!customStore.activeBtn && !customStore.activeWrapper) {
864
- $xetable.customCloseEvent(evnt);
865
+ $xeTable.customCloseEvent(evnt);
865
866
  }
866
867
  }, 300);
867
868
  },
@@ -888,10 +889,10 @@ export default {
888
889
  $xeTable.emitCustomEvent('cancel', $event);
889
890
  },
890
891
  handleResetCustomEvent(evnt) {
891
- const { $xetable } = this;
892
- $xetable.resetCustom(true);
893
- $xetable.closeCustom();
894
- $xetable.emitCustomEvent('reset', evnt);
892
+ const $xeTable = this.$xeTable;
893
+ $xeTable.resetCustom(true);
894
+ $xeTable.closeCustom();
895
+ $xeTable.emitCustomEvent('reset', evnt);
895
896
  },
896
897
  resetCustomEvent(evnt) {
897
898
  if (VxeUI.modal) {
@@ -964,7 +965,7 @@ export default {
964
965
  $xeTable.checkCustomStatus();
965
966
  },
966
967
  changeColumnWidth(column) {
967
- const $xeTable = this.$xetable;
968
+ const $xeTable = this.$xeTable;
968
969
  const reactData = $xeTable;
969
970
  const customOpts = $xeTable.computeCustomOpts;
970
971
  if (customOpts.immediate) {
@@ -978,7 +979,7 @@ export default {
978
979
  }
979
980
  },
980
981
  changeFixedOption(column, colFixed) {
981
- const $xeTable = this.$xetable;
982
+ const $xeTable = this.$xeTable;
982
983
  const reactData = $xeTable;
983
984
  const isMaxFixedColumn = $xeTable.computeIsMaxFixedColumn;
984
985
  const customOpts = $xeTable.computeCustomOpts;
@@ -1017,11 +1018,11 @@ export default {
1017
1018
  }
1018
1019
  },
1019
1020
  allOptionEvent() {
1020
- const { $xetable } = this;
1021
- $xetable.toggleCustomAllCheckbox();
1021
+ const $xeTable = this.$xeTable;
1022
+ $xeTable.toggleCustomAllCheckbox();
1022
1023
  },
1023
1024
  sortMousedownEvent(evnt) {
1024
- const $xeTable = this.$xetable;
1025
+ const $xeTable = this.$xeTable;
1025
1026
  const btnEl = evnt.currentTarget;
1026
1027
  const cellEl = btnEl.parentElement;
1027
1028
  const tdEl = cellEl.parentElement;
@@ -1048,7 +1049,7 @@ export default {
1048
1049
  }
1049
1050
  },
1050
1051
  sortDragendEvent(evnt) {
1051
- const $xeTable = this.$xetable;
1052
+ const $xeTable = this.$xeTable;
1052
1053
  const tableProps = $xeTable;
1053
1054
  const reactData = $xeTable;
1054
1055
  const internalData = $xeTable;
@@ -1222,7 +1223,7 @@ export default {
1222
1223
  removeClass(trEl, 'active--drag-origin');
1223
1224
  },
1224
1225
  sortDragoverEvent(evnt) {
1225
- const $xeTable = this.$xetable;
1226
+ const $xeTable = this.$xeTable;
1226
1227
  const { dragCol } = this;
1227
1228
  const customOpts = $xeTable.computeCustomOpts;
1228
1229
  const { immediate } = customOpts;
@@ -318,6 +318,7 @@ function handleClearEdit($xeTable, evnt, targetRow) {
318
318
  function handleEditActive($xeTable, params, evnt, isFocus, isPos) {
319
319
  const props = $xeTable;
320
320
  const reactData = $xeTable;
321
+ const $xeGrid = $xeTable.$xeGrid;
321
322
  const { editConfig, mouseConfig } = props;
322
323
  const { editStore, tableColumn } = reactData;
323
324
  const editOpts = $xeTable.computeEditOpts;
@@ -334,7 +335,7 @@ function handleEditActive($xeTable, params, evnt, isFocus, isPos) {
334
335
  if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
335
336
  // 判断是否禁用编辑
336
337
  let type = 'edit-disabled';
337
- if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), { $table: $xeTable, $grid: $xeTable.xegrid }))) {
338
+ if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), { $table: $xeTable, $grid: $xeGrid }))) {
338
339
  if (mouseConfig) {
339
340
  $xeTable.clearSelected();
340
341
  if ($xeTable.clearCellAreas) {
@@ -363,7 +364,7 @@ function handleEditActive($xeTable, params, evnt, isFocus, isPos) {
363
364
  $xeTable.handleFocus(params, evnt);
364
365
  }
365
366
  if (afterEditMethod) {
366
- afterEditMethod(Object.assign(Object.assign({}, params), { $table: $xeTable, $grid: $xeTable.xegrid }));
367
+ afterEditMethod(Object.assign(Object.assign({}, params), { $table: $xeTable, $grid: $xeGrid }));
367
368
  }
368
369
  });
369
370
  }
@@ -491,13 +492,14 @@ export default {
491
492
  const reactData = $xeTable;
492
493
  const internalData = $xeTable;
493
494
  const { treeConfig } = props;
494
- const { mergeList, editStore, selectCheckboxMaps } = reactData;
495
- const { tableFullTreeData, afterFullData, tableFullData } = internalData;
495
+ const { mergeList, editStore } = reactData;
496
+ const { tableFullTreeData, selectCheckboxMaps, afterFullData, tableFullData, pendingRowMaps } = internalData;
496
497
  const checkboxOpts = $xeTable.computeCheckboxOpts;
497
498
  const treeOpts = $xeTable.computeTreeOpts;
498
499
  const { transform, mapChildrenField } = treeOpts;
499
500
  const childrenField = treeOpts.children || treeOpts.childrenField;
500
- const { actived, removeMaps, insertMaps } = editStore;
501
+ const { actived, removeMaps } = editStore;
502
+ const insertDataRowMaps = Object.assign({}, editStore.insertMaps);
501
503
  const { checkField } = checkboxOpts;
502
504
  let delList = [];
503
505
  if (!rows) {
@@ -515,14 +517,13 @@ export default {
515
517
  });
516
518
  // 如果绑定了多选属性,则更新状态
517
519
  if (!checkField) {
518
- const selectRowMaps = Object.assign({}, selectCheckboxMaps);
519
520
  rows.forEach((row) => {
520
521
  const rowid = getRowid(this, row);
521
- if (selectRowMaps[rowid]) {
522
- delete selectRowMaps[rowid];
522
+ if (selectCheckboxMaps[rowid]) {
523
+ delete selectCheckboxMaps[rowid];
523
524
  }
524
525
  });
525
- this.selectCheckboxMaps = selectRowMaps;
526
+ reactData.updateCheckboxFlag++;
526
527
  }
527
528
  // 从数据源中移除
528
529
  if (tableFullData === rows) {
@@ -582,10 +583,15 @@ export default {
582
583
  // 从新增中移除已删除的数据
583
584
  rows.forEach((row) => {
584
585
  const rowid = getRowid($xeTable, row);
585
- if (insertMaps[rowid]) {
586
- delete insertMaps[rowid];
586
+ if (insertDataRowMaps[rowid]) {
587
+ delete insertDataRowMaps[rowid];
588
+ }
589
+ if (pendingRowMaps[rowid]) {
590
+ delete pendingRowMaps[rowid];
587
591
  }
588
592
  });
593
+ editStore.insertMaps = insertDataRowMaps;
594
+ reactData.pendingRowFlag++;
589
595
  $xeTable.updateFooter();
590
596
  $xeTable.cacheRowMap(false);
591
597
  $xeTable.handleTableData(treeConfig && transform);
@@ -78,6 +78,7 @@ export default {
78
78
  },
79
79
  render(h) {
80
80
  const $xeTable = this.$xeTable;
81
+ const $xeGrid = $xeTable.$xeGrid;
81
82
  const { _e, checkedAll, isAll: isAllChecked, isIndeterminate: isAllIndeterminate, showSheet, supportMerge, supportStyle, defaultOptions, storeData } = this;
82
83
  const { hasTree, hasMerge, isPrint, hasColgroup, columns } = storeData;
83
84
  const { isHeader } = defaultOptions;
@@ -158,7 +159,7 @@ export default {
158
159
  default: () => {
159
160
  const params = {
160
161
  $table: $xeTable,
161
- $grid: $xeTable.xegrid,
162
+ $grid: $xeGrid,
162
163
  options: defaultOptions,
163
164
  columns,
164
165
  params: defaultOptions.params
@@ -426,7 +427,7 @@ export default {
426
427
  footer: () => {
427
428
  const params = {
428
429
  $table: $xeTable,
429
- $grid: $xeTable.xegrid,
430
+ $grid: $xeGrid,
430
431
  options: defaultOptions,
431
432
  columns,
432
433
  params: defaultOptions.params
@@ -531,9 +532,9 @@ export default {
531
532
  }
532
533
  },
533
534
  printEvent() {
534
- const $xetable = this.$parent;
535
+ const $xeTable = this.$parent;
535
536
  this.storeData.visible = false;
536
- $xetable.print(Object.assign({}, $xetable.printOpts, this.getExportOption()));
537
+ $xeTable.print(Object.assign({}, $xeTable.printOpts, this.getExportOption()));
537
538
  },
538
539
  exportEvent() {
539
540
  const $xeTable = this.$xeTable;
@@ -61,7 +61,8 @@ export default {
61
61
  });
62
62
  },
63
63
  render(h) {
64
- const $xeTable = this.$xeTable;
64
+ const $xeTable = this.$parent;
65
+ const $xeGrid = $xeTable.$xeGrid;
65
66
  const { hasFile, loading, parseTypeLabel, defaultOptions, storeData, selectName } = this;
66
67
  const slots = defaultOptions.slots || {};
67
68
  const topSlot = slots.top;
@@ -96,7 +97,7 @@ export default {
96
97
  default: () => {
97
98
  const params = {
98
99
  $table: $xeTable,
99
- $grid: $xeTable.xegrid,
100
+ $grid: $xeGrid,
100
101
  options: defaultOptions,
101
102
  params: defaultOptions.params
102
103
  };
@@ -185,7 +186,7 @@ export default {
185
186
  footer: () => {
186
187
  const params = {
187
188
  $table: $xeTable,
188
- $grid: $xeTable.xegrid,
189
+ $grid: $xeGrid,
189
190
  options: defaultOptions,
190
191
  params: defaultOptions.params
191
192
  };
@@ -226,8 +227,8 @@ export default {
226
227
  });
227
228
  },
228
229
  selectFileEvent() {
229
- const $xetable = this.$parent;
230
- $xetable.readFile(this.defaultOptions).then((params) => {
230
+ const $xeTable = this.$parent;
231
+ $xeTable.readFile(this.defaultOptions).then((params) => {
231
232
  const { file } = params;
232
233
  Object.assign(this.storeData, parseFile(file), { file });
233
234
  }).catch((e) => e);
@@ -245,9 +246,9 @@ export default {
245
246
  this.storeData.visible = false;
246
247
  },
247
248
  importEvent() {
248
- const $xetable = this.$parent;
249
+ const $xeTable = this.$parent;
249
250
  this.loading = true;
250
- $xetable.importByFile(this.storeData.file, Object.assign({}, $xetable.importOpts, this.defaultOptions)).then(() => {
251
+ $xeTable.importByFile(this.storeData.file, Object.assign({}, $xeTable.importOpts, this.defaultOptions)).then(() => {
251
252
  this.loading = false;
252
253
  this.storeData.visible = false;
253
254
  }).catch(() => {
@@ -195,24 +195,24 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
195
195
  return item;
196
196
  });
197
197
  }
198
- function getExportData($xetable, opts) {
198
+ function getExportData($xeTable, opts) {
199
199
  const { columns, dataFilterMethod } = opts;
200
200
  let datas = opts.data;
201
201
  if (dataFilterMethod) {
202
202
  datas = datas.filter((row, index) => dataFilterMethod({ row, $rowIndex: index }));
203
203
  }
204
- return getBodyLabelData($xetable, opts, columns, datas);
204
+ return getBodyLabelData($xeTable, opts, columns, datas);
205
205
  }
206
206
  function getBooleanValue(cellValue) {
207
207
  return cellValue === 'TRUE' || cellValue === 'true' || cellValue === true;
208
208
  }
209
- function getHeaderTitle($xetable, opts, column) {
210
- const { columnOpts } = $xetable;
209
+ function getHeaderTitle($xeTable, opts, column) {
210
+ const columnOpts = $xeTable.computeColumnOpts;
211
211
  const headExportMethod = column.headerExportMethod || columnOpts.headerExportMethod;
212
- return headExportMethod ? headExportMethod({ column, options: opts, $table: $xetable }) : ((opts.original ? column.field : column.getTitle()) || '');
212
+ return headExportMethod ? headExportMethod({ column, options: opts, $table: $xeTable }) : ((opts.original ? column.field : column.getTitle()) || '');
213
213
  }
214
- function getFooterCellValue($xetable, opts, row, column) {
215
- const { columnOpts } = $xetable;
214
+ function getFooterCellValue($xeTable, opts, row, column) {
215
+ const columnOpts = $xeTable.computeColumnOpts;
216
216
  const renderOpts = column.editRender || column.cellRender;
217
217
  let footLabelMethod = column.footerExportMethod;
218
218
  if (!footLabelMethod && renderOpts && renderOpts.name) {
@@ -224,9 +224,9 @@ function getFooterCellValue($xetable, opts, row, column) {
224
224
  if (!footLabelMethod) {
225
225
  footLabelMethod = columnOpts.footerExportMethod;
226
226
  }
227
- const _columnIndex = $xetable.getVTColumnIndex(column);
227
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
228
228
  if (footLabelMethod) {
229
- return footLabelMethod({ $table: $xetable, items: row, itemIndex: _columnIndex, row, _columnIndex, column, options: opts });
229
+ return footLabelMethod({ $table: $xeTable, items: row, itemIndex: _columnIndex, row, _columnIndex, column, options: opts });
230
230
  }
231
231
  // 兼容老模式
232
232
  if (XEUtils.isArray(row)) {
@@ -477,7 +477,8 @@ function toHtml($xeTable, opts, columns, datas) {
477
477
  tables.push('</table>', script);
478
478
  return isPrint ? tables.join('') : createHtmlPage(opts, tables.join(''));
479
479
  }
480
- function toXML($xetable, opts, columns, datas) {
480
+ function toXML($xeTable, opts, columns, datas) {
481
+ const reactData = $xeTable;
481
482
  let xml = [
482
483
  '<?xml version="1.0"?>',
483
484
  '<?mso-application progid="Excel.Sheet"?>',
@@ -498,16 +499,16 @@ function toXML($xetable, opts, columns, datas) {
498
499
  columns.map(column => `<Column ss:Width="${column.renderWidth}"/>`).join('')
499
500
  ].join('');
500
501
  if (opts.isHeader) {
501
- xml += `<Row>${columns.map(column => `<Cell><Data ss:Type="String">${getHeaderTitle($xetable, opts, column)}</Data></Cell>`).join('')}</Row>`;
502
+ xml += `<Row>${columns.map(column => `<Cell><Data ss:Type="String">${getHeaderTitle($xeTable, opts, column)}</Data></Cell>`).join('')}</Row>`;
502
503
  }
503
504
  datas.forEach(row => {
504
505
  xml += '<Row>' + columns.map(column => `<Cell><Data ss:Type="String">${row[column.id]}</Data></Cell>`).join('') + '</Row>';
505
506
  });
506
507
  if (opts.isFooter) {
507
- const footerTableData = $xetable.footerTableData;
508
+ const { footerTableData } = reactData;
508
509
  const footers = getFooterData(opts, footerTableData);
509
510
  footers.forEach((row) => {
510
- xml += `<Row>${columns.map(column => `<Cell><Data ss:Type="String">${getFooterCellValue($xetable, opts, row, column)}</Data></Cell>`).join('')}</Row>`;
511
+ xml += `<Row>${columns.map(column => `<Cell><Data ss:Type="String">${getFooterCellValue($xeTable, opts, row, column)}</Data></Cell>`).join('')}</Row>`;
511
512
  });
512
513
  }
513
514
  return `${xml}</Table></Worksheet></Workbook>`;
@@ -559,7 +560,7 @@ export function saveLocalFile(options) {
559
560
  }
560
561
  return Promise.reject(new Error(getI18n('vxe.error.notExp')));
561
562
  }
562
- function downloadFile($xetable, opts, content) {
563
+ function downloadFile($xeTable, opts, content) {
563
564
  const { filename, type, download } = opts;
564
565
  if (!download) {
565
566
  const blob = getExportBlobByContent(content, opts);
@@ -821,8 +822,9 @@ function handleImport($xeTable, content, opts) {
821
822
  }
822
823
  }
823
824
  }
824
- function handleFileImport($xetable, file, opts) {
825
- const { importOpts } = $xetable;
825
+ function handleFileImport($xeTable, file, opts) {
826
+ const internalData = $xeTable;
827
+ const importOpts = $xeTable.computeImportOpts;
826
828
  const { importMethod, afterImportMethod } = opts;
827
829
  const { type, filename } = parseFile(file);
828
830
  // 检查类型,如果为自定义导出,则不需要校验类型
@@ -840,21 +842,21 @@ function handleFileImport($xetable, file, opts) {
840
842
  const rest = new Promise((resolve, reject) => {
841
843
  const _importResolve = (params) => {
842
844
  resolve(params);
843
- $xetable._importResolve = null;
844
- $xetable._importReject = null;
845
+ $xeTable._importResolve = null;
846
+ $xeTable._importReject = null;
845
847
  };
846
848
  const _importReject = (params) => {
847
849
  reject(params);
848
- $xetable._importResolve = null;
849
- $xetable._importReject = null;
850
+ $xeTable._importResolve = null;
851
+ $xeTable._importReject = null;
850
852
  };
851
- $xetable._importResolve = _importResolve;
852
- $xetable._importReject = _importReject;
853
+ $xeTable._importResolve = _importResolve;
854
+ $xeTable._importReject = _importReject;
853
855
  if (window.FileReader) {
854
856
  const options = Object.assign({ mode: 'insertTop' }, opts, { type, filename });
855
857
  if (options.remote) {
856
858
  if (importMethod) {
857
- Promise.resolve(importMethod({ file, options, $table: $xetable })).then(() => {
859
+ Promise.resolve(importMethod({ file, options, $table: $xeTable })).then(() => {
858
860
  _importResolve({ status: true });
859
861
  }).catch(() => {
860
862
  _importResolve({ status: true });
@@ -865,14 +867,15 @@ function handleFileImport($xetable, file, opts) {
865
867
  }
866
868
  }
867
869
  else {
868
- $xetable.preventEvent(null, 'event.import', { file, options, columns: $xetable.tableFullColumn }, () => {
870
+ const { tableFullColumn } = internalData;
871
+ $xeTable.preventEvent(null, 'event.import', { file, options, columns: tableFullColumn }, () => {
869
872
  const reader = new FileReader();
870
873
  reader.onerror = () => {
871
874
  errLog('vxe.error.notType', [type]);
872
875
  _importReject({ status: false });
873
876
  };
874
877
  reader.onload = (e) => {
875
- handleImport($xetable, e.target.result, options);
878
+ handleImport($xeTable, e.target.result, options);
876
879
  };
877
880
  reader.readAsText(file, options.encoding || 'UTF-8');
878
881
  });
@@ -886,11 +889,11 @@ function handleFileImport($xetable, file, opts) {
886
889
  });
887
890
  return rest.then(() => {
888
891
  if (afterImportMethod) {
889
- afterImportMethod({ status: true, options: opts, $table: $xetable });
892
+ afterImportMethod({ status: true, options: opts, $table: $xeTable });
890
893
  }
891
894
  }).catch((e) => {
892
895
  if (afterImportMethod) {
893
- afterImportMethod({ status: false, options: opts, $table: $xetable });
896
+ afterImportMethod({ status: false, options: opts, $table: $xeTable });
894
897
  }
895
898
  return Promise.reject(e);
896
899
  });
@@ -54,14 +54,24 @@ export default {
54
54
  if (filterSlot) {
55
55
  return [
56
56
  h('div', {
57
- class: 'vxe-table--filter-template'
57
+ class: 'vxe-table--filter-template',
58
+ style: maxHeight
59
+ ? {
60
+ maxHeight: `${maxHeight}px`
61
+ }
62
+ : {}
58
63
  }, $xeTable.callSlot(filterSlot, params, h))
59
64
  ];
60
65
  }
61
66
  else if (rtFilter) {
62
67
  return [
63
68
  h('div', {
64
- class: 'vxe-table--filter-template'
69
+ class: 'vxe-table--filter-template',
70
+ style: maxHeight
71
+ ? {
72
+ maxHeight: `${maxHeight}px`
73
+ }
74
+ : {}
65
75
  }, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))
66
76
  ];
67
77
  }
@@ -180,19 +190,20 @@ export default {
180
190
  *************************/
181
191
  // (单选)筛选发生改变
182
192
  changeRadioOption(evnt, checked, item) {
183
- const { $parent: $xetable, filterStore } = this;
193
+ const $xeTable = this.$parent;
194
+ const { filterStore } = this;
184
195
  filterStore.options.forEach((option) => {
185
196
  option._checked = false;
186
197
  });
187
198
  item._checked = checked;
188
- $xetable.checkFilterOptions();
199
+ $xeTable.checkFilterOptions();
189
200
  this.confirmFilter(evnt);
190
201
  },
191
202
  // (多选)筛选发生改变
192
203
  changeMultipleOption(evnt, checked, item) {
193
- const { $parent: $xetable } = this;
204
+ const $xeTable = this.$parent;
194
205
  item._checked = checked;
195
- $xetable.checkFilterOptions();
206
+ $xeTable.checkFilterOptions();
196
207
  },
197
208
  changeAllOption(evnt, checked) {
198
209
  if (this.filterStore.multiple) {
@@ -213,13 +224,13 @@ export default {
213
224
  },
214
225
  // 确认筛选
215
226
  confirmFilter(evnt) {
216
- const { $parent: $xetable } = this;
217
- $xetable.handleFilterConfirmFilter(evnt);
227
+ const $xeTable = this.$parent;
228
+ $xeTable.handleFilterConfirmFilter(evnt);
218
229
  },
219
230
  // 重置筛选
220
231
  resetFilter(evnt) {
221
- const { $parent: $xetable } = this;
222
- $xetable.handleFilterResetFilter(evnt);
232
+ const $xeTable = this.$parent;
233
+ $xeTable.handleFilterResetFilter(evnt);
223
234
  }
224
235
  /*************************
225
236
  * Publish methods