vxe-table 4.12.0-beta.0 → 4.12.0-beta.10

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 (170) hide show
  1. package/es/grid/src/grid.js +70 -76
  2. package/es/locale/lang/ar-EG.js +3 -0
  3. package/es/locale/lang/de-DE.js +3 -0
  4. package/es/locale/lang/en-US.js +3 -0
  5. package/es/locale/lang/es-ES.js +3 -0
  6. package/es/locale/lang/fr-FR.js +3 -0
  7. package/es/locale/lang/hu-HU.js +3 -0
  8. package/es/locale/lang/hy-AM.js +3 -0
  9. package/es/locale/lang/id-ID.js +3 -0
  10. package/es/locale/lang/it-IT.js +3 -0
  11. package/es/locale/lang/ja-JP.js +3 -0
  12. package/es/locale/lang/ko-KR.js +3 -0
  13. package/es/locale/lang/nb-NO.js +3 -0
  14. package/es/locale/lang/pt-BR.js +3 -0
  15. package/es/locale/lang/ru-RU.js +3 -0
  16. package/es/locale/lang/th-TH.js +3 -0
  17. package/es/locale/lang/ug-CN.js +3 -0
  18. package/es/locale/lang/uk-UA.js +3 -0
  19. package/es/locale/lang/vi-VN.js +3 -0
  20. package/es/locale/lang/zh-CHT.js +3 -0
  21. package/es/locale/lang/zh-CN.js +3 -0
  22. package/es/style.css +1 -1
  23. package/es/table/module/custom/panel.js +19 -21
  24. package/es/table/module/edit/hook.js +1 -1
  25. package/es/table/module/export/export-panel.js +17 -19
  26. package/es/table/module/export/hook.js +5 -11
  27. package/es/table/module/export/import-panel.js +11 -13
  28. package/es/table/module/keyboard/hook.js +49 -6
  29. package/es/table/module/validator/hook.js +1 -3
  30. package/es/table/render/index.js +90 -61
  31. package/es/table/src/body.js +13 -8
  32. package/es/table/src/columnInfo.js +26 -28
  33. package/es/table/src/footer.js +7 -2
  34. package/es/table/src/props.js +4 -0
  35. package/es/table/src/table.js +374 -191
  36. package/es/table/src/util.js +30 -3
  37. package/es/toolbar/src/toolbar.js +16 -24
  38. package/es/ui/index.js +1 -1
  39. package/es/ui/src/log.js +1 -1
  40. package/lib/grid/src/grid.js +67 -82
  41. package/lib/grid/src/grid.min.js +1 -1
  42. package/lib/index.umd.js +1276 -12214
  43. package/lib/index.umd.min.js +1 -1
  44. package/lib/locale/lang/ar-EG.js +3 -0
  45. package/lib/locale/lang/ar-EG.min.js +1 -1
  46. package/lib/locale/lang/de-DE.js +3 -0
  47. package/lib/locale/lang/de-DE.min.js +1 -1
  48. package/lib/locale/lang/en-US.js +3 -0
  49. package/lib/locale/lang/en-US.min.js +1 -1
  50. package/lib/locale/lang/en-US.umd.js +3 -0
  51. package/lib/locale/lang/es-ES.js +3 -0
  52. package/lib/locale/lang/es-ES.min.js +1 -1
  53. package/lib/locale/lang/es-ES.umd.js +3 -0
  54. package/lib/locale/lang/fr-FR.js +3 -0
  55. package/lib/locale/lang/fr-FR.min.js +1 -1
  56. package/lib/locale/lang/hu-HU.js +3 -0
  57. package/lib/locale/lang/hu-HU.min.js +1 -1
  58. package/lib/locale/lang/hu-HU.umd.js +3 -0
  59. package/lib/locale/lang/hy-AM.js +3 -0
  60. package/lib/locale/lang/hy-AM.min.js +1 -1
  61. package/lib/locale/lang/id-ID.js +3 -0
  62. package/lib/locale/lang/id-ID.min.js +1 -1
  63. package/lib/locale/lang/it-IT.js +3 -0
  64. package/lib/locale/lang/it-IT.min.js +1 -1
  65. package/lib/locale/lang/ja-JP.js +3 -0
  66. package/lib/locale/lang/ja-JP.min.js +1 -1
  67. package/lib/locale/lang/ja-JP.umd.js +3 -0
  68. package/lib/locale/lang/ko-KR.js +3 -0
  69. package/lib/locale/lang/ko-KR.min.js +1 -1
  70. package/lib/locale/lang/ko-KR.umd.js +3 -0
  71. package/lib/locale/lang/nb-NO.js +3 -0
  72. package/lib/locale/lang/nb-NO.min.js +1 -1
  73. package/lib/locale/lang/pt-BR.js +3 -0
  74. package/lib/locale/lang/pt-BR.min.js +1 -1
  75. package/lib/locale/lang/pt-BR.umd.js +3 -0
  76. package/lib/locale/lang/ru-RU.js +3 -0
  77. package/lib/locale/lang/ru-RU.min.js +1 -1
  78. package/lib/locale/lang/ru-RU.umd.js +3 -0
  79. package/lib/locale/lang/th-TH.js +3 -0
  80. package/lib/locale/lang/th-TH.min.js +1 -1
  81. package/lib/locale/lang/ug-CN.js +3 -0
  82. package/lib/locale/lang/ug-CN.min.js +1 -1
  83. package/lib/locale/lang/uk-UA.js +3 -0
  84. package/lib/locale/lang/uk-UA.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.umd.js +3 -0
  86. package/lib/locale/lang/vi-VN.js +3 -0
  87. package/lib/locale/lang/vi-VN.min.js +1 -1
  88. package/lib/locale/lang/zh-CHT.js +3 -0
  89. package/lib/locale/lang/zh-CHT.min.js +1 -1
  90. package/lib/locale/lang/zh-CN.js +3 -0
  91. package/lib/locale/lang/zh-CN.min.js +1 -1
  92. package/lib/locale/lang/zh-CN.umd.js +3 -0
  93. package/lib/style.css +1 -1
  94. package/lib/table/module/custom/panel.js +21 -23
  95. package/lib/table/module/custom/panel.min.js +1 -1
  96. package/lib/table/module/edit/hook.js +1 -1
  97. package/lib/table/module/edit/hook.min.js +1 -1
  98. package/lib/table/module/export/export-panel.js +17 -19
  99. package/lib/table/module/export/export-panel.min.js +1 -1
  100. package/lib/table/module/export/hook.js +5 -11
  101. package/lib/table/module/export/hook.min.js +1 -1
  102. package/lib/table/module/export/import-panel.js +11 -13
  103. package/lib/table/module/export/import-panel.min.js +1 -1
  104. package/lib/table/module/keyboard/hook.js +53 -6
  105. package/lib/table/module/keyboard/hook.min.js +1 -1
  106. package/lib/table/module/validator/hook.js +1 -3
  107. package/lib/table/module/validator/hook.min.js +1 -1
  108. package/lib/table/render/index.js +98 -66
  109. package/lib/table/render/index.min.js +1 -1
  110. package/lib/table/src/body.js +12 -6
  111. package/lib/table/src/body.min.js +1 -1
  112. package/lib/table/src/columnInfo.js +30 -32
  113. package/lib/table/src/columnInfo.min.js +1 -1
  114. package/lib/table/src/footer.js +7 -2
  115. package/lib/table/src/footer.min.js +1 -1
  116. package/lib/table/src/props.js +4 -0
  117. package/lib/table/src/props.min.js +1 -1
  118. package/lib/table/src/table.js +409 -189
  119. package/lib/table/src/table.min.js +1 -1
  120. package/lib/table/src/util.js +35 -6
  121. package/lib/table/src/util.min.js +1 -1
  122. package/lib/toolbar/src/toolbar.js +16 -24
  123. package/lib/toolbar/src/toolbar.min.js +1 -1
  124. package/lib/ui/index.js +1 -1
  125. package/lib/ui/index.min.js +1 -1
  126. package/lib/ui/src/log.js +1 -1
  127. package/lib/ui/src/log.min.js +1 -1
  128. package/package.json +2 -2
  129. package/packages/grid/src/grid.ts +75 -82
  130. package/packages/locale/lang/ar-EG.ts +3 -0
  131. package/packages/locale/lang/de-DE.ts +3 -0
  132. package/packages/locale/lang/en-US.ts +3 -0
  133. package/packages/locale/lang/es-ES.ts +3 -0
  134. package/packages/locale/lang/fr-FR.ts +3 -0
  135. package/packages/locale/lang/hu-HU.ts +3 -0
  136. package/packages/locale/lang/hy-AM.ts +3 -0
  137. package/packages/locale/lang/id-ID.ts +3 -0
  138. package/packages/locale/lang/it-IT.ts +3 -0
  139. package/packages/locale/lang/ja-JP.ts +3 -0
  140. package/packages/locale/lang/ko-KR.ts +3 -0
  141. package/packages/locale/lang/nb-NO.ts +3 -0
  142. package/packages/locale/lang/pt-BR.ts +3 -0
  143. package/packages/locale/lang/ru-RU.ts +3 -0
  144. package/packages/locale/lang/th-TH.ts +3 -0
  145. package/packages/locale/lang/ug-CN.ts +3 -0
  146. package/packages/locale/lang/uk-UA.ts +3 -0
  147. package/packages/locale/lang/vi-VN.ts +3 -0
  148. package/packages/locale/lang/zh-CHT.ts +3 -0
  149. package/packages/locale/lang/zh-CN.ts +3 -0
  150. package/packages/table/module/custom/panel.ts +19 -21
  151. package/packages/table/module/edit/hook.ts +1 -1
  152. package/packages/table/module/export/export-panel.ts +17 -19
  153. package/packages/table/module/export/hook.ts +5 -11
  154. package/packages/table/module/export/import-panel.ts +11 -13
  155. package/packages/table/module/keyboard/hook.ts +49 -8
  156. package/packages/table/module/validator/hook.ts +1 -3
  157. package/packages/table/render/index.ts +89 -59
  158. package/packages/table/src/body.ts +12 -7
  159. package/packages/table/src/columnInfo.ts +26 -28
  160. package/packages/table/src/footer.ts +7 -2
  161. package/packages/table/src/props.ts +4 -0
  162. package/packages/table/src/table.ts +380 -189
  163. package/packages/table/src/util.ts +34 -3
  164. package/packages/toolbar/src/toolbar.ts +16 -24
  165. /package/es/{iconfont.1740732137800.ttf → iconfont.1741664494856.ttf} +0 -0
  166. /package/es/{iconfont.1740732137800.woff → iconfont.1741664494856.woff} +0 -0
  167. /package/es/{iconfont.1740732137800.woff2 → iconfont.1741664494856.woff2} +0 -0
  168. /package/lib/{iconfont.1740732137800.ttf → iconfont.1741664494856.ttf} +0 -0
  169. /package/lib/{iconfont.1740732137800.woff → iconfont.1741664494856.woff} +0 -0
  170. /package/lib/{iconfont.1740732137800.woff2 → iconfont.1741664494856.woff2} +0 -0
@@ -499,6 +499,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
499
499
  const computeColumnOpts = (0, _vue.computed)(() => {
500
500
  return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
501
501
  });
502
+ const computeCurrentColumnOpts = (0, _vue.computed)(() => {
503
+ return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
504
+ });
502
505
  const computeCellOpts = (0, _vue.computed)(() => {
503
506
  return Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
504
507
  });
@@ -511,6 +514,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
511
514
  const computeRowOpts = (0, _vue.computed)(() => {
512
515
  return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
513
516
  });
517
+ const computeCurrentRowOpts = (0, _vue.computed)(() => {
518
+ return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
519
+ });
514
520
  const computeRowDragOpts = (0, _vue.computed)(() => {
515
521
  return Object.assign({}, getConfig().table.rowDragConfig, props.rowDragConfig);
516
522
  });
@@ -817,6 +823,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
817
823
  computeScrollbarXToTop,
818
824
  computeScrollbarYToLeft,
819
825
  computeColumnOpts,
826
+ computeCurrentColumnOpts,
820
827
  computeScrollXThreshold,
821
828
  computeScrollYThreshold,
822
829
  computeDefaultRowHeight,
@@ -824,6 +831,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
824
831
  computeHeaderCellOpts,
825
832
  computeFooterCellOpts,
826
833
  computeRowOpts,
834
+ computeCurrentRowOpts,
827
835
  computeRowDragOpts,
828
836
  computeColumnDragOpts,
829
837
  computeResizeOpts,
@@ -1439,14 +1447,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
1439
1447
  if (expandColumn && expandOpts.mode !== 'fixed' && mouseOpts.area) {
1440
1448
  (0, _log.errLog)('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
1441
1449
  }
1442
- if (process.env.NODE_ENV === 'development') {
1443
- if (htmlColumn) {
1444
- if (!columnOpts.useKey) {
1445
- (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1446
- }
1447
- if (!rowOpts.useKey) {
1448
- (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1449
- }
1450
+ if (htmlColumn) {
1451
+ if (!columnOpts.useKey) {
1452
+ (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1453
+ }
1454
+ if (!rowOpts.useKey) {
1455
+ (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1450
1456
  }
1451
1457
  }
1452
1458
  reactData.isGroup = isGroup;
@@ -2630,6 +2636,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
2630
2636
  reserve,
2631
2637
  checkMethod
2632
2638
  } = checkboxOpts;
2639
+ // indeterminateField 仅支持读取
2633
2640
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
2634
2641
  const selectRowMaps = {};
2635
2642
  /**
@@ -2950,12 +2957,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
2950
2957
  rowIndex: tableMethods.getRowIndex(row),
2951
2958
  $rowIndex: tableMethods.getVMRowIndex(row)
2952
2959
  }).then(() => {
2953
- const rExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
2960
+ const rowTempExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
2954
2961
  if (rowRest) {
2955
2962
  rowRest.expandLoaded = true;
2956
2963
  }
2957
- rExpandedMaps[rowid] = row;
2958
- reactData.rowExpandedMaps = rExpandedMaps;
2964
+ rowTempExpandedMaps[rowid] = row;
2965
+ reactData.rowExpandedMaps = rowTempExpandedMaps;
2959
2966
  }).catch(() => {
2960
2967
  if (rowRest) {
2961
2968
  rowRest.expandLoaded = false;
@@ -3122,32 +3129,30 @@ var _default = exports.default = (0, _vue.defineComponent)({
3122
3129
  } = treeOpts;
3123
3130
  const childrenField = treeOpts.children || treeOpts.childrenField;
3124
3131
  let treeData = [];
3125
- let fullData = (0, _vue.reactive)(datas ? datas.slice(0) : []); // 转为响应式
3132
+ let fullData = (0, _vue.reactive)(datas ? datas.slice(0) : []); // 转为响应式数据
3126
3133
  if (treeConfig) {
3127
3134
  if (transform) {
3128
3135
  // 树结构自动转换
3129
- if (process.env.NODE_ENV === 'development') {
3130
- if (!treeOpts.rowField) {
3131
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.rowField']);
3132
- }
3133
- if (!treeOpts.parentField) {
3134
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.parentField']);
3135
- }
3136
- if (!childrenField) {
3137
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
3138
- }
3139
- if (!treeOpts.mapChildrenField) {
3140
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
3141
- }
3142
- if (childrenField === treeOpts.mapChildrenField) {
3143
- (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
3144
- }
3145
- // fullData.forEach(row => {
3146
- // if (row[treeOpts.children] && row[treeOpts.children].length) {
3147
- // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
3148
- // }
3149
- // })
3136
+ if (!treeOpts.rowField) {
3137
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.rowField']);
3138
+ }
3139
+ if (!treeOpts.parentField) {
3140
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.parentField']);
3150
3141
  }
3142
+ if (!childrenField) {
3143
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
3144
+ }
3145
+ if (!treeOpts.mapChildrenField) {
3146
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
3147
+ }
3148
+ if (childrenField === treeOpts.mapChildrenField) {
3149
+ (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
3150
+ }
3151
+ // fullData.forEach(row => {
3152
+ // if (row[treeOpts.children] && row[treeOpts.children].length) {
3153
+ // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
3154
+ // }
3155
+ // })
3151
3156
  treeData = _xeUtils.default.toArrayTree(fullData, {
3152
3157
  key: treeOpts.rowField,
3153
3158
  parentKey: treeOpts.parentField,
@@ -3211,16 +3216,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
3211
3216
  // }
3212
3217
  // }
3213
3218
  // }
3214
- if (process.env.NODE_ENV === 'development') {
3215
- if (!(props.height || props.maxHeight)) {
3216
- (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
3217
- }
3218
- // if (!props.showOverflow) {
3219
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
3220
- // }
3221
- if (props.spanMethod) {
3222
- (0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
3223
- }
3219
+ if (!(props.height || props.maxHeight)) {
3220
+ (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
3221
+ }
3222
+ // if (!props.showOverflow) {
3223
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
3224
+ // }
3225
+ if (props.spanMethod) {
3226
+ (0, _log.errLog)('vxe.error.scrollErrProp', ['table.span-method']);
3224
3227
  }
3225
3228
  }
3226
3229
  handleReserveStatus();
@@ -4024,6 +4027,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
4024
4027
  };
4025
4028
  tableMethods = {
4026
4029
  dispatchEvent,
4030
+ getEl() {
4031
+ return refElem.value;
4032
+ },
4027
4033
  /**
4028
4034
  * 重置表格的一切数据状态
4029
4035
  */
@@ -4358,23 +4364,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
4358
4364
  }
4359
4365
  return tableMethods.createData(records).then(rows => isArr ? rows : rows[0]);
4360
4366
  },
4361
- // toOriginalRecords (rows: any[]) {
4362
- // const { treeConfig } = props
4363
- // const treeOpts = computeTreeOpts.value
4364
- // const { transform, mapChildrenField } = treeOpts
4365
- // const rowkey = getRowkey($xeTable)
4366
- // if (treeConfig) {
4367
- // if (transform) {
4368
- // return []
4369
- // }
4370
- // return []
4371
- // }
4372
- // return rows.map(item => {
4373
- // const obj = Object.assign({}, item)
4374
- // delete obj.rowkey
4375
- // return obj
4376
- // })
4377
- // },
4378
4367
  /**
4379
4368
  * 还原数据
4380
4369
  * 如果不传任何参数,则还原整个表格
@@ -4384,15 +4373,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
4384
4373
  */
4385
4374
  revertData(rows, field) {
4386
4375
  const {
4387
- keepSource
4376
+ keepSource,
4377
+ treeConfig
4388
4378
  } = props;
4389
4379
  const {
4380
+ editStore
4381
+ } = reactData;
4382
+ const {
4383
+ fullAllDataRowIdData,
4384
+ fullDataRowIdData,
4390
4385
  tableSourceData,
4391
- sourceDataRowIdData
4386
+ sourceDataRowIdData,
4387
+ tableFullData,
4388
+ afterFullData
4392
4389
  } = internalData;
4390
+ const removeTempMaps = Object.assign({}, editStore.removeMaps);
4391
+ const treeOpts = computeTreeOpts.value;
4392
+ const {
4393
+ transform
4394
+ } = treeOpts;
4393
4395
  if (!keepSource) {
4394
4396
  if (process.env.NODE_ENV === 'development') {
4395
- (0, _log.warnLog)('vxe.error.reqProp', ['keep-source']);
4397
+ (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
4396
4398
  }
4397
4399
  return (0, _vue.nextTick)();
4398
4400
  }
@@ -4404,25 +4406,52 @@ var _default = exports.default = (0, _vue.defineComponent)({
4404
4406
  } else {
4405
4407
  targetRows = _xeUtils.default.toArray($xeTable.getUpdateRecords());
4406
4408
  }
4409
+ let reDelFlag = false;
4407
4410
  if (targetRows.length) {
4408
- targetRows.forEach(row => {
4409
- if (!tableMethods.isInsertByRow(row)) {
4410
- const rowid = (0, _util.getRowid)($xeTable, row);
4411
- const oRow = sourceDataRowIdData[rowid];
4412
- if (oRow && row) {
4413
- if (field) {
4414
- _xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
4415
- } else {
4416
- _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
4411
+ targetRows.forEach(item => {
4412
+ const rowid = (0, _util.getRowid)($xeTable, item);
4413
+ const rowRest = fullAllDataRowIdData[rowid];
4414
+ if (rowRest) {
4415
+ const row = rowRest.row;
4416
+ if (!$xeTable.isInsertByRow(row)) {
4417
+ const oRow = sourceDataRowIdData[rowid];
4418
+ if (oRow && row) {
4419
+ if (field) {
4420
+ _xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
4421
+ } else {
4422
+ _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
4423
+ }
4424
+ if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
4425
+ delete removeTempMaps[rowid];
4426
+ tableFullData.unshift(row);
4427
+ afterFullData.unshift(row);
4428
+ reDelFlag = true;
4429
+ }
4417
4430
  }
4418
4431
  }
4419
4432
  }
4420
4433
  });
4421
4434
  }
4422
4435
  if (rows) {
4423
- return (0, _vue.nextTick)();
4436
+ if (reDelFlag) {
4437
+ editStore.removeMaps = removeTempMaps;
4438
+ $xeTable.updateFooter();
4439
+ $xeTable.cacheRowMap(false);
4440
+ $xeTable.handleTableData(treeConfig && transform);
4441
+ if (!(treeConfig && transform)) {
4442
+ $xeTable.updateAfterDataIndex();
4443
+ }
4444
+ $xeTable.checkSelectionStatus();
4445
+ if (reactData.scrollYLoad) {
4446
+ $xeTable.updateScrollYSpace();
4447
+ }
4448
+ }
4449
+ return (0, _vue.nextTick)().then(() => {
4450
+ $xeTable.updateCellAreas();
4451
+ return $xeTable.recalculate();
4452
+ });
4424
4453
  }
4425
- return tableMethods.reloadData(tableSourceData);
4454
+ return $xeTable.reloadData(tableSourceData);
4426
4455
  },
4427
4456
  /**
4428
4457
  * 清空单元格内容
@@ -4555,6 +4584,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
4555
4584
  const rowid = (0, _util.getRowid)($xeTable, row);
4556
4585
  return !!editStore.insertMaps[rowid];
4557
4586
  },
4587
+ isRemoveByRow(row) {
4588
+ const {
4589
+ editStore
4590
+ } = reactData;
4591
+ const rowid = (0, _util.getRowid)($xeTable, row);
4592
+ return !!editStore.removeMaps[rowid];
4593
+ },
4558
4594
  /**
4559
4595
  * 删除所有新增的临时数据
4560
4596
  * @returns
@@ -4568,10 +4604,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
4568
4604
  },
4569
4605
  /**
4570
4606
  * 检查行或列数据是否发生改变
4571
- * @param {Row} row 行对象
4607
+ * @param {Row} rowidOrRow 行对象、行主键
4572
4608
  * @param {String} field 字段名
4573
4609
  */
4574
- isUpdateByRow(row, field) {
4610
+ isUpdateByRow(rowidOrRow, field) {
4575
4611
  const {
4576
4612
  keepSource
4577
4613
  } = props;
@@ -4581,11 +4617,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
4581
4617
  sourceDataRowIdData
4582
4618
  } = internalData;
4583
4619
  if (keepSource) {
4584
- const rowid = (0, _util.getRowid)($xeTable, row);
4620
+ const rowid = _xeUtils.default.isString(rowidOrRow) || _xeUtils.default.isNumber(rowidOrRow) ? rowidOrRow : (0, _util.getRowid)($xeTable, rowidOrRow);
4621
+ const rowRest = fullDataRowIdData[rowid];
4585
4622
  // 新增的数据不需要检测
4586
- if (!fullDataRowIdData[rowid]) {
4623
+ if (!rowRest) {
4587
4624
  return false;
4588
4625
  }
4626
+ const row = rowRest.row;
4589
4627
  const oRow = sourceDataRowIdData[rowid];
4590
4628
  if (oRow) {
4591
4629
  if (arguments.length > 1) {
@@ -4649,6 +4687,108 @@ var _default = exports.default = (0, _vue.defineComponent)({
4649
4687
  tableColumn: reactData.tableColumn.slice(0)
4650
4688
  };
4651
4689
  },
4690
+ /**
4691
+ * 移动列到指定列的位置
4692
+ * @param fieldOrColumn
4693
+ * @param targetFieldOrColumn
4694
+ * @param options
4695
+ */
4696
+ moveColumnTo(fieldOrColumn, targetFieldOrColumn, options) {
4697
+ const {
4698
+ fullColumnIdData,
4699
+ visibleColumn
4700
+ } = internalData;
4701
+ const {
4702
+ dragToChild,
4703
+ dragPos,
4704
+ isCrossDrag
4705
+ } = Object.assign({}, options);
4706
+ const dragCol = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
4707
+ let prevDragCol = null;
4708
+ const colRest = dragCol ? fullColumnIdData[dragCol.id] : null;
4709
+ let defPos = 'left';
4710
+ if (_xeUtils.default.isNumber(targetFieldOrColumn)) {
4711
+ if (colRest && targetFieldOrColumn) {
4712
+ let currList = colRest.items;
4713
+ let offsetIndex = colRest._index + targetFieldOrColumn;
4714
+ if (isCrossDrag) {
4715
+ currList = visibleColumn;
4716
+ offsetIndex = colRest._index + targetFieldOrColumn;
4717
+ }
4718
+ if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
4719
+ prevDragCol = currList[offsetIndex];
4720
+ }
4721
+ if (targetFieldOrColumn > 0) {
4722
+ defPos = 'right';
4723
+ }
4724
+ }
4725
+ } else {
4726
+ prevDragCol = (0, _util.handleFieldOrColumn)($xeTable, targetFieldOrColumn);
4727
+ const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null;
4728
+ if (colRest && targetColRest) {
4729
+ if (targetColRest._index > colRest._index) {
4730
+ defPos = 'right';
4731
+ }
4732
+ }
4733
+ }
4734
+ return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true);
4735
+ },
4736
+ /**
4737
+ * 移动行到指定行的位置
4738
+ * @param rowidOrRow
4739
+ * @param targetRowidOrRow
4740
+ * @param options
4741
+ */
4742
+ moveRowTo(rowidOrRow, targetRowidOrRow, options) {
4743
+ const {
4744
+ treeConfig
4745
+ } = props;
4746
+ const {
4747
+ fullAllDataRowIdData,
4748
+ afterFullData
4749
+ } = internalData;
4750
+ const {
4751
+ dragToChild,
4752
+ dragPos,
4753
+ isCrossDrag
4754
+ } = Object.assign({}, options);
4755
+ const treeOpts = computeTreeOpts.value;
4756
+ const dragRow = (0, _util.handleRowidOrRow)($xeTable, rowidOrRow);
4757
+ let prevDragRow = null;
4758
+ let defPos = 'top';
4759
+ const rowRest = dragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, dragRow)] : null;
4760
+ if (_xeUtils.default.isNumber(targetRowidOrRow)) {
4761
+ if (rowRest && targetRowidOrRow) {
4762
+ let currList = afterFullData;
4763
+ let offsetIndex = rowRest._index + targetRowidOrRow;
4764
+ if (treeConfig) {
4765
+ currList = rowRest.items;
4766
+ if (treeOpts.transform) {
4767
+ offsetIndex = rowRest.treeIndex + targetRowidOrRow;
4768
+ if (isCrossDrag) {
4769
+ currList = afterFullData;
4770
+ offsetIndex = rowRest._index + targetRowidOrRow;
4771
+ }
4772
+ }
4773
+ }
4774
+ if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
4775
+ prevDragRow = currList[offsetIndex];
4776
+ }
4777
+ if (targetRowidOrRow > 0) {
4778
+ defPos = 'bottom';
4779
+ }
4780
+ }
4781
+ } else {
4782
+ prevDragRow = (0, _util.handleRowidOrRow)($xeTable, targetRowidOrRow);
4783
+ const targetRowRest = prevDragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, prevDragRow)] : null;
4784
+ if (rowRest && targetRowRest) {
4785
+ if (targetRowRest._index > rowRest._index) {
4786
+ defPos = 'bottom';
4787
+ }
4788
+ }
4789
+ }
4790
+ return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true);
4791
+ },
4652
4792
  /**
4653
4793
  * 获取表格的全量列
4654
4794
  */
@@ -4672,6 +4812,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
4672
4812
  const {
4673
4813
  treeConfig
4674
4814
  } = props;
4815
+ const {
4816
+ selectCheckboxMaps
4817
+ } = reactData;
4675
4818
  const {
4676
4819
  tableFullData,
4677
4820
  afterFullData,
@@ -4691,19 +4834,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
4691
4834
  } = checkboxOpts;
4692
4835
  const childrenField = treeOpts.children || treeOpts.childrenField;
4693
4836
  let rowList = [];
4694
- const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
4695
4837
  if (checkField) {
4696
4838
  if (treeConfig) {
4839
+ const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
4697
4840
  rowList = _xeUtils.default.filterTree(currTableData, row => _xeUtils.default.get(row, checkField), {
4698
4841
  children: transform ? mapChildrenField : childrenField
4699
4842
  });
4700
4843
  } else {
4844
+ const currTableData = isFull ? tableFullData : afterFullData;
4701
4845
  rowList = currTableData.filter(row => _xeUtils.default.get(row, checkField));
4702
4846
  }
4703
4847
  } else {
4704
- const {
4705
- selectCheckboxMaps
4706
- } = reactData;
4707
4848
  _xeUtils.default.each(selectCheckboxMaps, (row, rowid) => {
4708
4849
  if (isFull) {
4709
4850
  if (fullDataRowIdData[rowid]) {
@@ -5486,6 +5627,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
5486
5627
  checkField,
5487
5628
  reserve
5488
5629
  } = checkboxOpts;
5630
+ // indeterminateField 仅支持读取
5489
5631
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
5490
5632
  if (checkField) {
5491
5633
  const handleClearChecked = item => {
@@ -5626,13 +5768,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
5626
5768
  * 用于当前列,设置某列行为高亮状态
5627
5769
  */
5628
5770
  setCurrentColumn(fieldOrColumn) {
5771
+ const {
5772
+ mouseConfig
5773
+ } = props;
5774
+ const mouseOpts = computeMouseOpts.value;
5775
+ const isMouseSelected = mouseConfig && mouseOpts.selected;
5629
5776
  const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
5630
5777
  if (column) {
5631
- // tableMethods.clearCurrentRow()
5632
- tableMethods.clearCurrentColumn();
5778
+ $xeTable.clearCurrentColumn();
5633
5779
  reactData.currentColumn = column;
5634
5780
  }
5635
- return (0, _vue.nextTick)();
5781
+ return (0, _vue.nextTick)().then(() => {
5782
+ // 更新状选中态
5783
+ if (isMouseSelected) {
5784
+ $xeTable.addCellSelectedClass();
5785
+ }
5786
+ });
5636
5787
  },
5637
5788
  /**
5638
5789
  * 用于当前列,手动清空当前高亮的状态
@@ -6940,7 +7091,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
6940
7091
  keyboardConfig,
6941
7092
  treeConfig,
6942
7093
  editConfig,
6943
- highlightCurrentRow
7094
+ highlightCurrentRow,
7095
+ highlightCurrentColumn
6944
7096
  } = props;
6945
7097
  const {
6946
7098
  ctxMenuStore,
@@ -6958,6 +7110,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
6958
7110
  const treeOpts = computeTreeOpts.value;
6959
7111
  const menuList = computeMenuList.value;
6960
7112
  const rowOpts = computeRowOpts.value;
7113
+ const columnOpts = computeColumnOpts.value;
6961
7114
  const {
6962
7115
  selected,
6963
7116
  actived
@@ -7125,10 +7278,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
7125
7278
  // 如果按下了方向键
7126
7279
  if (selected.row && selected.column) {
7127
7280
  $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
7128
- } else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
7129
- // 当前行按键上下移动
7281
+ }
7282
+ // 当前行按键上下移动
7283
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
7130
7284
  $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
7131
7285
  }
7286
+ // 当前行按键左右移动
7287
+ if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
7288
+ $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
7289
+ }
7132
7290
  }
7133
7291
  } else if (isTab && keyboardConfig && keyboardOpts.isTab) {
7134
7292
  // 如果按下了 Tab 键切换
@@ -7631,7 +7789,15 @@ var _default = exports.default = (0, _vue.defineComponent)({
7631
7789
  if (el) {
7632
7790
  const parentElem = el.parentNode;
7633
7791
  const parentPaddingSize = height === '100%' || height === 'auto' ? (0, _dom.getPaddingTopBottomSize)(parentElem) : 0;
7634
- return Math.floor($xeGrid ? $xeGrid.getParentHeight() : _xeUtils.default.toNumber(getComputedStyle(parentElem).height) - parentPaddingSize);
7792
+ let parentWrapperHeight = 0;
7793
+ if (parentElem) {
7794
+ if ($xeGrid && (0, _dom.hasClass)(parentElem, 'vxe-grid--table-wrapper')) {
7795
+ parentWrapperHeight = $xeGrid.getParentHeight();
7796
+ } else {
7797
+ parentWrapperHeight = parentElem.clientHeight;
7798
+ }
7799
+ }
7800
+ return Math.floor(parentWrapperHeight - parentPaddingSize);
7635
7801
  }
7636
7802
  return 0;
7637
7803
  },
@@ -7733,30 +7899,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
7733
7899
  const {
7734
7900
  treeConfig
7735
7901
  } = props;
7736
- const treeOpts = computeTreeOpts.value;
7902
+ const {
7903
+ treeExpandedMaps
7904
+ } = reactData;
7737
7905
  const {
7738
7906
  fullAllDataRowIdData,
7739
7907
  tableFullData,
7740
7908
  tableFullTreeData
7741
7909
  } = internalData;
7910
+ const treeOpts = computeTreeOpts.value;
7742
7911
  const childrenField = treeOpts.children || treeOpts.childrenField;
7743
7912
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
7913
+ const {
7914
+ lazy
7915
+ } = treeOpts;
7744
7916
  const rowkey = (0, _util.getRowkey)($xeTable);
7745
- const isLazy = treeConfig && treeOpts.lazy;
7746
- const fullAllDataRowIdMaps = {};
7917
+ const isDeepKey = rowkey.indexOf('.') > -1;
7918
+ const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
7747
7919
  const fullDataRowIdMaps = {};
7748
- const handleRow = (row, index, items, path, parentRow, nodes) => {
7749
- let rowid = (0, _util.getRowid)($xeTable, row);
7750
- const seq = treeConfig && path ? (0, _util.toTreePathSeq)(path) : index + 1;
7751
- const level = nodes ? nodes.length - 1 : 0;
7752
- if ((0, _utils.eqEmptyValue)(rowid)) {
7753
- rowid = (0, _util.getRowUniqueId)();
7754
- _xeUtils.default.set(row, rowkey, rowid);
7755
- }
7756
- if (isLazy && row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
7757
- row[childrenField] = null;
7758
- }
7759
- let rowRest = fullAllDataRowIdData[rowid];
7920
+ const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
7921
+ const handleRowId = isDeepKey ? _util.updateDeepRowKey : _util.updateFastRowKey;
7922
+ const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
7923
+ let rowRest = fullAllDataRowIdMaps[rowid];
7760
7924
  if (!rowRest) {
7761
7925
  rowRest = {
7762
7926
  row,
@@ -7774,24 +7938,46 @@ var _default = exports.default = (0, _vue.defineComponent)({
7774
7938
  oTop: 0,
7775
7939
  expandHeight: 0
7776
7940
  };
7941
+ fullDataRowIdMaps[rowid] = rowRest;
7942
+ fullAllDataRowIdMaps[rowid] = rowRest;
7777
7943
  }
7944
+ rowRest.treeLoaded = false;
7945
+ rowRest.expandLoaded = false;
7778
7946
  rowRest.row = row;
7779
7947
  rowRest.items = items;
7780
7948
  rowRest.parent = parentRow;
7781
7949
  rowRest.level = level;
7782
- rowRest.index = treeConfig && parentRow ? -1 : index;
7950
+ rowRest.index = currIndex;
7951
+ rowRest.treeIndex = index;
7783
7952
  fullDataRowIdMaps[rowid] = rowRest;
7784
7953
  fullAllDataRowIdMaps[rowid] = rowRest;
7785
7954
  };
7786
- internalData.fullDataRowIdData = fullDataRowIdMaps;
7787
- internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7788
7955
  if (treeConfig) {
7789
- _xeUtils.default.eachTree(tableFullTreeData, handleRow, {
7956
+ _xeUtils.default.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
7957
+ const rowid = handleRowId(row, rowkey);
7958
+ if (treeConfig && lazy) {
7959
+ const treeExpRest = treeTempExpandedMaps[rowid];
7960
+ if (row[hasChildField] && row[childrenField] === undefined) {
7961
+ row[childrenField] = null;
7962
+ }
7963
+ if (treeExpRest) {
7964
+ if (!row[childrenField] || !row[childrenField].length) {
7965
+ delete treeTempExpandedMaps[rowid];
7966
+ }
7967
+ }
7968
+ }
7969
+ handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, (0, _util.toTreePathSeq)(path));
7970
+ }, {
7790
7971
  children: childrenField
7791
7972
  });
7792
7973
  } else {
7793
- tableFullData.forEach(handleRow);
7974
+ tableFullData.forEach((row, index, items) => {
7975
+ handleRowCache(row, index, items, index, null, handleRowId(row, rowkey), 0, index + 1);
7976
+ });
7794
7977
  }
7978
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
7979
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7980
+ reactData.treeExpandedMaps = treeTempExpandedMaps;
7795
7981
  },
7796
7982
  cacheSourceMap(fullData) {
7797
7983
  const {
@@ -8462,11 +8648,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
8462
8648
  const checkboxOpts = computeCheckboxOpts.value;
8463
8649
  const {
8464
8650
  checkField,
8465
- checkMethod
8651
+ checkMethod,
8652
+ showReserveStatus
8466
8653
  } = checkboxOpts;
8467
8654
  const {
8468
8655
  afterFullData,
8469
- afterTreeFullData
8656
+ afterTreeFullData,
8657
+ checkboxReserveRowMap
8470
8658
  } = internalData;
8471
8659
  let sLen = 0; // 已选
8472
8660
  let hLen = 0; // 半选
@@ -8502,7 +8690,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
8502
8690
  vLen++;
8503
8691
  });
8504
8692
  const isSelected = rootList.length > 0 ? vLen > 0 ? sLen >= vLen : sLen >= rootList.length : false;
8505
- const halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
8693
+ let halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
8694
+ // 如果复选框启用保留记录,当保留数据存在时显示半选
8695
+ if (!isSelected && !halfSelect && showReserveStatus) {
8696
+ halfSelect = !_xeUtils.default.isEmpty(checkboxReserveRowMap);
8697
+ }
8506
8698
  reactData.isAllSelected = isSelected;
8507
8699
  reactData.isIndeterminate = halfSelect;
8508
8700
  },
@@ -8534,6 +8726,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8534
8726
  checkStrictly,
8535
8727
  checkMethod
8536
8728
  } = checkboxOpts;
8729
+ // indeterminateField 仅支持读取
8537
8730
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
8538
8731
  if (checkField) {
8539
8732
  // 树结构
@@ -8747,6 +8940,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8747
8940
  } = internalData;
8748
8941
  const sortOpts = computeSortOpts.value;
8749
8942
  const columnOpts = computeColumnOpts.value;
8943
+ const currentColumnOpts = computeCurrentColumnOpts.value;
8750
8944
  const {
8751
8945
  column
8752
8946
  } = params;
@@ -8755,7 +8949,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8755
8949
  const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
8756
8950
  const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
8757
8951
  if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
8758
- tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
8952
+ $xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column));
8759
8953
  }
8760
8954
  dispatchEvent('header-cell-click', Object.assign({
8761
8955
  triggerResizable,
@@ -8763,8 +8957,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8763
8957
  triggerFilter,
8764
8958
  cell
8765
8959
  }, params), evnt);
8766
- if (columnOpts.isCurrent || props.highlightCurrentColumn) {
8767
- tablePrivateMethods.triggerCurrentColumnEvent(evnt, params);
8960
+ if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
8961
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
8768
8962
  }
8769
8963
  },
8770
8964
  triggerHeaderCellDblclickEvent(evnt, params) {
@@ -8780,6 +8974,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
8780
8974
  triggerCellClickEvent(evnt, params) {
8781
8975
  const {
8782
8976
  highlightCurrentRow,
8977
+ highlightCurrentColumn,
8783
8978
  editConfig
8784
8979
  } = props;
8785
8980
  const {
@@ -8796,6 +8991,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
8796
8991
  const checkboxOpts = computeCheckboxOpts.value;
8797
8992
  const keyboardOpts = computeKeyboardOpts.value;
8798
8993
  const rowOpts = computeRowOpts.value;
8994
+ const columnOpts = computeColumnOpts.value;
8995
+ const currentColumnOpts = computeCurrentColumnOpts.value;
8799
8996
  const {
8800
8997
  actived,
8801
8998
  focused
@@ -8826,29 +9023,35 @@ var _default = exports.default = (0, _vue.defineComponent)({
8826
9023
  if (!triggerCheckbox && !triggerRadio) {
8827
9024
  // 如果是展开行
8828
9025
  if (!triggerExpandNode && (expandOpts.trigger === 'row' || isExpandType && expandOpts.trigger === 'cell')) {
8829
- tablePrivateMethods.triggerRowExpandEvent(evnt, params);
9026
+ $xeTable.triggerRowExpandEvent(evnt, params);
8830
9027
  }
8831
9028
  // 如果是树形表格
8832
9029
  if (treeOpts.trigger === 'row' || treeNode && treeOpts.trigger === 'cell') {
8833
- tablePrivateMethods.triggerTreeExpandEvent(evnt, params);
9030
+ $xeTable.triggerTreeExpandEvent(evnt, params);
8834
9031
  }
8835
9032
  }
8836
9033
  // 如果点击了树节点
8837
9034
  if (!triggerTreeNode) {
8838
9035
  if (!triggerExpandNode) {
8839
- // 如果是高亮行
9036
+ // 如果是当前行
8840
9037
  if (rowOpts.isCurrent || highlightCurrentRow) {
8841
9038
  if (!triggerCheckbox && !triggerRadio) {
8842
- tablePrivateMethods.triggerCurrentRowEvent(evnt, params);
9039
+ $xeTable.triggerCurrentRowEvent(evnt, params);
9040
+ }
9041
+ }
9042
+ // 如果是当前列
9043
+ if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
9044
+ if (!triggerCheckbox && !triggerRadio) {
9045
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
8843
9046
  }
8844
9047
  }
8845
9048
  // 如果是单选框
8846
9049
  if (!triggerRadio && (radioOpts.trigger === 'row' || isRadioType && radioOpts.trigger === 'cell')) {
8847
- tablePrivateMethods.triggerRadioRowEvent(evnt, params);
9050
+ $xeTable.triggerRadioRowEvent(evnt, params);
8848
9051
  }
8849
9052
  // 如果是复选框
8850
9053
  if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || isCheckboxType && checkboxOpts.trigger === 'cell')) {
8851
- tablePrivateMethods.handleToggleCheckRowEvent(evnt, params);
9054
+ $xeTable.handleToggleCheckRowEvent(evnt, params);
8852
9055
  }
8853
9056
  }
8854
9057
  // 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
@@ -9384,6 +9587,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
9384
9587
  } = internalData;
9385
9588
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
9386
9589
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
9590
+ const errRest = {
9591
+ status: false
9592
+ };
9387
9593
  if (prevDragRow && dragRow) {
9388
9594
  // 判断是否有拖动
9389
9595
  if (prevDragRow !== dragRow) {
@@ -9398,7 +9604,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9398
9604
  const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
9399
9605
  return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(status => {
9400
9606
  if (!status) {
9401
- return;
9607
+ return errRest;
9402
9608
  }
9403
9609
  let oafIndex = -1;
9404
9610
  let nafIndex = -1;
@@ -9429,11 +9635,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
9429
9635
  if (isPeerDrag && !isCrossDrag) {
9430
9636
  if (oldRest.row[parentField] !== newRest.row[parentField]) {
9431
9637
  // 非同级
9432
- return;
9638
+ return errRest;
9433
9639
  }
9434
9640
  } else {
9435
9641
  if (!isCrossDrag) {
9436
- return;
9642
+ return errRest;
9437
9643
  }
9438
9644
  if (oldAllMaps[newRowid]) {
9439
9645
  isSelfToChildStatus = true;
@@ -9444,19 +9650,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
9444
9650
  content: getI18n('vxe.error.treeDragChild')
9445
9651
  });
9446
9652
  }
9447
- return;
9653
+ return errRest;
9448
9654
  }
9449
9655
  }
9450
9656
  }
9451
9657
  } else if (oldLevel) {
9452
9658
  // 子到根
9453
9659
  if (!isCrossDrag) {
9454
- return;
9660
+ return errRest;
9455
9661
  }
9456
9662
  } else if (newLevel) {
9457
9663
  // 根到子
9458
9664
  if (!isCrossDrag) {
9459
- return;
9665
+ return errRest;
9460
9666
  }
9461
9667
  if (oldAllMaps[newRowid]) {
9462
9668
  isSelfToChildStatus = true;
@@ -9467,7 +9673,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9467
9673
  content: getI18n('vxe.error.treeDragChild')
9468
9674
  });
9469
9675
  }
9470
- return;
9676
+ return errRest;
9471
9677
  }
9472
9678
  }
9473
9679
  } else {
@@ -9525,26 +9731,34 @@ var _default = exports.default = (0, _vue.defineComponent)({
9525
9731
  if (reactData.scrollYLoad) {
9526
9732
  $xeTable.updateScrollYSpace();
9527
9733
  }
9528
- (0, _vue.nextTick)().then(() => {
9734
+ if (evnt) {
9735
+ dispatchEvent('row-dragend', {
9736
+ oldRow: dragRow,
9737
+ newRow: prevDragRow,
9738
+ dragRow,
9739
+ dragPos: prevDragPos,
9740
+ dragToChild: isDragToChildFlag,
9741
+ offsetIndex: dragOffsetIndex,
9742
+ _index: {
9743
+ newIndex: nafIndex,
9744
+ oldIndex: oafIndex
9745
+ }
9746
+ }, evnt);
9747
+ }
9748
+ return (0, _vue.nextTick)().then(() => {
9529
9749
  $xeTable.updateCellAreas();
9530
9750
  $xeTable.recalculate();
9751
+ }).then(() => {
9752
+ return {
9753
+ status: true
9754
+ };
9531
9755
  });
9532
- dispatchEvent('row-dragend', {
9533
- oldRow: dragRow,
9534
- newRow: prevDragRow,
9535
- dragRow,
9536
- dragPos: prevDragPos,
9537
- dragToChild: isDragToChildFlag,
9538
- offsetIndex: dragOffsetIndex,
9539
- _index: {
9540
- newIndex: nafIndex,
9541
- oldIndex: oafIndex
9542
- }
9543
- }, evnt);
9544
- }).catch(() => {});
9756
+ }).catch(() => {
9757
+ return errRest;
9758
+ });
9545
9759
  }
9546
9760
  }
9547
- return Promise.resolve();
9761
+ return Promise.resolve(errRest);
9548
9762
  },
9549
9763
  handleRowDragDragendEvent(evnt) {
9550
9764
  const {
@@ -9713,6 +9927,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
9713
9927
  collectColumn
9714
9928
  } = internalData;
9715
9929
  const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
9930
+ const errRest = {
9931
+ status: false
9932
+ };
9716
9933
  if (prevDragCol && dragCol) {
9717
9934
  // 判断是否有拖动
9718
9935
  if (prevDragCol !== dragCol) {
@@ -9729,7 +9946,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9729
9946
  const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
9730
9947
  return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(status => {
9731
9948
  if (!status) {
9732
- return;
9949
+ return errRest;
9733
9950
  }
9734
9951
  let oafIndex = -1;
9735
9952
  let nafIndex = -1;
@@ -9743,11 +9960,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
9743
9960
  if (isPeerDrag && !isCrossDrag) {
9744
9961
  if (dragColumn.parentId !== newColumn.parentId) {
9745
9962
  // 非同级
9746
- return;
9963
+ return errRest;
9747
9964
  }
9748
9965
  } else {
9749
9966
  if (!isCrossDrag) {
9750
- return;
9967
+ return errRest;
9751
9968
  }
9752
9969
  if (oldAllMaps[newColumn.id]) {
9753
9970
  isSelfToChildStatus = true;
@@ -9758,19 +9975,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
9758
9975
  content: getI18n('vxe.error.treeDragChild')
9759
9976
  });
9760
9977
  }
9761
- return;
9978
+ return errRest;
9762
9979
  }
9763
9980
  }
9764
9981
  }
9765
9982
  } else if (dragColumn.parentId) {
9766
9983
  // 子到根
9767
9984
  if (!isCrossDrag) {
9768
- return;
9985
+ return errRest;
9769
9986
  }
9770
9987
  } else if (newColumn.parentId) {
9771
9988
  // 根到子
9772
9989
  if (!isCrossDrag) {
9773
- return;
9990
+ return errRest;
9774
9991
  }
9775
9992
  if (oldAllMaps[newColumn.id]) {
9776
9993
  isSelfToChildStatus = true;
@@ -9781,7 +9998,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
9781
9998
  content: getI18n('vxe.error.treeDragChild')
9782
9999
  });
9783
10000
  }
9784
- return;
10001
+ return errRest;
9785
10002
  }
9786
10003
  }
9787
10004
  } else {
@@ -9850,25 +10067,32 @@ var _default = exports.default = (0, _vue.defineComponent)({
9850
10067
  $xeTable.clearCopyCellArea();
9851
10068
  }
9852
10069
  }
9853
- dispatchEvent('column-dragend', {
9854
- oldColumn: dragColumn,
9855
- newColumn,
9856
- dragColumn,
9857
- dragPos: prevDragPos,
9858
- dragToChild: isDragToChildFlag,
9859
- offsetIndex: dragOffsetIndex,
9860
- _index: {
9861
- newIndex: nafIndex,
9862
- oldIndex: oafIndex
9863
- }
9864
- }, evnt);
10070
+ if (evnt) {
10071
+ dispatchEvent('column-dragend', {
10072
+ oldColumn: dragColumn,
10073
+ newColumn,
10074
+ dragColumn,
10075
+ dragPos: prevDragPos,
10076
+ dragToChild: isDragToChildFlag,
10077
+ offsetIndex: dragOffsetIndex,
10078
+ _index: {
10079
+ newIndex: nafIndex,
10080
+ oldIndex: oafIndex
10081
+ }
10082
+ }, evnt);
10083
+ }
9865
10084
  if (isSyncColumn) {
9866
10085
  $xeTable.handleColDragSwapColumn();
9867
10086
  }
9868
- }).catch(() => {});
10087
+ return {
10088
+ status: true
10089
+ };
10090
+ }).catch(() => {
10091
+ return errRest;
10092
+ });
9869
10093
  }
9870
10094
  }
9871
- return Promise.resolve();
10095
+ return Promise.resolve(errRest);
9872
10096
  },
9873
10097
  handleHeaderCellDragDragendEvent(evnt) {
9874
10098
  const {
@@ -10812,18 +11036,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
10812
11036
  }
10813
11037
  };
10814
11038
  // 检测对应模块是否安装
10815
- if (process.env.NODE_ENV === 'development') {
10816
- 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
10817
- $xeTable[name] = function () {
10818
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10819
- };
10820
- });
10821
- 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
10822
- $xeTable[name] = function () {
10823
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10824
- };
10825
- });
10826
- }
11039
+ 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
11040
+ $xeTable[name] = function () {
11041
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
11042
+ };
11043
+ });
11044
+ 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
11045
+ $xeTable[name] = function () {
11046
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
11047
+ };
11048
+ });
10827
11049
  Object.assign($xeTable, tableMethods, tablePrivateMethods);
10828
11050
  /**
10829
11051
  * 渲染浮固定列
@@ -11662,7 +11884,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
11662
11884
  if (rowOpts.height && !props.showOverflow) {
11663
11885
  (0, _log.warnLog)('vxe.error.notProp', ['table.show-overflow']);
11664
11886
  }
11665
- if (!$xeTable.handleMousedownCellAreaEvent) {
11887
+ if (!$xeTable.handleCellAreaMousedownEvent) {
11666
11888
  if (props.areaConfig) {
11667
11889
  (0, _log.warnLog)('vxe.error.notProp', ['area-config']);
11668
11890
  }
@@ -11802,20 +12024,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
11802
12024
  $table: $xeTable
11803
12025
  });
11804
12026
  });
11805
- if (process.env.NODE_ENV === 'development') {
11806
- (0, _vue.nextTick)(() => {
11807
- if (props.loading) {
11808
- if (!VxeUILoadingComponent && !slots.loading) {
11809
- (0, _log.errLog)('vxe.error.reqComp', ['vxe-loading']);
11810
- }
12027
+ (0, _vue.nextTick)(() => {
12028
+ if (props.loading) {
12029
+ if (!VxeUILoadingComponent && !slots.loading) {
12030
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-loading']);
11811
12031
  }
11812
- if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip' || props.tooltipConfig || props.editRules) {
11813
- if (!VxeUITooltipComponent) {
11814
- (0, _log.errLog)('vxe.error.reqComp', ['vxe-tooltip']);
11815
- }
12032
+ }
12033
+ if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip' || props.tooltipConfig || props.editRules) {
12034
+ if (!VxeUITooltipComponent) {
12035
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-tooltip']);
11816
12036
  }
11817
- });
11818
- }
12037
+ }
12038
+ });
11819
12039
  (0, _vue.provide)('$xeColgroup', null);
11820
12040
  (0, _vue.provide)('$xeTable', $xeTable);
11821
12041
  $xeTable.renderVN = renderVN;