vxe-table 4.1.2 → 4.1.5

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.
@@ -309,17 +309,18 @@ export var Cell = {
309
309
  var selectRow = reactData.selectRow;
310
310
  var radioOpts = computeRadioOpts.value;
311
311
  var slots = column.slots;
312
- var labelField = radioOpts.labelField, checkMethod = radioOpts.checkMethod;
312
+ var labelField = radioOpts.labelField, checkMethod = radioOpts.checkMethod, visibleMethod = radioOpts.visibleMethod;
313
313
  var row = params.row;
314
314
  var defaultSlot = slots ? slots.default : null;
315
315
  var radioSlot = slots ? slots.radio : null;
316
316
  var isChecked = row === selectRow;
317
+ var isVisible = !visibleMethod || visibleMethod({ row: row });
317
318
  var isDisabled = !!checkMethod;
318
319
  var ons;
319
320
  if (!isHidden) {
320
321
  ons = {
321
322
  onClick: function (evnt) {
322
- if (!isDisabled) {
323
+ if (!isDisabled && isVisible) {
323
324
  $table.triggerRadioRowEvent(evnt, params);
324
325
  }
325
326
  }
@@ -328,23 +329,28 @@ export var Cell = {
328
329
  isDisabled = !checkMethod({ row: row });
329
330
  }
330
331
  }
331
- var radioParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled });
332
- return radioSlot ? $table.callSlot(radioSlot, radioParams) : [
332
+ var radioParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible });
333
+ if (radioSlot) {
334
+ return $table.callSlot(radioSlot, radioParams);
335
+ }
336
+ var radioVNs = [];
337
+ if (isVisible) {
338
+ radioVNs.push(h('span', {
339
+ class: 'vxe-radio--icon vxe-radio--checked-icon'
340
+ }), h('span', {
341
+ class: 'vxe-radio--icon vxe-radio--unchecked-icon'
342
+ }));
343
+ }
344
+ if (defaultSlot || labelField) {
345
+ radioVNs.push(h('span', {
346
+ class: 'vxe-radio--label'
347
+ }, defaultSlot ? $table.callSlot(defaultSlot, radioParams) : XEUtils.get(row, labelField)));
348
+ }
349
+ return [
333
350
  h('span', __assign({ class: ['vxe-cell--radio', {
334
351
  'is--checked': isChecked,
335
352
  'is--disabled': isDisabled
336
- }] }, ons), [
337
- h('span', {
338
- class: 'vxe-radio--icon vxe-radio--checked-icon'
339
- }),
340
- h('span', {
341
- class: 'vxe-radio--icon vxe-radio--unchecked-icon'
342
- })
343
- ].concat(defaultSlot || labelField ? [
344
- h('span', {
345
- class: 'vxe-radio--label'
346
- }, defaultSlot ? $table.callSlot(defaultSlot, radioParams) : XEUtils.get(row, labelField))
347
- ] : []))
353
+ }] }, ons), radioVNs)
348
354
  ];
349
355
  },
350
356
  renderTreeRadioCell: function (params) {
@@ -416,19 +422,20 @@ export var Cell = {
416
422
  var selection = reactData.selection, treeIndeterminates = reactData.treeIndeterminates;
417
423
  var computeCheckboxOpts = $table.getComputeMaps().computeCheckboxOpts;
418
424
  var checkboxOpts = computeCheckboxOpts.value;
419
- var labelField = checkboxOpts.labelField, checkMethod = checkboxOpts.checkMethod;
425
+ var labelField = checkboxOpts.labelField, checkMethod = checkboxOpts.checkMethod, visibleMethod = checkboxOpts.visibleMethod;
420
426
  var slots = column.slots;
421
427
  var defaultSlot = slots ? slots.default : null;
422
428
  var checkboxSlot = slots ? slots.checkbox : null;
423
429
  var indeterminate = false;
424
430
  var isChecked = false;
431
+ var isVisible = !visibleMethod || visibleMethod({ row: row });
425
432
  var isDisabled = !!checkMethod;
426
433
  var ons;
427
434
  if (!isHidden) {
428
435
  isChecked = $table.findRowIndexOf(selection, row) > -1;
429
436
  ons = {
430
437
  onClick: function (evnt) {
431
- if (!isDisabled) {
438
+ if (!isDisabled && isVisible) {
432
439
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
433
440
  }
434
441
  }
@@ -440,27 +447,31 @@ export var Cell = {
440
447
  indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
441
448
  }
442
449
  }
443
- var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, indeterminate: indeterminate });
444
- return checkboxSlot ? $table.callSlot(checkboxSlot, checkboxParams) : [
450
+ var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate: indeterminate });
451
+ if (checkboxSlot) {
452
+ return $table.callSlot(checkboxSlot, checkboxParams);
453
+ }
454
+ var checkVNs = [];
455
+ if (isVisible) {
456
+ checkVNs.push(h('span', {
457
+ class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
458
+ }), h('span', {
459
+ class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
460
+ }), h('span', {
461
+ class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
462
+ }));
463
+ }
464
+ if (defaultSlot || labelField) {
465
+ checkVNs.push(h('span', {
466
+ class: 'vxe-checkbox--label'
467
+ }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField)));
468
+ }
469
+ return [
445
470
  h('span', __assign({ class: ['vxe-cell--checkbox', {
446
471
  'is--checked': isChecked,
447
472
  'is--disabled': isDisabled,
448
473
  'is--indeterminate': indeterminate
449
- }] }, ons), [
450
- h('span', {
451
- class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
452
- }),
453
- h('span', {
454
- class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
455
- }),
456
- h('span', {
457
- class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
458
- })
459
- ].concat(defaultSlot || labelField ? [
460
- h('span', {
461
- class: 'vxe-checkbox--label'
462
- }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField))
463
- ] : []))
474
+ }] }, ons), checkVNs)
464
475
  ];
465
476
  },
466
477
  renderTreeSelectionCell: function (params) {
@@ -473,19 +484,20 @@ export var Cell = {
473
484
  var treeIndeterminates = reactData.treeIndeterminates;
474
485
  var computeCheckboxOpts = $table.getComputeMaps().computeCheckboxOpts;
475
486
  var checkboxOpts = computeCheckboxOpts.value;
476
- var labelField = checkboxOpts.labelField, property = checkboxOpts.checkField, halfField = checkboxOpts.halfField, checkMethod = checkboxOpts.checkMethod;
487
+ var labelField = checkboxOpts.labelField, property = checkboxOpts.checkField, halfField = checkboxOpts.halfField, checkMethod = checkboxOpts.checkMethod, visibleMethod = checkboxOpts.visibleMethod;
477
488
  var slots = column.slots;
478
489
  var defaultSlot = slots ? slots.default : null;
479
490
  var checkboxSlot = slots ? slots.checkbox : null;
480
491
  var indeterminate = false;
481
492
  var isChecked = false;
493
+ var isVisible = !visibleMethod || visibleMethod({ row: row });
482
494
  var isDisabled = !!checkMethod;
483
495
  var ons;
484
496
  if (!isHidden) {
485
497
  isChecked = XEUtils.get(row, property);
486
498
  ons = {
487
499
  onClick: function (evnt) {
488
- if (!isDisabled) {
500
+ if (!isDisabled && isVisible) {
489
501
  $table.triggerCheckRowEvent(evnt, params, !isChecked);
490
502
  }
491
503
  }
@@ -497,27 +509,31 @@ export var Cell = {
497
509
  indeterminate = $table.findRowIndexOf(treeIndeterminates, row) > -1;
498
510
  }
499
511
  }
500
- var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, indeterminate: indeterminate });
501
- return checkboxSlot ? $table.callSlot(checkboxSlot, checkboxParams) : [
512
+ var checkboxParams = __assign(__assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate: indeterminate });
513
+ if (checkboxSlot) {
514
+ return $table.callSlot(checkboxSlot, checkboxParams);
515
+ }
516
+ var checkVNs = [];
517
+ if (isVisible) {
518
+ checkVNs.push(h('span', {
519
+ class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
520
+ }), h('span', {
521
+ class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
522
+ }), h('span', {
523
+ class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
524
+ }));
525
+ if (defaultSlot || labelField) {
526
+ checkVNs.push(h('span', {
527
+ class: 'vxe-checkbox--label'
528
+ }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField)));
529
+ }
530
+ }
531
+ return [
502
532
  h('span', __assign({ class: ['vxe-cell--checkbox', {
503
533
  'is--checked': isChecked,
504
534
  'is--disabled': isDisabled,
505
535
  'is--indeterminate': halfField && !isChecked ? row[halfField] : indeterminate
506
- }] }, ons), [
507
- h('span', {
508
- class: 'vxe-checkbox--icon vxe-checkbox--checked-icon'
509
- }),
510
- h('span', {
511
- class: 'vxe-checkbox--icon vxe-checkbox--unchecked-icon'
512
- }),
513
- h('span', {
514
- class: 'vxe-checkbox--icon vxe-checkbox--indeterminate-icon'
515
- })
516
- ].concat(defaultSlot || labelField ? [
517
- h('span', {
518
- class: 'vxe-checkbox--label'
519
- }, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : XEUtils.get(row, labelField))
520
- ] : []))
536
+ }] }, ons), checkVNs)
521
537
  ];
522
538
  },
523
539
  renderTreeSelectionCellByProp: function (params) {
@@ -1762,11 +1762,11 @@ export default defineComponent({
1762
1762
  if (transform) {
1763
1763
  // 树结构自动转换
1764
1764
  if (process.env.NODE_ENV === 'development') {
1765
- if (!treeOpts.rowtKey) {
1766
- errLog('vxe.error.reqProp', ['tree-config.rowtKey']);
1765
+ if (!treeOpts.rowField) {
1766
+ errLog('vxe.error.reqProp', ['tree-config.rowField']);
1767
1767
  }
1768
- if (!treeOpts.parentKey) {
1769
- errLog('vxe.error.reqProp', ['tree-config.parentKey']);
1768
+ if (!treeOpts.parentField) {
1769
+ errLog('vxe.error.reqProp', ['tree-config.parentField']);
1770
1770
  }
1771
1771
  if (!treeOpts.children) {
1772
1772
  errLog('vxe.error.reqProp', ['tree-config.children']);
@@ -1777,7 +1777,7 @@ export default defineComponent({
1777
1777
  }
1778
1778
  });
1779
1779
  }
1780
- treeData = XEUtils.toArrayTree(fullData, { key: treeOpts.rowtKey, parentKey: treeOpts.parentKey, children: treeOpts.children });
1780
+ treeData = XEUtils.toArrayTree(fullData, { key: treeOpts.rowField, parentKey: treeOpts.parentField, children: treeOpts.children });
1781
1781
  fullData = treeData.slice(0);
1782
1782
  }
1783
1783
  else {
@@ -2072,8 +2072,10 @@ export default defineComponent({
2072
2072
  var treeFullData = internalData.treeFullData;
2073
2073
  var treeOpts = computeTreeOpts.value;
2074
2074
  var fullData = [];
2075
+ var expandMaps = new Map();
2075
2076
  XEUtils.eachTree(treeFullData, function (row, index, items, path, parent) {
2076
- if (!parent || $xetable.findRowIndexOf(treeExpandeds, parent) > -1) {
2077
+ if (!parent || (expandMaps.has(parent) && $xetable.findRowIndexOf(treeExpandeds, parent) > -1)) {
2078
+ expandMaps.set(row, 1);
2077
2079
  fullData.push(row);
2078
2080
  }
2079
2081
  }, treeOpts);
@@ -2258,18 +2260,13 @@ export default defineComponent({
2258
2260
  var oRow = tableSourceData[rowIndex];
2259
2261
  if (oRow && row) {
2260
2262
  if (field) {
2261
- XEUtils.set(oRow, field, XEUtils.get(record || row, field));
2263
+ var newValue = XEUtils.get(record || row, field);
2264
+ XEUtils.set(row, field, newValue);
2265
+ XEUtils.set(oRow, field, newValue);
2262
2266
  }
2263
2267
  else {
2264
- if (record) {
2265
- tableSourceData[rowIndex] = record;
2266
- XEUtils.clear(row, undefined);
2267
- Object.assign(row, tablePrivateMethods.defineField(Object.assign({}, record)));
2268
- tablePrivateMethods.cacheRowMap(true);
2269
- }
2270
- else {
2271
- XEUtils.destructuring(oRow, XEUtils.clone(row, true));
2272
- }
2268
+ var newRecord = XEUtils.clone(__assign({}, record), true);
2269
+ XEUtils.destructuring(oRow, Object.assign(row, newRecord));
2273
2270
  }
2274
2271
  }
2275
2272
  reactData.tableData = tableData.slice(0);
@@ -2289,8 +2286,8 @@ export default defineComponent({
2289
2286
  var tableSourceData = internalData.tableSourceData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
2290
2287
  var treeOpts = computeTreeOpts.value;
2291
2288
  var children = treeOpts.children;
2292
- var rest = fullAllDataRowIdData[getRowid($xetable, row)];
2293
- var parentLevel = rest ? rest.level : 0;
2289
+ var parentRest = fullAllDataRowIdData[getRowid($xetable, row)];
2290
+ var parentLevel = parentRest ? parentRest.level : 0;
2294
2291
  return tableMethods.createData(childRecords).then(function (rows) {
2295
2292
  if (keepSource) {
2296
2293
  var rowid_1 = getRowid($xetable, row);
@@ -3124,11 +3121,12 @@ export default defineComponent({
3124
3121
  * @param {Row} row 行对象
3125
3122
  */
3126
3123
  setCurrentRow: function (row) {
3124
+ var rowOpts = computeRowOpts.value;
3127
3125
  var el = refElem.value;
3128
3126
  tableMethods.clearCurrentRow();
3129
3127
  tableMethods.clearCurrentColumn();
3130
3128
  reactData.currentRow = row;
3131
- if (props.highlightCurrentRow) {
3129
+ if (rowOpts.isCurrent || props.highlightCurrentRow) {
3132
3130
  if (el) {
3133
3131
  XEUtils.arrayEach(el.querySelectorAll("[rowid=\"" + getRowid($xetable, row) + "\"]"), function (elem) { return addClass(elem, 'row--current'); });
3134
3132
  }
@@ -3174,7 +3172,8 @@ export default defineComponent({
3174
3172
  * 用于当前行,获取当前行的数据
3175
3173
  */
3176
3174
  getCurrentRecord: function () {
3177
- return props.highlightCurrentRow ? reactData.currentRow : null;
3175
+ var rowOpts = computeRowOpts.value;
3176
+ return rowOpts.isCurrent || props.highlightCurrentRow ? reactData.currentRow : null;
3178
3177
  },
3179
3178
  /**
3180
3179
  * 用于单选行,获取当已选中的数据
@@ -3209,7 +3208,8 @@ export default defineComponent({
3209
3208
  return null;
3210
3209
  },
3211
3210
  getCurrentColumn: function () {
3212
- return props.highlightCurrentColumn ? reactData.currentColumn : null;
3211
+ var columnOpts = computeColumnOpts.value;
3212
+ return columnOpts.isCurrent || props.highlightCurrentColumn ? reactData.currentColumn : null;
3213
3213
  },
3214
3214
  /**
3215
3215
  * 用于当前列,设置某列行为高亮状态
@@ -4012,6 +4012,7 @@ export default defineComponent({
4012
4012
  var editOpts = computeEditOpts.value;
4013
4013
  var treeOpts = computeTreeOpts.value;
4014
4014
  var menuList = computeMenuList.value;
4015
+ var rowOpts = computeRowOpts.value;
4015
4016
  var selected = editStore.selected, actived = editStore.actived;
4016
4017
  var keyCode = evnt.keyCode;
4017
4018
  var isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE);
@@ -4092,7 +4093,7 @@ export default defineComponent({
4092
4093
  internalData._keyCtx = false;
4093
4094
  }, 1000);
4094
4095
  }
4095
- else if (isEnter && !isAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && highlightCurrentRow && currentRow))) {
4096
+ else if (isEnter && !isAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow))) {
4096
4097
  // 退出选中
4097
4098
  if (hasCtrlKey) {
4098
4099
  // 如果是激活编辑状态,则取消编辑
@@ -4126,7 +4127,7 @@ export default defineComponent({
4126
4127
  }
4127
4128
  }
4128
4129
  }
4129
- else if (treeConfig && highlightCurrentRow && currentRow) {
4130
+ else if (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
4130
4131
  // 如果是树形表格当前行回车移动到子节点
4131
4132
  var childrens = currentRow[treeOpts.children];
4132
4133
  if (childrens && childrens.length) {
@@ -4151,7 +4152,7 @@ export default defineComponent({
4151
4152
  if (selected.row && selected.column) {
4152
4153
  $xetable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
4153
4154
  }
4154
- else if ((isUpArrow || isDwArrow) && highlightCurrentRow) {
4155
+ else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
4155
4156
  // 当前行按键上下移动
4156
4157
  $xetable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
4157
4158
  }
@@ -4166,7 +4167,7 @@ export default defineComponent({
4166
4167
  $xetable.moveTabSelected(actived.args, hasShiftKey, evnt);
4167
4168
  }
4168
4169
  }
4169
- else if (keyboardConfig && isEnableConf(editConfig) && (isDel || (treeConfig && highlightCurrentRow && currentRow ? isBack && keyboardOpts.isArrow : isBack))) {
4170
+ else if (keyboardConfig && isEnableConf(editConfig) && (isDel || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow ? isBack && keyboardOpts.isArrow : isBack))) {
4170
4171
  if (!isEditStatus) {
4171
4172
  var delMethod = keyboardOpts.delMethod, backMethod = keyboardOpts.backMethod;
4172
4173
  // 如果是删除键
@@ -4202,7 +4203,7 @@ export default defineComponent({
4202
4203
  tableMethods.updateFooter();
4203
4204
  }
4204
4205
  }
4205
- else if (isBack && keyboardOpts.isArrow && treeConfig && highlightCurrentRow && currentRow) {
4206
+ else if (isBack && keyboardOpts.isArrow && treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
4206
4207
  // 如果树形表格回退键关闭当前行返回父节点
4207
4208
  var parentRow_1 = XEUtils.findTree(internalData.afterFullData, function (item) { return item === currentRow; }, treeOpts).parent;
4208
4209
  if (parentRow_1) {
@@ -4843,6 +4844,7 @@ export default defineComponent({
4843
4844
  triggerHeaderCellClickEvent: function (evnt, params) {
4844
4845
  var _lastResizeTime = internalData._lastResizeTime;
4845
4846
  var sortOpts = computeSortOpts.value;
4847
+ var columnOpts = computeColumnOpts.value;
4846
4848
  var column = params.column;
4847
4849
  var cell = evnt.currentTarget;
4848
4850
  var triggerResizable = _lastResizeTime && _lastResizeTime > Date.now() - 300;
@@ -4852,7 +4854,7 @@ export default defineComponent({
4852
4854
  tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
4853
4855
  }
4854
4856
  tableMethods.dispatchEvent('header-cell-click', Object.assign({ triggerResizable: triggerResizable, triggerSort: triggerSort, triggerFilter: triggerFilter, cell: cell }, params), evnt);
4855
- if (props.highlightCurrentColumn) {
4857
+ if (columnOpts.isCurrent || props.highlightCurrentColumn) {
4856
4858
  tableMethods.setCurrentColumn(column);
4857
4859
  }
4858
4860
  },
@@ -4872,6 +4874,7 @@ export default defineComponent({
4872
4874
  var treeOpts = computeTreeOpts.value;
4873
4875
  var radioOpts = computeRadioOpts.value;
4874
4876
  var checkboxOpts = computeCheckboxOpts.value;
4877
+ var rowOpts = computeRowOpts.value;
4875
4878
  var actived = editStore.actived;
4876
4879
  var row = params.row, column = params.column;
4877
4880
  var type = column.type, treeNode = column.treeNode;
@@ -4898,7 +4901,7 @@ export default defineComponent({
4898
4901
  if (!triggerTreeNode) {
4899
4902
  if (!triggerExpandNode) {
4900
4903
  // 如果是高亮行
4901
- if (highlightCurrentRow) {
4904
+ if (rowOpts.isCurrent || highlightCurrentRow) {
4902
4905
  if (!triggerCheckbox && !triggerRadio) {
4903
4906
  tablePrivateMethods.triggerCurrentRowEvent(evnt, params);
4904
4907
  }
@@ -5212,6 +5215,7 @@ export default defineComponent({
5212
5215
  tablePrivateMethods.handleTableData();
5213
5216
  tablePrivateMethods.updateScrollYSpace();
5214
5217
  },
5218
+ updateVirtualTreeData: updateVirtualTreeData,
5215
5219
  /**
5216
5220
  * 处理固定列的显示状态
5217
5221
  */
@@ -5679,6 +5683,8 @@ export default defineComponent({
5679
5683
  var leftList = columnStore.leftList, rightList = columnStore.rightList;
5680
5684
  var tooltipOpts = computeTooltipOpts.value;
5681
5685
  var treeOpts = computeTreeOpts.value;
5686
+ var rowOpts = computeRowOpts.value;
5687
+ var columnOpts = computeColumnOpts.value;
5682
5688
  var vSize = computeSize.value;
5683
5689
  var tableBorder = computeTableBorder.value;
5684
5690
  var mouseOpts = computeMouseOpts.value;
@@ -5693,8 +5699,8 @@ export default defineComponent({
5693
5699
  _a['cell--highlight'] = highlightCell,
5694
5700
  _a['cell--selected'] = mouseConfig && mouseOpts.selected,
5695
5701
  _a['cell--area'] = mouseConfig && mouseOpts.area,
5696
- _a['row--highlight'] = highlightHoverRow,
5697
- _a['column--highlight'] = highlightHoverColumn,
5702
+ _a['row--highlight'] = rowOpts.isHover || highlightHoverRow,
5703
+ _a['column--highlight'] = columnOpts.isHover || highlightHoverColumn,
5698
5704
  _a['is--header'] = showHeader,
5699
5705
  _a['is--footer'] = showFooter,
5700
5706
  _a['is--group'] = isGroup,
@@ -62,8 +62,8 @@ var GlobalConfig = {
62
62
  showIcon: true
63
63
  },
64
64
  treeConfig: {
65
- rowtKey: 'id',
66
- parentKey: 'parentId',
65
+ rowField: 'id',
66
+ parentField: 'parentId',
67
67
  children: 'children',
68
68
  hasChild: 'hasChild',
69
69
  indent: 20,