vxe-table 3.3.16 → 3.4.2
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.
- package/helper/vetur/attributes.json +12 -200
- package/helper/vetur/tags.json +3 -65
- package/lib/edit/src/mixin.js +2 -2
- package/lib/edit/src/mixin.min.js +1 -1
- package/lib/export/src/mixin.js +44 -1
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/form/src/form.js +21 -6
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/render.js +4 -4
- package/lib/form/src/render.min.js +1 -1
- package/lib/grid/src/grid.js +56 -0
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/header/src/header.js +3 -2
- package/lib/header/src/header.min.js +1 -1
- package/lib/index.umd.js +446 -1065
- package/lib/index.umd.min.js +1 -1
- package/lib/select/src/select.js +5 -5
- package/lib/select/src/select.min.js +1 -1
- package/lib/table/src/body.js +15 -10
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +92 -35
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/methods.js +267 -147
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +12 -2
- package/lib/table/src/table.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +3 -3
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/lib/validator/src/mixin.js +9 -4
- package/lib/validator/src/mixin.min.js +1 -1
- package/package.json +1 -2
- package/packages/edit/src/mixin.js +2 -2
- package/packages/export/src/mixin.js +38 -1
- package/packages/form/src/form.js +10 -6
- package/packages/form/src/render.js +4 -4
- package/packages/grid/src/grid.js +48 -0
- package/packages/header/src/header.js +2 -2
- package/packages/select/src/select.js +5 -5
- package/packages/table/src/body.js +15 -10
- package/packages/table/src/cell.js +74 -41
- package/packages/table/src/methods.js +173 -73
- package/packages/table/src/table.js +11 -2
- package/packages/v-x-e-table/src/conf.js +3 -3
- package/packages/validator/src/mixin.js +8 -4
- package/types/table.d.ts +1 -1
package/lib/table/src/methods.js
CHANGED
|
@@ -445,6 +445,15 @@ var Methods = {
|
|
|
445
445
|
this.tableData = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
|
|
446
446
|
return this.$nextTick();
|
|
447
447
|
},
|
|
448
|
+
updateScrollYStatus: function updateScrollYStatus(fullData) {
|
|
449
|
+
var treeConfig = this.treeConfig,
|
|
450
|
+
treeOpts = this.treeOpts,
|
|
451
|
+
sYOpts = this.sYOpts;
|
|
452
|
+
var transform = treeOpts.transform;
|
|
453
|
+
var scrollYLoad = (transform || !treeConfig) && !!sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt < fullData.length;
|
|
454
|
+
this.scrollYLoad = scrollYLoad;
|
|
455
|
+
return scrollYLoad;
|
|
456
|
+
},
|
|
448
457
|
|
|
449
458
|
/**
|
|
450
459
|
* 加载表格数据
|
|
@@ -457,54 +466,70 @@ var Methods = {
|
|
|
457
466
|
treeConfig = this.treeConfig,
|
|
458
467
|
treeOpts = this.treeOpts,
|
|
459
468
|
editStore = this.editStore,
|
|
460
|
-
sYOpts = this.sYOpts,
|
|
461
469
|
scrollYStore = this.scrollYStore,
|
|
462
470
|
scrollXStore = this.scrollXStore,
|
|
463
471
|
lastScrollLeft = this.lastScrollLeft,
|
|
464
472
|
lastScrollTop = this.lastScrollTop,
|
|
465
473
|
oldScrollYLoad = this.scrollYLoad;
|
|
474
|
+
var treeData = [];
|
|
475
|
+
var fullData = datas ? datas.slice(0) : [];
|
|
466
476
|
|
|
467
|
-
if (treeConfig
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
477
|
+
if (treeConfig) {
|
|
478
|
+
// 树结构自动转换
|
|
479
|
+
if (treeOpts.transform) {
|
|
480
|
+
if (process.env.NODE_ENV === 'development') {
|
|
481
|
+
if (!treeOpts.rowField) {
|
|
482
|
+
_tools.UtilTools.error('vxe.error.reqProp', ['table.tree-config.rowField']);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
if (!treeOpts.parentField) {
|
|
486
|
+
_tools.UtilTools.error('vxe.error.reqProp', ['table.tree-config.parentField']);
|
|
487
|
+
}
|
|
472
488
|
|
|
473
|
-
|
|
474
|
-
|
|
489
|
+
if (!treeOpts.children) {
|
|
490
|
+
_tools.UtilTools.error('vxe.error.reqProp', ['tree-config.children']);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
fullData.forEach(function (row) {
|
|
494
|
+
if (row[treeOpts.children] && row[treeOpts.children].length) {
|
|
495
|
+
_tools.UtilTools.warn('vxe.error.errConflicts', ['tree-config.transform', "row.".concat(treeOpts.children)]);
|
|
496
|
+
}
|
|
497
|
+
});
|
|
475
498
|
}
|
|
476
|
-
}
|
|
477
499
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
500
|
+
treeData = _xeUtils.default.toArrayTree(fullData, {
|
|
501
|
+
key: treeOpts.rowField,
|
|
502
|
+
parentKey: treeOpts.parentField,
|
|
503
|
+
children: treeOpts.children
|
|
504
|
+
});
|
|
505
|
+
fullData = treeData.slice(0);
|
|
506
|
+
} else {
|
|
507
|
+
treeData = fullData.slice(0);
|
|
508
|
+
}
|
|
483
509
|
}
|
|
484
510
|
|
|
485
|
-
var tableFullData = datas ? datas.slice(0) : [];
|
|
486
|
-
var scrollYLoad = !treeConfig && sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
|
|
487
511
|
scrollYStore.startIndex = 0;
|
|
488
512
|
scrollYStore.endIndex = 1;
|
|
489
513
|
scrollXStore.startIndex = 0;
|
|
490
514
|
scrollXStore.endIndex = 1;
|
|
491
515
|
editStore.insertList = [];
|
|
492
|
-
editStore.removeList = [];
|
|
516
|
+
editStore.removeList = [];
|
|
517
|
+
var sYLoad = this.updateScrollYStatus(fullData);
|
|
518
|
+
this.scrollYLoad = sYLoad; // 全量数据
|
|
493
519
|
|
|
494
|
-
this.tableFullData =
|
|
520
|
+
this.tableFullData = fullData;
|
|
521
|
+
this.treeFullData = treeData; // 缓存数据
|
|
495
522
|
|
|
496
|
-
this.
|
|
523
|
+
this.cacheRowMap(true); // 原始数据
|
|
497
524
|
|
|
498
|
-
this.tableSynchData = datas;
|
|
525
|
+
this.tableSynchData = datas; // 克隆原数据,用于显示编辑状态,与编辑值做对比
|
|
499
526
|
|
|
500
527
|
if (keepSource) {
|
|
501
|
-
this.tableSourceData = _xeUtils.default.clone(
|
|
528
|
+
this.tableSourceData = _xeUtils.default.clone(fullData, true);
|
|
502
529
|
}
|
|
503
530
|
|
|
504
|
-
this.scrollYLoad = scrollYLoad;
|
|
505
|
-
|
|
506
531
|
if (process.env.NODE_ENV === 'development') {
|
|
507
|
-
if (
|
|
532
|
+
if (sYLoad) {
|
|
508
533
|
if (!(this.height || this.maxHeight)) {
|
|
509
534
|
_tools.UtilTools.error('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
|
|
510
535
|
}
|
|
@@ -535,8 +560,8 @@ var Methods = {
|
|
|
535
560
|
}).then(function () {
|
|
536
561
|
_this2.computeScrollLoad();
|
|
537
562
|
}).then(function () {
|
|
538
|
-
//
|
|
539
|
-
if (
|
|
563
|
+
// 是否启用了虚拟滚动
|
|
564
|
+
if (sYLoad) {
|
|
540
565
|
scrollYStore.endIndex = scrollYStore.visibleSize;
|
|
541
566
|
}
|
|
542
567
|
|
|
@@ -549,7 +574,7 @@ var Methods = {
|
|
|
549
574
|
return _this2.recalculate();
|
|
550
575
|
}).then(function () {
|
|
551
576
|
// 是否变更虚拟滚动
|
|
552
|
-
if (oldScrollYLoad ===
|
|
577
|
+
if (oldScrollYLoad === sYLoad) {
|
|
553
578
|
(0, _util.restoreScrollLocation)(_this2, lastScrollLeft, lastScrollTop).then(resolve);
|
|
554
579
|
} else {
|
|
555
580
|
setTimeout(function () {
|
|
@@ -635,7 +660,7 @@ var Methods = {
|
|
|
635
660
|
_xeUtils.default.clear(row, undefined);
|
|
636
661
|
|
|
637
662
|
Object.assign(row, this.defineField(Object.assign({}, record)));
|
|
638
|
-
this.
|
|
663
|
+
this.cacheRowMap(true);
|
|
639
664
|
} else {
|
|
640
665
|
_xeUtils.default.destructuring(oRow, _xeUtils.default.clone(row, true));
|
|
641
666
|
}
|
|
@@ -720,7 +745,7 @@ var Methods = {
|
|
|
720
745
|
* 更新数据行的 Map
|
|
721
746
|
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
722
747
|
*/
|
|
723
|
-
|
|
748
|
+
cacheRowMap: function cacheRowMap(source) {
|
|
724
749
|
var _this8 = this;
|
|
725
750
|
|
|
726
751
|
var treeConfig = this.treeConfig,
|
|
@@ -733,7 +758,7 @@ var Methods = {
|
|
|
733
758
|
var rowkey = getRowkey(this);
|
|
734
759
|
var isLazy = treeConfig && treeOpts.lazy;
|
|
735
760
|
|
|
736
|
-
var handleCache = function handleCache(row, index, items, path, parent) {
|
|
761
|
+
var handleCache = function handleCache(row, index, items, path, parent, nodes) {
|
|
737
762
|
var rowid = getRowid(_this8, row);
|
|
738
763
|
|
|
739
764
|
if ((0, _utils.eqEmptyValue)(rowid)) {
|
|
@@ -751,7 +776,8 @@ var Methods = {
|
|
|
751
776
|
rowid: rowid,
|
|
752
777
|
index: treeConfig && parent ? -1 : index,
|
|
753
778
|
items: items,
|
|
754
|
-
parent: parent
|
|
779
|
+
parent: parent,
|
|
780
|
+
level: nodes ? nodes.length - 1 : 0
|
|
755
781
|
};
|
|
756
782
|
|
|
757
783
|
if (source) {
|
|
@@ -777,19 +803,20 @@ var Methods = {
|
|
|
777
803
|
tableFullData.forEach(handleCache);
|
|
778
804
|
}
|
|
779
805
|
},
|
|
780
|
-
|
|
806
|
+
loadTreeChildren: function loadTreeChildren(row, childRecords) {
|
|
781
807
|
var _this9 = this;
|
|
782
808
|
|
|
809
|
+
var keepSource = this.keepSource,
|
|
810
|
+
tableSourceData = this.tableSourceData,
|
|
811
|
+
treeOpts = this.treeOpts,
|
|
812
|
+
fullDataRowIdData = this.fullDataRowIdData,
|
|
813
|
+
fullDataRowMap = this.fullDataRowMap,
|
|
814
|
+
fullAllDataRowMap = this.fullAllDataRowMap,
|
|
815
|
+
fullAllDataRowIdData = this.fullAllDataRowIdData;
|
|
816
|
+
var children = treeOpts.children;
|
|
817
|
+
var rest = fullAllDataRowIdData[getRowid(this, row)];
|
|
818
|
+
var parentLevel = rest ? rest.level : 0;
|
|
783
819
|
return this.createData(childRecords).then(function (rows) {
|
|
784
|
-
var keepSource = _this9.keepSource,
|
|
785
|
-
tableSourceData = _this9.tableSourceData,
|
|
786
|
-
treeOpts = _this9.treeOpts,
|
|
787
|
-
fullDataRowIdData = _this9.fullDataRowIdData,
|
|
788
|
-
fullDataRowMap = _this9.fullDataRowMap,
|
|
789
|
-
fullAllDataRowMap = _this9.fullAllDataRowMap,
|
|
790
|
-
fullAllDataRowIdData = _this9.fullAllDataRowIdData;
|
|
791
|
-
var children = treeOpts.children;
|
|
792
|
-
|
|
793
820
|
if (keepSource) {
|
|
794
821
|
var rowid = getRowid(_this9, row);
|
|
795
822
|
|
|
@@ -802,14 +829,15 @@ var Methods = {
|
|
|
802
829
|
}
|
|
803
830
|
}
|
|
804
831
|
|
|
805
|
-
_xeUtils.default.eachTree(rows, function (childRow, index, items, path, parent) {
|
|
832
|
+
_xeUtils.default.eachTree(rows, function (childRow, index, items, path, parent, nodes) {
|
|
806
833
|
var rowid = getRowid(_this9, childRow);
|
|
807
834
|
var rest = {
|
|
808
835
|
row: childRow,
|
|
809
836
|
rowid: rowid,
|
|
810
837
|
index: -1,
|
|
811
838
|
items: items,
|
|
812
|
-
parent: parent
|
|
839
|
+
parent: parent,
|
|
840
|
+
level: parentLevel + nodes.length
|
|
813
841
|
};
|
|
814
842
|
fullDataRowIdData[rowid] = rest;
|
|
815
843
|
fullDataRowMap.set(childRow, rest);
|
|
@@ -3220,12 +3248,12 @@ var Methods = {
|
|
|
3220
3248
|
var column = params.column;
|
|
3221
3249
|
var titleHelp = column.titleHelp;
|
|
3222
3250
|
|
|
3223
|
-
if (titleHelp.message) {
|
|
3251
|
+
if (titleHelp.content || titleHelp.message) {
|
|
3224
3252
|
var $refs = this.$refs,
|
|
3225
3253
|
tooltipStore = this.tooltipStore;
|
|
3226
3254
|
var tooltip = $refs.tooltip;
|
|
3227
3255
|
|
|
3228
|
-
var content = _tools.UtilTools.getFuncText(titleHelp.message);
|
|
3256
|
+
var content = _tools.UtilTools.getFuncText(titleHelp.content || titleHelp.message);
|
|
3229
3257
|
|
|
3230
3258
|
this.handleTargetEnterEvent();
|
|
3231
3259
|
tooltipStore.visible = true;
|
|
@@ -4784,10 +4812,10 @@ var Methods = {
|
|
|
4784
4812
|
},
|
|
4785
4813
|
|
|
4786
4814
|
/**
|
|
4787
|
-
*
|
|
4815
|
+
* 重新懒加载展开行,并展开内容
|
|
4788
4816
|
* @param {Row} row 行对象
|
|
4789
4817
|
*/
|
|
4790
|
-
|
|
4818
|
+
reloadRowExpand: function reloadRowExpand(row) {
|
|
4791
4819
|
var _this36 = this;
|
|
4792
4820
|
|
|
4793
4821
|
var expandOpts = this.expandOpts,
|
|
@@ -4802,6 +4830,14 @@ var Methods = {
|
|
|
4802
4830
|
|
|
4803
4831
|
return this.$nextTick();
|
|
4804
4832
|
},
|
|
4833
|
+
reloadExpandContent: function reloadExpandContent(row) {
|
|
4834
|
+
if (process.env.NODE_ENV === 'development') {
|
|
4835
|
+
_tools.UtilTools.warn('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
|
|
4836
|
+
} // 即将废弃
|
|
4837
|
+
|
|
4838
|
+
|
|
4839
|
+
return this.reloadRowExpand(row);
|
|
4840
|
+
},
|
|
4805
4841
|
|
|
4806
4842
|
/**
|
|
4807
4843
|
* 展开行事件
|
|
@@ -5069,25 +5105,40 @@ var Methods = {
|
|
|
5069
5105
|
},
|
|
5070
5106
|
|
|
5071
5107
|
/**
|
|
5072
|
-
*
|
|
5108
|
+
* 重新懒加载树节点,并展开该节点
|
|
5073
5109
|
* @param {Row} row 行对象
|
|
5074
5110
|
*/
|
|
5075
|
-
|
|
5111
|
+
reloadTreeExpand: function reloadTreeExpand(row) {
|
|
5076
5112
|
var _this40 = this;
|
|
5077
5113
|
|
|
5078
5114
|
var treeOpts = this.treeOpts,
|
|
5079
5115
|
treeLazyLoadeds = this.treeLazyLoadeds;
|
|
5080
|
-
var
|
|
5116
|
+
var transform = treeOpts.transform,
|
|
5117
|
+
lazy = treeOpts.lazy,
|
|
5081
5118
|
hasChild = treeOpts.hasChild;
|
|
5082
5119
|
|
|
5083
5120
|
if (lazy && row[hasChild] && treeLazyLoadeds.indexOf(row) === -1) {
|
|
5084
5121
|
this.clearTreeExpandLoaded(row).then(function () {
|
|
5085
5122
|
return _this40.handleAsyncTreeExpandChilds(row);
|
|
5123
|
+
}).then(function () {
|
|
5124
|
+
if (transform) {
|
|
5125
|
+
return _this40.updateVirtualTreeData();
|
|
5126
|
+
}
|
|
5127
|
+
}).then(function () {
|
|
5128
|
+
return _this40.recalculate();
|
|
5086
5129
|
});
|
|
5087
5130
|
}
|
|
5088
5131
|
|
|
5089
5132
|
return this.$nextTick();
|
|
5090
5133
|
},
|
|
5134
|
+
reloadTreeChilds: function reloadTreeChilds(row) {
|
|
5135
|
+
if (process.env.NODE_ENV === 'development') {
|
|
5136
|
+
_tools.UtilTools.warn('vxe.error.delFunc', ['reloadTreeChilds', 'reloadTreeExpand']);
|
|
5137
|
+
} // 即将废弃
|
|
5138
|
+
|
|
5139
|
+
|
|
5140
|
+
return this.reloadTreeExpand(row);
|
|
5141
|
+
},
|
|
5091
5142
|
|
|
5092
5143
|
/**
|
|
5093
5144
|
* 展开树节点事件
|
|
@@ -5181,7 +5232,7 @@ var Methods = {
|
|
|
5181
5232
|
}
|
|
5182
5233
|
|
|
5183
5234
|
if (childRecords) {
|
|
5184
|
-
_this41.
|
|
5235
|
+
_this41.loadTreeChildren(row, childRecords).then(function (childRows) {
|
|
5185
5236
|
if (childRows.length && treeExpandeds.indexOf(row) === -1) {
|
|
5186
5237
|
treeExpandeds.push(row);
|
|
5187
5238
|
} // 如果当前节点已选中,则展开后子节点也被选中
|
|
@@ -5221,13 +5272,12 @@ var Methods = {
|
|
|
5221
5272
|
},
|
|
5222
5273
|
|
|
5223
5274
|
/**
|
|
5224
|
-
*
|
|
5225
|
-
*
|
|
5226
|
-
*
|
|
5227
|
-
* @
|
|
5228
|
-
* @param {Boolean} expanded 是否展开
|
|
5275
|
+
* 默认,展开与收起树节点
|
|
5276
|
+
* @param rows
|
|
5277
|
+
* @param expanded
|
|
5278
|
+
* @returns
|
|
5229
5279
|
*/
|
|
5230
|
-
|
|
5280
|
+
handleBaseTreeExpand: function handleBaseTreeExpand(rows, expanded) {
|
|
5231
5281
|
var _this42 = this;
|
|
5232
5282
|
|
|
5233
5283
|
var fullAllDataRowMap = this.fullAllDataRowMap,
|
|
@@ -5245,65 +5295,125 @@ var Methods = {
|
|
|
5245
5295
|
var result = [];
|
|
5246
5296
|
var columnIndex = this.getColumnIndex(treeNodeColumn);
|
|
5247
5297
|
var $columnIndex = this.getVMColumnIndex(treeNodeColumn);
|
|
5298
|
+
var validRows = toggleMethod ? rows.filter(function (row) {
|
|
5299
|
+
return toggleMethod({
|
|
5300
|
+
expanded: expanded,
|
|
5301
|
+
column: treeNodeColumn,
|
|
5302
|
+
columnIndex: columnIndex,
|
|
5303
|
+
$columnIndex: $columnIndex,
|
|
5304
|
+
row: row
|
|
5305
|
+
});
|
|
5306
|
+
}) : rows;
|
|
5248
5307
|
|
|
5249
|
-
if (
|
|
5250
|
-
|
|
5251
|
-
rows = [rows];
|
|
5252
|
-
}
|
|
5308
|
+
if (accordion) {
|
|
5309
|
+
validRows = validRows.length ? [validRows[validRows.length - 1]] : []; // 同一级只能展开一个
|
|
5253
5310
|
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
expanded: expanded,
|
|
5258
|
-
column: treeNodeColumn,
|
|
5259
|
-
columnIndex: columnIndex,
|
|
5260
|
-
$columnIndex: $columnIndex,
|
|
5261
|
-
row: row
|
|
5262
|
-
});
|
|
5263
|
-
}) : rows;
|
|
5311
|
+
var matchObj = _xeUtils.default.findTree(tableFullData, function (item) {
|
|
5312
|
+
return item === validRows[0];
|
|
5313
|
+
}, treeOpts);
|
|
5264
5314
|
|
|
5265
|
-
|
|
5266
|
-
|
|
5315
|
+
if (matchObj) {
|
|
5316
|
+
_xeUtils.default.remove(treeExpandeds, function (item) {
|
|
5317
|
+
return matchObj.items.indexOf(item) > -1;
|
|
5318
|
+
});
|
|
5319
|
+
}
|
|
5320
|
+
}
|
|
5267
5321
|
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5322
|
+
if (expanded) {
|
|
5323
|
+
validRows.forEach(function (row) {
|
|
5324
|
+
if (treeExpandeds.indexOf(row) === -1) {
|
|
5325
|
+
var rest = fullAllDataRowMap.get(row);
|
|
5326
|
+
var isLoad = lazy && row[hasChild] && !rest.treeLoaded && treeLazyLoadeds.indexOf(row) === -1; // 是否使用懒加载
|
|
5271
5327
|
|
|
5272
|
-
if (
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5328
|
+
if (isLoad) {
|
|
5329
|
+
result.push(_this42.handleAsyncTreeExpandChilds(row));
|
|
5330
|
+
} else {
|
|
5331
|
+
if (row[children] && row[children].length) {
|
|
5332
|
+
treeExpandeds.push(row);
|
|
5333
|
+
}
|
|
5276
5334
|
}
|
|
5277
5335
|
}
|
|
5336
|
+
});
|
|
5337
|
+
} else {
|
|
5338
|
+
_xeUtils.default.remove(treeExpandeds, function (row) {
|
|
5339
|
+
return validRows.indexOf(row) > -1;
|
|
5340
|
+
});
|
|
5341
|
+
}
|
|
5278
5342
|
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5343
|
+
if (reserve) {
|
|
5344
|
+
validRows.forEach(function (row) {
|
|
5345
|
+
return _this42.handleTreeExpandReserve(row, expanded);
|
|
5346
|
+
});
|
|
5347
|
+
}
|
|
5284
5348
|
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
treeExpandeds.push(row);
|
|
5290
|
-
}
|
|
5291
|
-
}
|
|
5292
|
-
}
|
|
5293
|
-
});
|
|
5294
|
-
} else {
|
|
5295
|
-
_xeUtils.default.remove(treeExpandeds, function (row) {
|
|
5296
|
-
return validRows.indexOf(row) > -1;
|
|
5297
|
-
});
|
|
5298
|
-
}
|
|
5349
|
+
return Promise.all(result).then(this.recalculate);
|
|
5350
|
+
},
|
|
5351
|
+
updateVirtualTreeData: function updateVirtualTreeData() {
|
|
5352
|
+
var _this43 = this;
|
|
5299
5353
|
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5354
|
+
var oldScrollYLoad = this.scrollYLoad,
|
|
5355
|
+
treeExpandeds = this.treeExpandeds,
|
|
5356
|
+
treeOpts = this.treeOpts,
|
|
5357
|
+
treeFullData = this.treeFullData;
|
|
5358
|
+
var fullData = [];
|
|
5359
|
+
|
|
5360
|
+
_xeUtils.default.eachTree(treeFullData, function (row, index, items, path, parent) {
|
|
5361
|
+
if (!parent || treeExpandeds.indexOf(parent) > -1) {
|
|
5362
|
+
fullData.push(row);
|
|
5363
|
+
}
|
|
5364
|
+
}, treeOpts);
|
|
5365
|
+
|
|
5366
|
+
var scrollYLoad = this.updateScrollYStatus(fullData);
|
|
5367
|
+
this.tableFullData = scrollYLoad ? fullData : treeFullData;
|
|
5368
|
+
|
|
5369
|
+
if (scrollYLoad || oldScrollYLoad !== scrollYLoad) {
|
|
5370
|
+
return this.handleTableData(true).then(function () {
|
|
5371
|
+
return _this43.recalculate();
|
|
5372
|
+
});
|
|
5373
|
+
}
|
|
5374
|
+
|
|
5375
|
+
return this.$nextTick();
|
|
5376
|
+
},
|
|
5377
|
+
|
|
5378
|
+
/**
|
|
5379
|
+
* 虚拟树的展开与收起
|
|
5380
|
+
* @param rows
|
|
5381
|
+
* @param expanded
|
|
5382
|
+
* @returns
|
|
5383
|
+
*/
|
|
5384
|
+
handleVirtualTreeExpand: function handleVirtualTreeExpand(rows, expanded) {
|
|
5385
|
+
var _this44 = this;
|
|
5386
|
+
|
|
5387
|
+
return this.handleBaseTreeExpand(rows, expanded).then(function () {
|
|
5388
|
+
return _this44.updateVirtualTreeData();
|
|
5389
|
+
}).then(function () {
|
|
5390
|
+
return _this44.recalculate();
|
|
5391
|
+
});
|
|
5392
|
+
},
|
|
5393
|
+
|
|
5394
|
+
/**
|
|
5395
|
+
* 设置展开树形节点,二个参数设置这一行展开与否
|
|
5396
|
+
* 支持单行
|
|
5397
|
+
* 支持多行
|
|
5398
|
+
* @param {Array/Row} rows 行数据
|
|
5399
|
+
* @param {Boolean} expanded 是否展开
|
|
5400
|
+
*/
|
|
5401
|
+
setTreeExpand: function setTreeExpand(rows, expanded) {
|
|
5402
|
+
var treeOpts = this.treeOpts;
|
|
5403
|
+
var transform = treeOpts.transform;
|
|
5305
5404
|
|
|
5306
|
-
|
|
5405
|
+
if (rows) {
|
|
5406
|
+
if (!_xeUtils.default.isArray(rows)) {
|
|
5407
|
+
rows = [rows];
|
|
5408
|
+
}
|
|
5409
|
+
|
|
5410
|
+
if (rows.length) {
|
|
5411
|
+
// 如果为虚拟树
|
|
5412
|
+
if (transform) {
|
|
5413
|
+
return this.handleVirtualTreeExpand(rows, expanded);
|
|
5414
|
+
} else {
|
|
5415
|
+
return this.handleBaseTreeExpand(rows, expanded);
|
|
5416
|
+
}
|
|
5307
5417
|
}
|
|
5308
5418
|
}
|
|
5309
5419
|
|
|
@@ -5322,7 +5432,7 @@ var Methods = {
|
|
|
5322
5432
|
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
5323
5433
|
*/
|
|
5324
5434
|
clearTreeExpand: function clearTreeExpand() {
|
|
5325
|
-
var
|
|
5435
|
+
var _this45 = this;
|
|
5326
5436
|
|
|
5327
5437
|
var treeOpts = this.treeOpts,
|
|
5328
5438
|
treeExpandeds = this.treeExpandeds,
|
|
@@ -5333,13 +5443,13 @@ var Methods = {
|
|
|
5333
5443
|
|
|
5334
5444
|
if (reserve) {
|
|
5335
5445
|
_xeUtils.default.eachTree(tableFullData, function (row) {
|
|
5336
|
-
return
|
|
5446
|
+
return _this45.handleTreeExpandReserve(row, false);
|
|
5337
5447
|
}, treeOpts);
|
|
5338
5448
|
}
|
|
5339
5449
|
|
|
5340
|
-
return this
|
|
5450
|
+
return this.updateVirtualTreeData().then(function () {
|
|
5341
5451
|
if (isExists) {
|
|
5342
|
-
|
|
5452
|
+
_this45.recalculate();
|
|
5343
5453
|
}
|
|
5344
5454
|
});
|
|
5345
5455
|
},
|
|
@@ -5469,18 +5579,18 @@ var Methods = {
|
|
|
5469
5579
|
},
|
|
5470
5580
|
// 计算可视渲染相关数据
|
|
5471
5581
|
computeScrollLoad: function computeScrollLoad() {
|
|
5472
|
-
var
|
|
5582
|
+
var _this46 = this;
|
|
5473
5583
|
|
|
5474
5584
|
return this.$nextTick().then(function () {
|
|
5475
|
-
var sYOpts =
|
|
5476
|
-
sXOpts =
|
|
5477
|
-
scrollXLoad =
|
|
5478
|
-
scrollYLoad =
|
|
5479
|
-
scrollXStore =
|
|
5480
|
-
scrollYStore =
|
|
5585
|
+
var sYOpts = _this46.sYOpts,
|
|
5586
|
+
sXOpts = _this46.sXOpts,
|
|
5587
|
+
scrollXLoad = _this46.scrollXLoad,
|
|
5588
|
+
scrollYLoad = _this46.scrollYLoad,
|
|
5589
|
+
scrollXStore = _this46.scrollXStore,
|
|
5590
|
+
scrollYStore = _this46.scrollYStore; // 计算 X 逻辑
|
|
5481
5591
|
|
|
5482
5592
|
if (scrollXLoad) {
|
|
5483
|
-
var _computeVirtualX3 = computeVirtualX(
|
|
5593
|
+
var _computeVirtualX3 = computeVirtualX(_this46),
|
|
5484
5594
|
visibleXSize = _computeVirtualX3.visibleSize;
|
|
5485
5595
|
|
|
5486
5596
|
var offsetXSize = sXOpts.oSize ? _xeUtils.default.toNumber(sXOpts.oSize) : _dom.browse.msie ? 10 : _dom.browse.edge ? 5 : 0;
|
|
@@ -5488,13 +5598,13 @@ var Methods = {
|
|
|
5488
5598
|
scrollXStore.visibleSize = visibleXSize;
|
|
5489
5599
|
scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
|
|
5490
5600
|
|
|
5491
|
-
|
|
5601
|
+
_this46.updateScrollXData();
|
|
5492
5602
|
} else {
|
|
5493
|
-
|
|
5603
|
+
_this46.updateScrollXSpace();
|
|
5494
5604
|
} // 计算 Y 逻辑
|
|
5495
5605
|
|
|
5496
5606
|
|
|
5497
|
-
var _computeVirtualY = computeVirtualY(
|
|
5607
|
+
var _computeVirtualY = computeVirtualY(_this46),
|
|
5498
5608
|
rowHeight = _computeVirtualY.rowHeight,
|
|
5499
5609
|
visibleYSize = _computeVirtualY.visibleSize;
|
|
5500
5610
|
|
|
@@ -5506,14 +5616,14 @@ var Methods = {
|
|
|
5506
5616
|
scrollYStore.visibleSize = visibleYSize;
|
|
5507
5617
|
scrollYStore.endIndex = Math.max(scrollYStore.startIndex + visibleYSize + offsetYSize, scrollYStore.endIndex);
|
|
5508
5618
|
|
|
5509
|
-
|
|
5619
|
+
_this46.updateScrollYData();
|
|
5510
5620
|
} else {
|
|
5511
|
-
|
|
5621
|
+
_this46.updateScrollYSpace();
|
|
5512
5622
|
}
|
|
5513
5623
|
|
|
5514
|
-
|
|
5624
|
+
_this46.rowHeight = rowHeight;
|
|
5515
5625
|
|
|
5516
|
-
|
|
5626
|
+
_this46.$nextTick(_this46.updateStyle);
|
|
5517
5627
|
});
|
|
5518
5628
|
},
|
|
5519
5629
|
handleTableColumn: function handleTableColumn() {
|
|
@@ -5627,7 +5737,7 @@ var Methods = {
|
|
|
5627
5737
|
* @param {Number} scrollTop 上距离
|
|
5628
5738
|
*/
|
|
5629
5739
|
scrollTo: function scrollTo(scrollLeft, scrollTop) {
|
|
5630
|
-
var
|
|
5740
|
+
var _this47 = this;
|
|
5631
5741
|
|
|
5632
5742
|
var $refs = this.$refs;
|
|
5633
5743
|
var tableBody = $refs.tableBody,
|
|
@@ -5648,7 +5758,7 @@ var Methods = {
|
|
|
5648
5758
|
if (this.scrollXLoad || this.scrollYLoad) {
|
|
5649
5759
|
return new Promise(function (resolve) {
|
|
5650
5760
|
return setTimeout(function () {
|
|
5651
|
-
return resolve(
|
|
5761
|
+
return resolve(_this47.$nextTick());
|
|
5652
5762
|
}, 50);
|
|
5653
5763
|
});
|
|
5654
5764
|
}
|
|
@@ -5699,7 +5809,7 @@ var Methods = {
|
|
|
5699
5809
|
* @param {Row} row 行对象
|
|
5700
5810
|
*/
|
|
5701
5811
|
scrollToTreeRow: function scrollToTreeRow(row) {
|
|
5702
|
-
var
|
|
5812
|
+
var _this48 = this;
|
|
5703
5813
|
|
|
5704
5814
|
var tableFullData = this.tableFullData,
|
|
5705
5815
|
treeConfig = this.treeConfig,
|
|
@@ -5714,15 +5824,15 @@ var Methods = {
|
|
|
5714
5824
|
if (matchObj) {
|
|
5715
5825
|
var nodes = matchObj.nodes;
|
|
5716
5826
|
nodes.forEach(function (row, index) {
|
|
5717
|
-
if (index < nodes.length - 1 && !
|
|
5718
|
-
rests.push(
|
|
5827
|
+
if (index < nodes.length - 1 && !_this48.isTreeExpandByRow(row)) {
|
|
5828
|
+
rests.push(_this48.setTreeExpand(row, true));
|
|
5719
5829
|
}
|
|
5720
5830
|
});
|
|
5721
5831
|
}
|
|
5722
5832
|
}
|
|
5723
5833
|
|
|
5724
5834
|
return Promise.all(rests).then(function () {
|
|
5725
|
-
return _tools.DomTools.rowToVisible(
|
|
5835
|
+
return _tools.DomTools.rowToVisible(_this48, row);
|
|
5726
5836
|
});
|
|
5727
5837
|
},
|
|
5728
5838
|
|
|
@@ -5786,29 +5896,29 @@ var Methods = {
|
|
|
5786
5896
|
* 如果单元格配置了校验规则,则会进行校验
|
|
5787
5897
|
*/
|
|
5788
5898
|
updateStatus: function updateStatus(scope, cellValue) {
|
|
5789
|
-
var
|
|
5899
|
+
var _this49 = this;
|
|
5790
5900
|
|
|
5791
5901
|
var customVal = !_xeUtils.default.isUndefined(cellValue);
|
|
5792
5902
|
return this.$nextTick().then(function () {
|
|
5793
|
-
var $refs =
|
|
5794
|
-
editRules =
|
|
5795
|
-
validStore =
|
|
5903
|
+
var $refs = _this49.$refs,
|
|
5904
|
+
editRules = _this49.editRules,
|
|
5905
|
+
validStore = _this49.validStore;
|
|
5796
5906
|
|
|
5797
5907
|
if (scope && $refs.tableBody && editRules) {
|
|
5798
5908
|
var row = scope.row,
|
|
5799
5909
|
column = scope.column;
|
|
5800
5910
|
var type = 'change';
|
|
5801
5911
|
|
|
5802
|
-
if (
|
|
5803
|
-
var cell =
|
|
5912
|
+
if (_this49.hasCellRules(type, row, column)) {
|
|
5913
|
+
var cell = _this49.getCell(row, column);
|
|
5804
5914
|
|
|
5805
5915
|
if (cell) {
|
|
5806
|
-
return
|
|
5916
|
+
return _this49.validCellRules(type, row, column, cellValue).then(function () {
|
|
5807
5917
|
if (customVal && validStore.visible) {
|
|
5808
5918
|
setCellValue(row, column, cellValue);
|
|
5809
5919
|
}
|
|
5810
5920
|
|
|
5811
|
-
|
|
5921
|
+
_this49.clearValidate();
|
|
5812
5922
|
}).catch(function (_ref7) {
|
|
5813
5923
|
var rule = _ref7.rule;
|
|
5814
5924
|
|
|
@@ -5816,7 +5926,7 @@ var Methods = {
|
|
|
5816
5926
|
setCellValue(row, column, cellValue);
|
|
5817
5927
|
}
|
|
5818
5928
|
|
|
5819
|
-
|
|
5929
|
+
_this49.showValidTooltip({
|
|
5820
5930
|
rule: rule,
|
|
5821
5931
|
row: row,
|
|
5822
5932
|
column: column,
|
|
@@ -5837,7 +5947,7 @@ var Methods = {
|
|
|
5837
5947
|
* @param {TableMergeConfig[]} merges { row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }
|
|
5838
5948
|
*/
|
|
5839
5949
|
setMergeCells: function setMergeCells(merges) {
|
|
5840
|
-
var
|
|
5950
|
+
var _this50 = this;
|
|
5841
5951
|
|
|
5842
5952
|
if (this.spanMethod) {
|
|
5843
5953
|
_tools.UtilTools.error('vxe.error.errConflicts', ['merge-cells', 'span-method']);
|
|
@@ -5845,7 +5955,7 @@ var Methods = {
|
|
|
5845
5955
|
|
|
5846
5956
|
setMerges(this, merges, this.mergeList, this.afterFullData);
|
|
5847
5957
|
return this.$nextTick().then(function () {
|
|
5848
|
-
return
|
|
5958
|
+
return _this50.updateCellAreas();
|
|
5849
5959
|
});
|
|
5850
5960
|
},
|
|
5851
5961
|
|
|
@@ -5854,7 +5964,7 @@ var Methods = {
|
|
|
5854
5964
|
* @param {TableMergeConfig[]} merges 多个或数组 [{row:Row|number, col:ColumnInfo|number}]
|
|
5855
5965
|
*/
|
|
5856
5966
|
removeMergeCells: function removeMergeCells(merges) {
|
|
5857
|
-
var
|
|
5967
|
+
var _this51 = this;
|
|
5858
5968
|
|
|
5859
5969
|
if (this.spanMethod) {
|
|
5860
5970
|
_tools.UtilTools.error('vxe.error.errConflicts', ['merge-cells', 'span-method']);
|
|
@@ -5862,7 +5972,7 @@ var Methods = {
|
|
|
5862
5972
|
|
|
5863
5973
|
var rest = removeMerges(this, merges, this.mergeList, this.afterFullData);
|
|
5864
5974
|
return this.$nextTick().then(function () {
|
|
5865
|
-
|
|
5975
|
+
_this51.updateCellAreas();
|
|
5866
5976
|
|
|
5867
5977
|
return rest;
|
|
5868
5978
|
});
|
|
@@ -5886,7 +5996,7 @@ var Methods = {
|
|
|
5886
5996
|
this.setMergeFooterItems(this.mergeFooterItems);
|
|
5887
5997
|
},
|
|
5888
5998
|
setMergeFooterItems: function setMergeFooterItems(merges) {
|
|
5889
|
-
var
|
|
5999
|
+
var _this52 = this;
|
|
5890
6000
|
|
|
5891
6001
|
if (this.footerSpanMethod) {
|
|
5892
6002
|
_tools.UtilTools.error('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
@@ -5894,11 +6004,11 @@ var Methods = {
|
|
|
5894
6004
|
|
|
5895
6005
|
setMerges(this, merges, this.mergeFooterList, null);
|
|
5896
6006
|
return this.$nextTick().then(function () {
|
|
5897
|
-
return
|
|
6007
|
+
return _this52.updateCellAreas();
|
|
5898
6008
|
});
|
|
5899
6009
|
},
|
|
5900
6010
|
removeMergeFooterItems: function removeMergeFooterItems(merges) {
|
|
5901
|
-
var
|
|
6011
|
+
var _this53 = this;
|
|
5902
6012
|
|
|
5903
6013
|
if (this.footerSpanMethod) {
|
|
5904
6014
|
_tools.UtilTools.error('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
@@ -5906,7 +6016,7 @@ var Methods = {
|
|
|
5906
6016
|
|
|
5907
6017
|
var rest = removeMerges(this, merges, this.mergeFooterList, null);
|
|
5908
6018
|
return this.$nextTick().then(function () {
|
|
5909
|
-
|
|
6019
|
+
_this53.updateCellAreas();
|
|
5910
6020
|
|
|
5911
6021
|
return rest;
|
|
5912
6022
|
});
|
|
@@ -6049,6 +6159,16 @@ var Methods = {
|
|
|
6049
6159
|
var funcs = 'setFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,clearCopyCellArea,setCellAreas,openFind,openReplace,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearActived,getActiveRecord,isActiveByRow,setActiveRow,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',');
|
|
6050
6160
|
funcs.forEach(function (name) {
|
|
6051
6161
|
Methods[name] = function () {
|
|
6162
|
+
if (process.env.NODE_ENV === 'development') {
|
|
6163
|
+
if (!this["_".concat(name)]) {
|
|
6164
|
+
if ('openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').includes(name)) {
|
|
6165
|
+
_tools.UtilTools.error('vxe.error.reqModule', ['Export']);
|
|
6166
|
+
} else if ('clearValidate,fullValidate,validate'.split(',').includes(name)) {
|
|
6167
|
+
_tools.UtilTools.error('vxe.error.reqModule', ['Validator']);
|
|
6168
|
+
}
|
|
6169
|
+
}
|
|
6170
|
+
}
|
|
6171
|
+
|
|
6052
6172
|
return this["_".concat(name)] ? this["_".concat(name)].apply(this, arguments) : null;
|
|
6053
6173
|
};
|
|
6054
6174
|
});
|