vxe-table 4.1.4 → 4.1.7

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 (39) hide show
  1. package/es/edit/src/hook.js +189 -69
  2. package/es/form/src/form.js +2 -2
  3. package/es/input/src/input.js +8 -2
  4. package/es/table/src/body.js +6 -3
  5. package/es/table/src/props.js +6 -6
  6. package/es/table/src/table.js +53 -42
  7. package/es/v-x-e-table/src/conf.js +4 -1
  8. package/es/validator/src/hook.js +3 -3
  9. package/lib/edit/src/hook.js +243 -70
  10. package/lib/edit/src/hook.min.js +1 -1
  11. package/lib/form/src/form.js +2 -2
  12. package/lib/form/src/form.min.js +1 -1
  13. package/lib/index.umd.js +340 -224
  14. package/lib/index.umd.min.js +2 -1
  15. package/lib/input/src/input.js +10 -2
  16. package/lib/input/src/input.min.js +1 -1
  17. package/lib/table/src/body.js +6 -3
  18. package/lib/table/src/body.min.js +1 -1
  19. package/lib/table/src/props.js +6 -6
  20. package/lib/table/src/table.js +57 -45
  21. package/lib/table/src/table.min.js +1 -1
  22. package/lib/v-x-e-table/src/conf.js +4 -1
  23. package/lib/v-x-e-table/src/conf.min.js +1 -1
  24. package/lib/validator/src/hook.js +3 -3
  25. package/lib/validator/src/hook.min.js +1 -1
  26. package/package.json +3 -26
  27. package/packages/edit/src/hook.ts +183 -69
  28. package/packages/form/src/form.ts +2 -2
  29. package/packages/input/src/input.ts +9 -2
  30. package/packages/table/src/body.ts +6 -3
  31. package/packages/table/src/props.ts +6 -6
  32. package/packages/table/src/table.ts +52 -40
  33. package/packages/v-x-e-table/src/conf.ts +4 -1
  34. package/packages/v-x-e-table/src/renderer.ts +1 -1
  35. package/packages/validator/src/hook.ts +3 -3
  36. package/types/edit.d.ts +6 -3
  37. package/types/plugins/pro.d.ts +6 -6
  38. package/types/table.d.ts +9 -0
  39. package/types/v-x-e-table/renderer.d.ts +4 -2
@@ -17,8 +17,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
17
17
  import { nextTick } from 'vue';
18
18
  import XEUtils from 'xe-utils';
19
19
  import { renderer } from '../../v-x-e-table';
20
- import { errLog, getLog, isEnableConf } from '../../tools/utils';
21
- import { getCellValue, setCellValue } from '../../table/src/util';
20
+ import { errLog, getLog, isEnableConf, warnLog } from '../../tools/utils';
21
+ import { getCellValue, setCellValue, getRowid } from '../../table/src/util';
22
22
  import { browse, removeClass, addClass } from '../../tools/dom';
23
23
  var tableEditMethodKeys = ['insert', 'insertAt', 'remove', 'removeCheckboxRow', 'removeRadioRow', 'removeCurrentRow', 'getRecordset', 'getInsertRecords', 'getRemoveRecords', 'getUpdateRecords', 'getActiveRecord', 'getSelectedCell', 'clearActived', 'clearSelected', 'isActiveByRow', 'setActiveRow', 'setActiveCell', 'setSelectCell'];
24
24
  var editHook = {
@@ -66,6 +66,42 @@ var editHook = {
66
66
  }
67
67
  }
68
68
  }
69
+ function insertTreeRow(newRecords, isAppend) {
70
+ var treeFullData = internalData.treeFullData, afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
71
+ var treeOpts = computeTreeOpts.value;
72
+ var funcName = isAppend ? 'push' : 'unshift';
73
+ newRecords.forEach(function (item) {
74
+ var parentRowId = item[treeOpts.parentField];
75
+ var rowid = getRowid($xetable, item);
76
+ var matchObj = parentRowId ? XEUtils.findTree(treeFullData, function (item) { return parentRowId === item[treeOpts.rowField]; }, treeOpts) : null;
77
+ if (matchObj) {
78
+ var parentRow = matchObj.item;
79
+ var parentRest = fullAllDataRowIdData[getRowid($xetable, parentRow)];
80
+ var parentLevel = parentRest ? parentRest.level : 0;
81
+ var parentChilds = parentRow[treeOpts.children];
82
+ if (!XEUtils.isArray(parentChilds)) {
83
+ parentChilds = parentRow[treeOpts.children] = [];
84
+ }
85
+ parentChilds[funcName](item);
86
+ var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parent, level: parentLevel + 1 };
87
+ fullDataRowIdData[rowid] = rest;
88
+ fullAllDataRowIdData[rowid] = rest;
89
+ }
90
+ else {
91
+ if (process.env.NODE_ENV === 'development') {
92
+ if (parentRowId) {
93
+ warnLog('vxe.error.unableInsert');
94
+ }
95
+ }
96
+ afterFullData[funcName](item);
97
+ treeFullData[funcName](item);
98
+ var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items: treeFullData, parent: null, level: 0 };
99
+ fullDataRowIdData[rowid] = rest;
100
+ fullAllDataRowIdData[rowid] = rest;
101
+ }
102
+ });
103
+ $xetable.updateVirtualTreeData();
104
+ }
69
105
  editMethods = {
70
106
  /**
71
107
  * 往表格中插入临时数据
@@ -77,9 +113,9 @@ var editHook = {
77
113
  },
78
114
  /**
79
115
  * 往表格指定行中插入临时数据
80
- * 如果 row 为空则从插入到顶部
81
- * 如果 row 为 -1 则从插入到底部
82
- * 如果 row 为有效行则插入到该行的位置
116
+ * 如果 row 为空则从插入到顶部,如果为树结构,则插入到目标节点顶部
117
+ * 如果 row 为 -1 则从插入到底部,如果为树结构,则插入到目标节点底部
118
+ * 如果 row 为有效行则插入到该行的位置,如果为树结构,则有插入到效的目标节点该行的位置
83
119
  * @param {Object/Array} records 新的数据
84
120
  * @param {Row} row 指定行
85
121
  */
@@ -87,62 +123,112 @@ var editHook = {
87
123
  var _a;
88
124
  var treeConfig = props.treeConfig;
89
125
  var mergeList = reactData.mergeList, editStore = reactData.editStore, scrollYLoad = reactData.scrollYLoad;
90
- var afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData;
126
+ var treeFullData = internalData.treeFullData, afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
91
127
  var sYOpts = computeSYOpts.value;
128
+ var treeOpts = computeTreeOpts.value;
129
+ var transform = treeOpts.transform;
92
130
  if (!XEUtils.isArray(records)) {
93
131
  records = [records];
94
132
  }
95
133
  var newRecords = records.map(function (record) { return $xetable.defineField(Object.assign({}, record)); });
96
134
  if (!row) {
97
- afterFullData.unshift.apply(afterFullData, newRecords);
98
- tableFullData.unshift.apply(tableFullData, newRecords);
99
- // 刷新单元格合并
100
- mergeList.forEach(function (mergeItem) {
101
- var mergeRowIndex = mergeItem.row;
102
- if (mergeRowIndex > 0) {
103
- mergeItem.row = mergeRowIndex + newRecords.length;
104
- }
105
- });
106
- }
107
- else {
108
- if (row === -1) {
109
- afterFullData.push.apply(afterFullData, newRecords);
110
- tableFullData.push.apply(tableFullData, newRecords);
135
+ // 如果为虚拟树
136
+ if (treeConfig && transform) {
137
+ insertTreeRow(newRecords, false);
138
+ }
139
+ else {
140
+ afterFullData.unshift.apply(afterFullData, newRecords);
141
+ tableFullData.unshift.apply(tableFullData, newRecords);
111
142
  // 刷新单元格合并
112
143
  mergeList.forEach(function (mergeItem) {
113
- var mergeRowIndex = mergeItem.row, mergeRowspan = mergeItem.rowspan;
114
- if (mergeRowIndex + mergeRowspan > afterFullData.length) {
115
- mergeItem.rowspan = mergeRowspan + newRecords.length;
144
+ var mergeRowIndex = mergeItem.row;
145
+ if (mergeRowIndex > 0) {
146
+ mergeItem.row = mergeRowIndex + newRecords.length;
116
147
  }
117
148
  });
118
149
  }
119
- else {
120
- if (treeConfig) {
121
- throw new Error(getLog('vxe.error.noTree', ['insert']));
150
+ }
151
+ else {
152
+ if (row === -1) {
153
+ // 如果为虚拟树
154
+ if (treeConfig && transform) {
155
+ insertTreeRow(newRecords, true);
122
156
  }
123
- var afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
124
- if (afIndex_1 === -1) {
125
- throw new Error(errLog('vxe.error.unableInsert'));
157
+ else {
158
+ afterFullData.push.apply(afterFullData, newRecords);
159
+ tableFullData.push.apply(tableFullData, newRecords);
160
+ // 刷新单元格合并
161
+ mergeList.forEach(function (mergeItem) {
162
+ var mergeRowIndex = mergeItem.row, mergeRowspan = mergeItem.rowspan;
163
+ if (mergeRowIndex + mergeRowspan > afterFullData.length) {
164
+ mergeItem.rowspan = mergeRowspan + newRecords.length;
165
+ }
166
+ });
126
167
  }
127
- afterFullData.splice.apply(afterFullData, __spreadArray([afIndex_1, 0], newRecords));
128
- tableFullData.splice.apply(tableFullData, __spreadArray([$xetable.findRowIndexOf(tableFullData, row), 0], newRecords));
129
- // 刷新单元格合并
130
- mergeList.forEach(function (mergeItem) {
131
- var mergeRowIndex = mergeItem.row, mergeRowspan = mergeItem.rowspan;
132
- if (mergeRowIndex > afIndex_1) {
133
- mergeItem.row = mergeRowIndex + newRecords.length;
168
+ }
169
+ else {
170
+ // 如果为虚拟树
171
+ if (treeConfig && transform) {
172
+ var matchObj_1 = XEUtils.findTree(treeFullData, function (item) { return row[treeOpts.rowField] === item[treeOpts.rowField]; }, treeOpts);
173
+ if (matchObj_1) {
174
+ var parentRow_1 = matchObj_1.parent;
175
+ var parentChilds_1 = matchObj_1.items;
176
+ var parentRest = fullAllDataRowIdData[getRowid($xetable, parentRow_1)];
177
+ var parentLevel_1 = parentRest ? parentRest.level : 0;
178
+ newRecords.forEach(function (item, i) {
179
+ var rowid = getRowid($xetable, item);
180
+ if (process.env.NODE_ENV === 'development') {
181
+ if (item[treeOpts.parentField]) {
182
+ if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[treeOpts.rowField]) {
183
+ errLog('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[treeOpts.rowField]]);
184
+ }
185
+ }
186
+ }
187
+ if (parentRow_1) {
188
+ item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
189
+ }
190
+ parentChilds_1.splice(matchObj_1.index + i, 0, item);
191
+ var rest = { row: item, rowid: rowid, index: -1, _index: -1, $index: -1, items: parentChilds_1, parent: parentRow_1, level: parentLevel_1 + 1 };
192
+ fullDataRowIdData[rowid] = rest;
193
+ fullAllDataRowIdData[rowid] = rest;
194
+ });
195
+ $xetable.updateVirtualTreeData();
134
196
  }
135
- else if (mergeRowIndex + mergeRowspan > afIndex_1) {
136
- mergeItem.rowspan = mergeRowspan + newRecords.length;
197
+ else {
198
+ if (process.env.NODE_ENV === 'development') {
199
+ warnLog('vxe.error.unableInsert');
200
+ }
201
+ insertTreeRow(newRecords, true);
137
202
  }
138
- });
203
+ }
204
+ else {
205
+ if (treeConfig) {
206
+ throw new Error(getLog('vxe.error.noTree', ['insert']));
207
+ }
208
+ var afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
209
+ if (afIndex_1 === -1) {
210
+ throw new Error(errLog('vxe.error.unableInsert'));
211
+ }
212
+ afterFullData.splice.apply(afterFullData, __spreadArray([afIndex_1, 0], newRecords));
213
+ tableFullData.splice.apply(tableFullData, __spreadArray([$xetable.findRowIndexOf(tableFullData, row), 0], newRecords));
214
+ // 刷新单元格合并
215
+ mergeList.forEach(function (mergeItem) {
216
+ var mergeRowIndex = mergeItem.row, mergeRowspan = mergeItem.rowspan;
217
+ if (mergeRowIndex > afIndex_1) {
218
+ mergeItem.row = mergeRowIndex + newRecords.length;
219
+ }
220
+ else if (mergeRowIndex + mergeRowspan > afIndex_1) {
221
+ mergeItem.rowspan = mergeRowspan + newRecords.length;
222
+ }
223
+ });
224
+ }
139
225
  }
140
226
  }
141
227
  (_a = editStore.insertList).unshift.apply(_a, newRecords);
142
228
  reactData.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
143
229
  $xetable.updateFooter();
144
230
  $xetable.cacheRowMap();
145
- $xetable.handleTableData();
231
+ $xetable.handleTableData(transform);
146
232
  $xetable.updateAfterDataIndex();
147
233
  $xetable.checkSelectionStatus();
148
234
  if (scrollYLoad) {
@@ -167,9 +253,11 @@ var editHook = {
167
253
  remove: function (rows) {
168
254
  var treeConfig = props.treeConfig;
169
255
  var mergeList = reactData.mergeList, editStore = reactData.editStore, selection = reactData.selection, scrollYLoad = reactData.scrollYLoad;
170
- var afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData;
256
+ var treeFullData = internalData.treeFullData, afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData;
171
257
  var checkboxOpts = computeCheckboxOpts.value;
172
258
  var sYOpts = computeSYOpts.value;
259
+ var treeOpts = computeTreeOpts.value;
260
+ var transform = treeOpts.transform;
173
261
  var actived = editStore.actived, removeList = editStore.removeList, insertList = editStore.insertList;
174
262
  var property = checkboxOpts.checkField;
175
263
  var rest = [];
@@ -202,27 +290,45 @@ var editHook = {
202
290
  $xetable.clearMergeCells();
203
291
  }
204
292
  else {
205
- rows.forEach(function (row) {
206
- var tfIndex = $xetable.findRowIndexOf(tableFullData, row);
207
- if (tfIndex > -1) {
208
- var rItems = tableFullData.splice(tfIndex, 1);
209
- rest.push(rItems[0]);
210
- }
211
- var afIndex = $xetable.findRowIndexOf(afterFullData, row);
212
- if (afIndex > -1) {
213
- // 刷新单元格合并
214
- mergeList.forEach(function (mergeItem) {
215
- var mergeRowIndex = mergeItem.row, mergeRowspan = mergeItem.rowspan;
216
- if (mergeRowIndex > afIndex) {
217
- mergeItem.row = mergeRowIndex - 1;
218
- }
219
- else if (mergeRowIndex + mergeRowspan > afIndex) {
220
- mergeItem.rowspan = mergeRowspan - 1;
221
- }
222
- });
223
- afterFullData.splice(afIndex, 1);
224
- }
225
- });
293
+ // 如果为虚拟树
294
+ if (treeConfig && transform) {
295
+ rows.forEach(function (row) {
296
+ var rowid = getRowid($xetable, row);
297
+ var matchObj = XEUtils.findTree(treeFullData, function (item) { return rowid === getRowid($xetable, item); }, treeOpts);
298
+ if (matchObj) {
299
+ var rItems = matchObj.items.splice(matchObj.index, 1);
300
+ rest.push(rItems[0]);
301
+ }
302
+ var afIndex = $xetable.findRowIndexOf(afterFullData, row);
303
+ if (afIndex > -1) {
304
+ afterFullData.splice(afIndex, 1);
305
+ }
306
+ $xetable.updateVirtualTreeData();
307
+ });
308
+ }
309
+ else {
310
+ rows.forEach(function (row) {
311
+ var tfIndex = $xetable.findRowIndexOf(tableFullData, row);
312
+ if (tfIndex > -1) {
313
+ var rItems = tableFullData.splice(tfIndex, 1);
314
+ rest.push(rItems[0]);
315
+ }
316
+ var afIndex = $xetable.findRowIndexOf(afterFullData, row);
317
+ if (afIndex > -1) {
318
+ // 刷新单元格合并
319
+ mergeList.forEach(function (mergeItem) {
320
+ var mergeRowIndex = mergeItem.row, mergeRowspan = mergeItem.rowspan;
321
+ if (mergeRowIndex > afIndex) {
322
+ mergeItem.row = mergeRowIndex - 1;
323
+ }
324
+ else if (mergeRowIndex + mergeRowspan > afIndex) {
325
+ mergeItem.rowspan = mergeRowspan - 1;
326
+ }
327
+ });
328
+ afterFullData.splice(afIndex, 1);
329
+ }
330
+ });
331
+ }
226
332
  }
227
333
  // 如果当前行被激活编辑,则清除激活状态
228
334
  if (actived.row && $xetable.findRowIndexOf(rows, actived.row) > -1) {
@@ -238,7 +344,7 @@ var editHook = {
238
344
  reactData.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
239
345
  $xetable.updateFooter();
240
346
  $xetable.cacheRowMap();
241
- $xetable.handleTableData();
347
+ $xetable.handleTableData(transform);
242
348
  $xetable.updateAfterDataIndex();
243
349
  $xetable.checkSelectionStatus();
244
350
  if (scrollYLoad) {
@@ -294,16 +400,30 @@ var editHook = {
294
400
  * 获取新增的临时数据
295
401
  */
296
402
  getInsertRecords: function () {
403
+ var treeConfig = props.treeConfig;
297
404
  var editStore = reactData.editStore;
298
- var tableFullData = internalData.tableFullData;
405
+ var treeFullData = internalData.treeFullData, tableFullData = internalData.tableFullData;
406
+ var treeOpts = computeTreeOpts.value;
299
407
  var insertList = editStore.insertList;
300
408
  var insertRecords = [];
301
409
  if (insertList.length) {
302
- tableFullData.forEach(function (row) {
303
- if ($xetable.findRowIndexOf(insertList, row) > -1) {
304
- insertRecords.push(row);
305
- }
306
- });
410
+ // 如果为虚拟树
411
+ if (treeConfig && treeOpts.transform) {
412
+ insertList.forEach(function (row) {
413
+ var rowid = getRowid($xetable, row);
414
+ var matchObj = XEUtils.findTree(treeFullData, function (item) { return rowid === getRowid($xetable, item); }, treeOpts);
415
+ if (matchObj) {
416
+ insertRecords.push(row);
417
+ }
418
+ });
419
+ }
420
+ else {
421
+ insertList.forEach(function (row) {
422
+ if ($xetable.findRowIndexOf(tableFullData, row) > -1) {
423
+ insertRecords.push(row);
424
+ }
425
+ });
426
+ }
307
427
  }
308
428
  return insertRecords;
309
429
  },
@@ -379,7 +379,7 @@ export default defineComponent({
379
379
  callback();
380
380
  }
381
381
  }).catch(function () {
382
- return new Promise(function (resolve, reject) {
382
+ return new Promise(function (resolve) {
383
383
  showErrTime = window.setTimeout(function () {
384
384
  itemList.forEach(function (item) {
385
385
  if (item.errRule) {
@@ -397,7 +397,7 @@ export default defineComponent({
397
397
  resolve();
398
398
  }
399
399
  else {
400
- reject(validRest);
400
+ resolve(validRest);
401
401
  }
402
402
  });
403
403
  });
@@ -511,11 +511,17 @@ export default defineComponent({
511
511
  var type = props.type, immediate = props.immediate;
512
512
  return immediate || !(type === 'text' || type === 'number' || type === 'integer' || type === 'float');
513
513
  });
514
+ function toFloatValueFixed(inputValue, digitsValue) {
515
+ if (/^-/.test('' + inputValue)) {
516
+ return XEUtils.toFixed(XEUtils.ceil(inputValue, digitsValue), digitsValue);
517
+ }
518
+ return XEUtils.toFixed(XEUtils.floor(inputValue, digitsValue), digitsValue);
519
+ }
514
520
  function getNumberValue(val) {
515
521
  var type = props.type, exponential = props.exponential;
516
522
  var inpMaxlength = computeInpMaxlength.value;
517
523
  var digitsValue = computeDigitsValue.value;
518
- var restVal = (type === 'float' ? XEUtils.toFixed(XEUtils.floor(val, digitsValue), digitsValue) : XEUtils.toValueString(val));
524
+ var restVal = (type === 'float' ? toFloatValueFixed(val, digitsValue) : XEUtils.toValueString(val));
519
525
  if (exponential && (val === restVal || XEUtils.toValueString(val).toLowerCase() === XEUtils.toNumber(restVal).toExponential())) {
520
526
  return val;
521
527
  }
@@ -647,7 +653,7 @@ export default defineComponent({
647
653
  }
648
654
  else if (type === 'float') {
649
655
  if (inputValue) {
650
- var validValue = XEUtils.toFixed(XEUtils.floor(inputValue, digitsValue), digitsValue);
656
+ var validValue = toFloatValueFixed(inputValue, digitsValue);
651
657
  if (inputValue !== validValue) {
652
658
  emitModel(validValue, { type: 'init' });
653
659
  }
@@ -290,6 +290,7 @@ export default defineComponent({
290
290
  var radioOpts = computeRadioOpts.value;
291
291
  var treeOpts = computeTreeOpts.value;
292
292
  var editOpts = computeEditOpts.value;
293
+ var rowOpts = computeRowOpts.value;
293
294
  var rows = [];
294
295
  tableData.forEach(function (row, $rowIndex) {
295
296
  var trOn = {};
@@ -302,7 +303,7 @@ export default defineComponent({
302
303
  // 确保任何情况下 rowIndex 都精准指向真实 data 索引
303
304
  rowIndex = $xetable.getRowIndex(row);
304
305
  // 事件绑定
305
- if (highlightHoverRow) {
306
+ if (rowOpts.isHover || highlightHoverRow) {
306
307
  trOn.onMouseenter = function (evnt) {
307
308
  if (isOperateMouse()) {
308
309
  return;
@@ -402,6 +403,7 @@ export default defineComponent({
402
403
  var highlightHoverRow = tableProps.highlightHoverRow;
403
404
  var scrollXLoad = tableReactData.scrollXLoad, scrollYLoad = tableReactData.scrollYLoad;
404
405
  var elemStore = tableInternalData.elemStore, lastScrollTop = tableInternalData.lastScrollTop, lastScrollLeft = tableInternalData.lastScrollLeft;
406
+ var rowOpts = computeRowOpts.value;
405
407
  var tableHeader = refTableHeader.value;
406
408
  var tableBody = refTableBody.value;
407
409
  var tableFooter = refTableFooter.value;
@@ -425,7 +427,7 @@ export default defineComponent({
425
427
  tableInternalData.lastScrollTop = scrollTop;
426
428
  tableInternalData.lastScrollLeft = scrollLeft;
427
429
  tableInternalData.lastScrollTime = Date.now();
428
- if (highlightHoverRow) {
430
+ if (rowOpts.isHover || highlightHoverRow) {
429
431
  $xetable.clearHoverRow();
430
432
  }
431
433
  if (leftElem && fixedType === 'left') {
@@ -519,6 +521,7 @@ export default defineComponent({
519
521
  var highlightHoverRow = tableProps.highlightHoverRow;
520
522
  var scrollYLoad = tableReactData.scrollYLoad;
521
523
  var lastScrollTop = tableInternalData.lastScrollTop, lastScrollLeft = tableInternalData.lastScrollLeft;
524
+ var rowOpts = computeRowOpts.value;
522
525
  var tableBody = refTableBody.value;
523
526
  var scrollBodyElem = refElem.value;
524
527
  var bodyElem = tableBody.$el;
@@ -539,7 +542,7 @@ export default defineComponent({
539
542
  tableInternalData.lastScrollTop = scrollTop;
540
543
  tableInternalData.lastScrollLeft = scrollLeft;
541
544
  tableInternalData.lastScrollTime = Date.now();
542
- if (highlightHoverRow) {
545
+ if (rowOpts.isHover || highlightHoverRow) {
543
546
  $xetable.clearHoverRow();
544
547
  }
545
548
  handleWheel(evnt, isTopWheel, deltaTop, isRollX, isRollY);
@@ -30,15 +30,15 @@ export default {
30
30
  footerAlign: { type: String, default: function () { return GlobalConfig.table.footerAlign; } },
31
31
  // 是否显示表头
32
32
  showHeader: { type: Boolean, default: function () { return GlobalConfig.table.showHeader; } },
33
- // 是否要高亮当前选中行
33
+ // (即将废弃)是否要高亮当前选中行
34
34
  highlightCurrentRow: { type: Boolean, default: function () { return GlobalConfig.table.highlightCurrentRow; } },
35
- // 鼠标移到行是否要高亮显示
35
+ // (即将废弃)鼠标移到行是否要高亮显示
36
36
  highlightHoverRow: { type: Boolean, default: function () { return GlobalConfig.table.highlightHoverRow; } },
37
- // 是否要高亮当前选中列
37
+ // (即将废弃)是否要高亮当前选中列
38
38
  highlightCurrentColumn: { type: Boolean, default: function () { return GlobalConfig.table.highlightCurrentColumn; } },
39
- // 鼠标移到列是否要高亮显示
39
+ // (即将废弃)鼠标移到列是否要高亮显示
40
40
  highlightHoverColumn: { type: Boolean, default: function () { return GlobalConfig.table.highlightHoverColumn; } },
41
- // 激活单元格编辑时是否高亮显示
41
+ // (即将废弃)激活单元格编辑时是否高亮显示
42
42
  highlightCell: Boolean,
43
43
  // 是否显示表尾合计
44
44
  showFooter: Boolean,
@@ -148,7 +148,7 @@ export default {
148
148
  scrollX: Object,
149
149
  // 纵向虚拟滚动配置项
150
150
  scrollY: Object,
151
- // 优化相关
151
+ // (即将废弃)优化相关
152
152
  animat: { type: Boolean, default: function () { return GlobalConfig.table.animat; } },
153
153
  delayHover: { type: Number, default: function () { return GlobalConfig.table.delayHover; } },
154
154
  // 额外的参数