vxe-table 3.3.16 → 3.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/helper/vetur/attributes.json +12 -200
  2. package/helper/vetur/tags.json +3 -65
  3. package/lib/edit/src/mixin.js +2 -2
  4. package/lib/edit/src/mixin.min.js +1 -1
  5. package/lib/export/src/mixin.js +44 -1
  6. package/lib/export/src/mixin.min.js +1 -1
  7. package/lib/form/src/form.js +21 -6
  8. package/lib/form/src/form.min.js +1 -1
  9. package/lib/form/src/render.js +4 -4
  10. package/lib/form/src/render.min.js +1 -1
  11. package/lib/grid/src/grid.js +56 -0
  12. package/lib/grid/src/grid.min.js +1 -1
  13. package/lib/header/src/header.js +3 -2
  14. package/lib/header/src/header.min.js +1 -1
  15. package/lib/index.umd.js +352 -195
  16. package/lib/index.umd.min.js +1 -1
  17. package/lib/select/src/select.js +5 -5
  18. package/lib/select/src/select.min.js +1 -1
  19. package/lib/table/src/body.js +15 -10
  20. package/lib/table/src/body.min.js +1 -1
  21. package/lib/table/src/methods.js +267 -147
  22. package/lib/table/src/methods.min.js +1 -1
  23. package/lib/table/src/table.js +12 -2
  24. package/lib/table/src/table.min.js +1 -1
  25. package/lib/v-x-e-table/src/conf.js +1 -1
  26. package/lib/v-x-e-table/src/conf.min.js +1 -1
  27. package/lib/validator/src/mixin.js +9 -4
  28. package/lib/validator/src/mixin.min.js +1 -1
  29. package/package.json +1 -2
  30. package/packages/edit/src/mixin.js +2 -2
  31. package/packages/export/src/mixin.js +38 -1
  32. package/packages/form/src/form.js +10 -6
  33. package/packages/form/src/render.js +4 -4
  34. package/packages/grid/src/grid.js +48 -0
  35. package/packages/header/src/header.js +2 -2
  36. package/packages/select/src/select.js +5 -5
  37. package/packages/table/src/body.js +15 -10
  38. package/packages/table/src/methods.js +173 -73
  39. package/packages/table/src/table.js +11 -2
  40. package/packages/v-x-e-table/src/conf.js +1 -1
  41. package/packages/validator/src/mixin.js +8 -4
package/lib/index.umd.js CHANGED
@@ -8412,6 +8412,7 @@ var iconPrefix = 'vxe-icon--';
8412
8412
  table: {
8413
8413
  fit: true,
8414
8414
  showHeader: true,
8415
+ animat: true,
8415
8416
  delayHover: 250,
8416
8417
  // keepSource: false,
8417
8418
  // showOverflow: null,
@@ -8420,7 +8421,6 @@ var iconPrefix = 'vxe-icon--';
8420
8421
  // resizeInterval: 500,
8421
8422
  // size: null,
8422
8423
  // zIndex: null,
8423
- // resizable: false,
8424
8424
  // autoResize: false,
8425
8425
  // stripe: false,
8426
8426
  // border: false,
@@ -10958,7 +10958,6 @@ function clearTableAllStatus(_vm) {
10958
10958
 
10959
10959
 
10960
10960
 
10961
-
10962
10961
  var renderType = 'body'; // 滚动、拖动过程中不需要触发
10963
10962
 
10964
10963
  function isOperateMouse($xetable) {
@@ -11028,7 +11027,8 @@ function renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, r
11028
11027
  validOpts = $xetable.validOpts,
11029
11028
  editStore = $xetable.editStore,
11030
11029
  validStore = $xetable.validStore,
11031
- tooltipConfig = $xetable.tooltipConfig;
11030
+ tooltipConfig = $xetable.tooltipConfig,
11031
+ rowOpts = $xetable.rowOpts;
11032
11032
  var type = column.type,
11033
11033
  cellRender = column.cellRender,
11034
11034
  editRender = column.editRender,
@@ -11037,7 +11037,8 @@ function renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, r
11037
11037
  className = column.className,
11038
11038
  treeNode = column.treeNode;
11039
11039
  var actived = editStore.actived;
11040
- var rHeight = sYOpts.rHeight;
11040
+ var scrollYRHeight = sYOpts.rHeight;
11041
+ var rowHeight = rowOpts.height;
11041
11042
  var showAllTip = tooltipOpts.showAll || tooltipOpts.enabled;
11042
11043
  var columnIndex = $xetable.getColumnIndex(column);
11043
11044
 
@@ -11212,7 +11213,7 @@ function renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, r
11212
11213
  'c--ellipsis': showEllipsis
11213
11214
  }],
11214
11215
  style: {
11215
- maxHeight: hasEllipsis && rHeight ? "".concat(rHeight, "px") : ''
11216
+ maxHeight: hasEllipsis && (scrollYRHeight || rowHeight) ? "".concat(scrollYRHeight || rowHeight, "px") : ''
11216
11217
  }
11217
11218
  }));
11218
11219
  } else {
@@ -11224,7 +11225,7 @@ function renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, r
11224
11225
  'c--ellipsis': showEllipsis
11225
11226
  }],
11226
11227
  style: {
11227
- maxHeight: hasEllipsis && rHeight ? "".concat(rHeight, "px") : ''
11228
+ maxHeight: hasEllipsis && (scrollYRHeight || rowHeight) ? "".concat(scrollYRHeight || rowHeight, "px") : ''
11228
11229
  },
11229
11230
  attrs: {
11230
11231
  title: showTitle ? $xetable.getCellLabel(row, column) : null
@@ -11248,13 +11249,13 @@ function renderColumn(h, _vm, $xetable, $seq, seq, rowid, fixedType, rowLevel, r
11248
11249
  key: columnKey ? column.id : $columnIndex,
11249
11250
  attrs: attrs,
11250
11251
  style: Object.assign({
11251
- height: hasEllipsis && rHeight ? "".concat(rHeight, "px") : ''
11252
+ height: hasEllipsis && (scrollYRHeight || rowHeight) ? "".concat(scrollYRHeight || rowHeight, "px") : ''
11252
11253
  }, cellStyle ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isFunction(cellStyle) ? cellStyle(params) : cellStyle : null),
11253
11254
  on: tdOns
11254
11255
  }, tdVNs);
11255
11256
  }
11256
11257
 
11257
- function renderRows(h, _vm, $xetable, $seq, rowLevel, fixedType, tableData, tableColumn) {
11258
+ function renderRows(h, _vm, $xetable, $seq, fixedType, tableData, tableColumn) {
11258
11259
  var stripe = $xetable.stripe,
11259
11260
  rowKey = $xetable.rowKey,
11260
11261
  highlightHoverRow = $xetable.highlightHoverRow,
@@ -11273,7 +11274,8 @@ function renderRows(h, _vm, $xetable, $seq, rowLevel, fixedType, tableData, tabl
11273
11274
  radioOpts = $xetable.radioOpts,
11274
11275
  checkboxOpts = $xetable.checkboxOpts,
11275
11276
  expandColumn = $xetable.expandColumn,
11276
- hasFixedColumn = $xetable.hasFixedColumn;
11277
+ hasFixedColumn = $xetable.hasFixedColumn,
11278
+ fullAllDataRowIdData = $xetable.fullAllDataRowIdData;
11277
11279
  var rows = [];
11278
11280
  tableData.forEach(function (row, $rowIndex) {
11279
11281
  var trOn = {};
@@ -11311,6 +11313,8 @@ function renderRows(h, _vm, $xetable, $seq, rowLevel, fixedType, tableData, tabl
11311
11313
  }
11312
11314
 
11313
11315
  var rowid = UtilTools.getRowid($xetable, row);
11316
+ var rest = fullAllDataRowIdData[rowid];
11317
+ var rowLevel = rest ? rest.level : 0;
11314
11318
  var params = {
11315
11319
  $table: $xetable,
11316
11320
  $seq: $seq,
@@ -11390,11 +11394,11 @@ function renderRows(h, _vm, $xetable, $seq, rowLevel, fixedType, tableData, tabl
11390
11394
  } // 如果是树形表格
11391
11395
 
11392
11396
 
11393
- if (treeConfig && treeExpandeds.length) {
11397
+ if (treeConfig && !scrollYLoad && treeExpandeds.length) {
11394
11398
  var rowChildren = row[treeOpts.children];
11395
11399
 
11396
11400
  if (rowChildren && rowChildren.length && treeExpandeds.indexOf(row) > -1) {
11397
- rows.push.apply(rows, _toConsumableArray(renderRows(h, _vm, $xetable, $seq ? "".concat($seq, ".").concat(seq) : "".concat(seq), rowLevel + 1, fixedType, rowChildren, tableColumn)));
11401
+ rows.push.apply(rows, _toConsumableArray(renderRows(h, _vm, $xetable, $seq ? "".concat($seq, ".").concat(seq) : "".concat(seq), fixedType, rowChildren, tableColumn)));
11398
11402
  }
11399
11403
  }
11400
11404
  });
@@ -11569,7 +11573,7 @@ function syncBodyScroll(scrollTop, elem1, elem2) {
11569
11573
  */
11570
11574
  h('tbody', {
11571
11575
  ref: 'tbody'
11572
- }, renderRows(h, this, $xetable, '', 0, fixedType, tableData, tableColumn))]), h('div', {
11576
+ }, renderRows(h, this, $xetable, '', fixedType, tableData, tableColumn))]), h('div', {
11573
11577
  class: 'vxe-table--checkbox-range'
11574
11578
  }), mouseConfig && mouseOpts.area ? h('div', {
11575
11579
  class: 'vxe-table--cell-area'
@@ -12780,8 +12784,6 @@ var Cell = {
12780
12784
 
12781
12785
 
12782
12786
 
12783
-
12784
-
12785
12787
 
12786
12788
 
12787
12789
 
@@ -13181,6 +13183,15 @@ var Methods = {
13181
13183
  this.tableData = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
13182
13184
  return this.$nextTick();
13183
13185
  },
13186
+ updateScrollYStatus: function updateScrollYStatus(fullData) {
13187
+ var treeConfig = this.treeConfig,
13188
+ treeOpts = this.treeOpts,
13189
+ sYOpts = this.sYOpts;
13190
+ var transform = treeOpts.transform;
13191
+ var scrollYLoad = (transform || !treeConfig) && !!sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt < fullData.length;
13192
+ this.scrollYLoad = scrollYLoad;
13193
+ return scrollYLoad;
13194
+ },
13184
13195
 
13185
13196
  /**
13186
13197
  * 加载表格数据
@@ -13193,44 +13204,50 @@ var Methods = {
13193
13204
  treeConfig = this.treeConfig,
13194
13205
  treeOpts = this.treeOpts,
13195
13206
  editStore = this.editStore,
13196
- sYOpts = this.sYOpts,
13197
13207
  scrollYStore = this.scrollYStore,
13198
13208
  scrollXStore = this.scrollXStore,
13199
13209
  lastScrollLeft = this.lastScrollLeft,
13200
13210
  lastScrollTop = this.lastScrollTop,
13201
13211
  oldScrollYLoad = this.scrollYLoad;
13212
+ var treeData = [];
13213
+ var fullData = datas ? datas.slice(0) : [];
13202
13214
 
13203
- if (treeConfig && treeOpts.transform) {
13204
- if (false) {}
13215
+ if (treeConfig) {
13216
+ // 树结构自动转换
13217
+ if (treeOpts.transform) {
13218
+ if (false) {}
13205
13219
 
13206
- datas = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.toArrayTree(datas, {
13207
- key: treeOpts.rowtKey,
13208
- parentKey: treeOpts.parentKey,
13209
- children: treeOpts.children
13210
- });
13220
+ treeData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.toArrayTree(fullData, {
13221
+ key: treeOpts.rowtKey,
13222
+ parentKey: treeOpts.parentKey,
13223
+ children: treeOpts.children
13224
+ });
13225
+ fullData = treeData.slice(0);
13226
+ } else {
13227
+ treeData = fullData.slice(0);
13228
+ }
13211
13229
  }
13212
13230
 
13213
- var tableFullData = datas ? datas.slice(0) : [];
13214
- var scrollYLoad = !treeConfig && sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
13215
13231
  scrollYStore.startIndex = 0;
13216
13232
  scrollYStore.endIndex = 1;
13217
13233
  scrollXStore.startIndex = 0;
13218
13234
  scrollXStore.endIndex = 1;
13219
13235
  editStore.insertList = [];
13220
- editStore.removeList = []; // 全量数据
13236
+ editStore.removeList = [];
13237
+ var sYLoad = this.updateScrollYStatus(fullData);
13238
+ this.scrollYLoad = sYLoad; // 全量数据
13221
13239
 
13222
- this.tableFullData = tableFullData; // 缓存数据
13240
+ this.tableFullData = fullData;
13241
+ this.treeFullData = treeData; // 缓存数据
13223
13242
 
13224
- this.updateCache(true); // 原始数据
13243
+ this.cacheRowMap(true); // 原始数据
13225
13244
 
13226
- this.tableSynchData = datas;
13245
+ this.tableSynchData = datas; // 克隆原数据,用于显示编辑状态,与编辑值做对比
13227
13246
 
13228
13247
  if (keepSource) {
13229
- this.tableSourceData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clone(tableFullData, true);
13248
+ this.tableSourceData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clone(fullData, true);
13230
13249
  }
13231
13250
 
13232
- this.scrollYLoad = scrollYLoad;
13233
-
13234
13251
  if (false) {}
13235
13252
 
13236
13253
  if (this.clearCellAreas && this.mouseConfig) {
@@ -13249,8 +13266,8 @@ var Methods = {
13249
13266
  }).then(function () {
13250
13267
  _this2.computeScrollLoad();
13251
13268
  }).then(function () {
13252
- // 是否加载了数据
13253
- if (scrollYLoad) {
13269
+ // 是否启用了虚拟滚动
13270
+ if (sYLoad) {
13254
13271
  scrollYStore.endIndex = scrollYStore.visibleSize;
13255
13272
  }
13256
13273
 
@@ -13263,7 +13280,7 @@ var Methods = {
13263
13280
  return _this2.recalculate();
13264
13281
  }).then(function () {
13265
13282
  // 是否变更虚拟滚动
13266
- if (oldScrollYLoad === scrollYLoad) {
13283
+ if (oldScrollYLoad === sYLoad) {
13267
13284
  restoreScrollLocation(_this2, lastScrollLeft, lastScrollTop).then(resolve);
13268
13285
  } else {
13269
13286
  setTimeout(function () {
@@ -13347,7 +13364,7 @@ var Methods = {
13347
13364
  tableSourceData[rowIndex] = record;
13348
13365
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clear(row, undefined);
13349
13366
  Object.assign(row, this.defineField(Object.assign({}, record)));
13350
- this.updateCache(true);
13367
+ this.cacheRowMap(true);
13351
13368
  } else {
13352
13369
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.destructuring(oRow, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.clone(row, true));
13353
13370
  }
@@ -13425,7 +13442,7 @@ var Methods = {
13425
13442
  * 更新数据行的 Map
13426
13443
  * 牺牲数据组装的耗时,用来换取使用过程中的流畅
13427
13444
  */
13428
- updateCache: function updateCache(source) {
13445
+ cacheRowMap: function cacheRowMap(source) {
13429
13446
  var _this8 = this;
13430
13447
 
13431
13448
  var treeConfig = this.treeConfig,
@@ -13438,7 +13455,7 @@ var Methods = {
13438
13455
  var rowkey = getRowkey(this);
13439
13456
  var isLazy = treeConfig && treeOpts.lazy;
13440
13457
 
13441
- var handleCache = function handleCache(row, index, items, path, parent) {
13458
+ var handleCache = function handleCache(row, index, items, path, parent, nodes) {
13442
13459
  var rowid = methods_getRowid(_this8, row);
13443
13460
 
13444
13461
  if (eqEmptyValue(rowid)) {
@@ -13455,7 +13472,8 @@ var Methods = {
13455
13472
  rowid: rowid,
13456
13473
  index: treeConfig && parent ? -1 : index,
13457
13474
  items: items,
13458
- parent: parent
13475
+ parent: parent,
13476
+ level: nodes ? nodes.length - 1 : 0
13459
13477
  };
13460
13478
 
13461
13479
  if (source) {
@@ -13481,19 +13499,20 @@ var Methods = {
13481
13499
  tableFullData.forEach(handleCache);
13482
13500
  }
13483
13501
  },
13484
- loadChildren: function loadChildren(row, childRecords) {
13502
+ loadTreeChildren: function loadTreeChildren(row, childRecords) {
13485
13503
  var _this9 = this;
13486
13504
 
13505
+ var keepSource = this.keepSource,
13506
+ tableSourceData = this.tableSourceData,
13507
+ treeOpts = this.treeOpts,
13508
+ fullDataRowIdData = this.fullDataRowIdData,
13509
+ fullDataRowMap = this.fullDataRowMap,
13510
+ fullAllDataRowMap = this.fullAllDataRowMap,
13511
+ fullAllDataRowIdData = this.fullAllDataRowIdData;
13512
+ var children = treeOpts.children;
13513
+ var rest = fullAllDataRowIdData[methods_getRowid(this, row)];
13514
+ var parentLevel = rest ? rest.level : 0;
13487
13515
  return this.createData(childRecords).then(function (rows) {
13488
- var keepSource = _this9.keepSource,
13489
- tableSourceData = _this9.tableSourceData,
13490
- treeOpts = _this9.treeOpts,
13491
- fullDataRowIdData = _this9.fullDataRowIdData,
13492
- fullDataRowMap = _this9.fullDataRowMap,
13493
- fullAllDataRowMap = _this9.fullAllDataRowMap,
13494
- fullAllDataRowIdData = _this9.fullAllDataRowIdData;
13495
- var children = treeOpts.children;
13496
-
13497
13516
  if (keepSource) {
13498
13517
  var rowid = methods_getRowid(_this9, row);
13499
13518
  var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(tableSourceData, function (item) {
@@ -13505,14 +13524,15 @@ var Methods = {
13505
13524
  }
13506
13525
  }
13507
13526
 
13508
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(rows, function (childRow, index, items, path, parent) {
13527
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(rows, function (childRow, index, items, path, parent, nodes) {
13509
13528
  var rowid = methods_getRowid(_this9, childRow);
13510
13529
  var rest = {
13511
13530
  row: childRow,
13512
13531
  rowid: rowid,
13513
13532
  index: -1,
13514
13533
  items: items,
13515
- parent: parent
13534
+ parent: parent,
13535
+ level: parentLevel + nodes.length
13516
13536
  };
13517
13537
  fullDataRowIdData[rowid] = rest;
13518
13538
  fullDataRowMap.set(childRow, rest);
@@ -15835,11 +15855,11 @@ var Methods = {
15835
15855
  var column = params.column;
15836
15856
  var titleHelp = column.titleHelp;
15837
15857
 
15838
- if (titleHelp.message) {
15858
+ if (titleHelp.content || titleHelp.message) {
15839
15859
  var $refs = this.$refs,
15840
15860
  tooltipStore = this.tooltipStore;
15841
15861
  var tooltip = $refs.tooltip;
15842
- var content = UtilTools.getFuncText(titleHelp.message);
15862
+ var content = UtilTools.getFuncText(titleHelp.content || titleHelp.message);
15843
15863
  this.handleTargetEnterEvent();
15844
15864
  tooltipStore.visible = true;
15845
15865
 
@@ -17389,10 +17409,10 @@ var Methods = {
17389
17409
  },
17390
17410
 
17391
17411
  /**
17392
- * 重新加载展开行的内容
17412
+ * 重新懒加载展开行,并展开内容
17393
17413
  * @param {Row} row 行对象
17394
17414
  */
17395
- reloadExpandContent: function reloadExpandContent(row) {
17415
+ lazyExpandContent: function lazyExpandContent(row) {
17396
17416
  var _this36 = this;
17397
17417
 
17398
17418
  var expandOpts = this.expandOpts,
@@ -17407,6 +17427,12 @@ var Methods = {
17407
17427
 
17408
17428
  return this.$nextTick();
17409
17429
  },
17430
+ reloadExpandContent: function reloadExpandContent(row) {
17431
+ if (false) {} // 即将废弃
17432
+
17433
+
17434
+ return this.lazyExpandContent(row);
17435
+ },
17410
17436
 
17411
17437
  /**
17412
17438
  * 展开行事件
@@ -17672,25 +17698,38 @@ var Methods = {
17672
17698
  },
17673
17699
 
17674
17700
  /**
17675
- * 重新加载树的子节点
17701
+ * 重新懒加载树节点,并展开该节点
17676
17702
  * @param {Row} row 行对象
17677
17703
  */
17678
- reloadTreeChilds: function reloadTreeChilds(row) {
17704
+ lazyTreeChildren: function lazyTreeChildren(row) {
17679
17705
  var _this40 = this;
17680
17706
 
17681
17707
  var treeOpts = this.treeOpts,
17682
17708
  treeLazyLoadeds = this.treeLazyLoadeds;
17683
- var lazy = treeOpts.lazy,
17709
+ var transform = treeOpts.transform,
17710
+ lazy = treeOpts.lazy,
17684
17711
  hasChild = treeOpts.hasChild;
17685
17712
 
17686
17713
  if (lazy && row[hasChild] && treeLazyLoadeds.indexOf(row) === -1) {
17687
17714
  this.clearTreeExpandLoaded(row).then(function () {
17688
17715
  return _this40.handleAsyncTreeExpandChilds(row);
17716
+ }).then(function () {
17717
+ if (transform) {
17718
+ return _this40.updateVirtualTreeData();
17719
+ }
17720
+ }).then(function () {
17721
+ return _this40.recalculate();
17689
17722
  });
17690
17723
  }
17691
17724
 
17692
17725
  return this.$nextTick();
17693
17726
  },
17727
+ reloadTreeChilds: function reloadTreeChilds(row) {
17728
+ if (false) {} // 即将废弃
17729
+
17730
+
17731
+ return this.lazyTreeChildren(row);
17732
+ },
17694
17733
 
17695
17734
  /**
17696
17735
  * 展开树节点事件
@@ -17783,7 +17822,7 @@ var Methods = {
17783
17822
  }
17784
17823
 
17785
17824
  if (childRecords) {
17786
- _this41.loadChildren(row, childRecords).then(function (childRows) {
17825
+ _this41.loadTreeChildren(row, childRecords).then(function (childRows) {
17787
17826
  if (childRows.length && treeExpandeds.indexOf(row) === -1) {
17788
17827
  treeExpandeds.push(row);
17789
17828
  } // 如果当前节点已选中,则展开后子节点也被选中
@@ -17821,13 +17860,12 @@ var Methods = {
17821
17860
  },
17822
17861
 
17823
17862
  /**
17824
- * 设置展开树形节点,二个参数设置这一行展开与否
17825
- * 支持单行
17826
- * 支持多行
17827
- * @param {Array/Row} rows 行数据
17828
- * @param {Boolean} expanded 是否展开
17863
+ * 默认,展开与收起树节点
17864
+ * @param rows
17865
+ * @param expanded
17866
+ * @returns
17829
17867
  */
17830
- setTreeExpand: function setTreeExpand(rows, expanded) {
17868
+ handleBaseTreeExpand: function handleBaseTreeExpand(rows, expanded) {
17831
17869
  var _this42 = this;
17832
17870
 
17833
17871
  var fullAllDataRowMap = this.fullAllDataRowMap,
@@ -17845,65 +17883,123 @@ var Methods = {
17845
17883
  var result = [];
17846
17884
  var columnIndex = this.getColumnIndex(treeNodeColumn);
17847
17885
  var $columnIndex = this.getVMColumnIndex(treeNodeColumn);
17886
+ var validRows = toggleMethod ? rows.filter(function (row) {
17887
+ return toggleMethod({
17888
+ expanded: expanded,
17889
+ column: treeNodeColumn,
17890
+ columnIndex: columnIndex,
17891
+ $columnIndex: $columnIndex,
17892
+ row: row
17893
+ });
17894
+ }) : rows;
17848
17895
 
17849
- if (rows) {
17850
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isArray(rows)) {
17851
- rows = [rows];
17852
- }
17896
+ if (accordion) {
17897
+ validRows = validRows.length ? [validRows[validRows.length - 1]] : []; // 同一级只能展开一个
17853
17898
 
17854
- if (rows.length) {
17855
- var validRows = toggleMethod ? rows.filter(function (row) {
17856
- return toggleMethod({
17857
- expanded: expanded,
17858
- column: treeNodeColumn,
17859
- columnIndex: columnIndex,
17860
- $columnIndex: $columnIndex,
17861
- row: row
17862
- });
17863
- }) : rows;
17899
+ var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(tableFullData, function (item) {
17900
+ return item === validRows[0];
17901
+ }, treeOpts);
17864
17902
 
17865
- if (accordion) {
17866
- validRows = validRows.length ? [validRows[validRows.length - 1]] : []; // 同一级只能展开一个
17903
+ if (matchObj) {
17904
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (item) {
17905
+ return matchObj.items.indexOf(item) > -1;
17906
+ });
17907
+ }
17908
+ }
17867
17909
 
17868
- var matchObj = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.findTree(tableFullData, function (item) {
17869
- return item === validRows[0];
17870
- }, treeOpts);
17910
+ if (expanded) {
17911
+ validRows.forEach(function (row) {
17912
+ if (treeExpandeds.indexOf(row) === -1) {
17913
+ var rest = fullAllDataRowMap.get(row);
17914
+ var isLoad = lazy && row[hasChild] && !rest.treeLoaded && treeLazyLoadeds.indexOf(row) === -1; // 是否使用懒加载
17871
17915
 
17872
- if (matchObj) {
17873
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (item) {
17874
- return matchObj.items.indexOf(item) > -1;
17875
- });
17916
+ if (isLoad) {
17917
+ result.push(_this42.handleAsyncTreeExpandChilds(row));
17918
+ } else {
17919
+ if (row[children] && row[children].length) {
17920
+ treeExpandeds.push(row);
17921
+ }
17876
17922
  }
17877
17923
  }
17924
+ });
17925
+ } else {
17926
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (row) {
17927
+ return validRows.indexOf(row) > -1;
17928
+ });
17929
+ }
17878
17930
 
17879
- if (expanded) {
17880
- validRows.forEach(function (row) {
17881
- if (treeExpandeds.indexOf(row) === -1) {
17882
- var rest = fullAllDataRowMap.get(row);
17883
- var isLoad = lazy && row[hasChild] && !rest.treeLoaded && treeLazyLoadeds.indexOf(row) === -1; // 是否使用懒加载
17931
+ if (reserve) {
17932
+ validRows.forEach(function (row) {
17933
+ return _this42.handleTreeExpandReserve(row, expanded);
17934
+ });
17935
+ }
17884
17936
 
17885
- if (isLoad) {
17886
- result.push(_this42.handleAsyncTreeExpandChilds(row));
17887
- } else {
17888
- if (row[children] && row[children].length) {
17889
- treeExpandeds.push(row);
17890
- }
17891
- }
17892
- }
17893
- });
17894
- } else {
17895
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.remove(treeExpandeds, function (row) {
17896
- return validRows.indexOf(row) > -1;
17897
- });
17898
- }
17937
+ return Promise.all(result).then(this.recalculate);
17938
+ },
17939
+ updateVirtualTreeData: function updateVirtualTreeData() {
17940
+ var _this43 = this;
17899
17941
 
17900
- if (reserve) {
17901
- validRows.forEach(function (row) {
17902
- return _this42.handleTreeExpandReserve(row, expanded);
17903
- });
17904
- }
17942
+ var oldScrollYLoad = this.scrollYLoad,
17943
+ treeExpandeds = this.treeExpandeds,
17944
+ treeOpts = this.treeOpts,
17945
+ treeFullData = this.treeFullData;
17946
+ var fullData = [];
17947
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(treeFullData, function (row, index, items, path, parent) {
17948
+ if (!parent || treeExpandeds.indexOf(parent) > -1) {
17949
+ fullData.push(row);
17950
+ }
17951
+ }, treeOpts);
17952
+ var scrollYLoad = this.updateScrollYStatus(fullData);
17953
+ this.tableFullData = scrollYLoad ? fullData : treeFullData;
17954
+
17955
+ if (scrollYLoad || oldScrollYLoad !== scrollYLoad) {
17956
+ return this.handleTableData(true).then(function () {
17957
+ return _this43.recalculate();
17958
+ });
17959
+ }
17960
+
17961
+ return this.$nextTick();
17962
+ },
17905
17963
 
17906
- return Promise.all(result).then(this.recalculate);
17964
+ /**
17965
+ * 虚拟树的展开与收起
17966
+ * @param rows
17967
+ * @param expanded
17968
+ * @returns
17969
+ */
17970
+ handleVirtualTreeExpand: function handleVirtualTreeExpand(rows, expanded) {
17971
+ var _this44 = this;
17972
+
17973
+ return this.handleBaseTreeExpand(rows, expanded).then(function () {
17974
+ return _this44.updateVirtualTreeData();
17975
+ }).then(function () {
17976
+ return _this44.recalculate();
17977
+ });
17978
+ },
17979
+
17980
+ /**
17981
+ * 设置展开树形节点,二个参数设置这一行展开与否
17982
+ * 支持单行
17983
+ * 支持多行
17984
+ * @param {Array/Row} rows 行数据
17985
+ * @param {Boolean} expanded 是否展开
17986
+ */
17987
+ setTreeExpand: function setTreeExpand(rows, expanded) {
17988
+ var treeOpts = this.treeOpts;
17989
+ var transform = treeOpts.transform;
17990
+
17991
+ if (rows) {
17992
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isArray(rows)) {
17993
+ rows = [rows];
17994
+ }
17995
+
17996
+ if (rows.length) {
17997
+ // 如果为虚拟树
17998
+ if (transform) {
17999
+ return this.handleVirtualTreeExpand(rows, expanded);
18000
+ } else {
18001
+ return this.handleBaseTreeExpand(rows, expanded);
18002
+ }
17907
18003
  }
17908
18004
  }
17909
18005
 
@@ -17922,7 +18018,7 @@ var Methods = {
17922
18018
  * 手动清空树形节点的展开状态,数据会恢复成未展开的状态
17923
18019
  */
17924
18020
  clearTreeExpand: function clearTreeExpand() {
17925
- var _this43 = this;
18021
+ var _this45 = this;
17926
18022
 
17927
18023
  var treeOpts = this.treeOpts,
17928
18024
  treeExpandeds = this.treeExpandeds,
@@ -17933,13 +18029,13 @@ var Methods = {
17933
18029
 
17934
18030
  if (reserve) {
17935
18031
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.eachTree(tableFullData, function (row) {
17936
- return _this43.handleTreeExpandReserve(row, false);
18032
+ return _this45.handleTreeExpandReserve(row, false);
17937
18033
  }, treeOpts);
17938
18034
  }
17939
18035
 
17940
- return this.$nextTick().then(function () {
18036
+ return this.updateVirtualTreeData().then(function () {
17941
18037
  if (isExists) {
17942
- _this43.recalculate();
18038
+ _this45.recalculate();
17943
18039
  }
17944
18040
  });
17945
18041
  },
@@ -18069,18 +18165,18 @@ var Methods = {
18069
18165
  },
18070
18166
  // 计算可视渲染相关数据
18071
18167
  computeScrollLoad: function computeScrollLoad() {
18072
- var _this44 = this;
18168
+ var _this46 = this;
18073
18169
 
18074
18170
  return this.$nextTick().then(function () {
18075
- var sYOpts = _this44.sYOpts,
18076
- sXOpts = _this44.sXOpts,
18077
- scrollXLoad = _this44.scrollXLoad,
18078
- scrollYLoad = _this44.scrollYLoad,
18079
- scrollXStore = _this44.scrollXStore,
18080
- scrollYStore = _this44.scrollYStore; // 计算 X 逻辑
18171
+ var sYOpts = _this46.sYOpts,
18172
+ sXOpts = _this46.sXOpts,
18173
+ scrollXLoad = _this46.scrollXLoad,
18174
+ scrollYLoad = _this46.scrollYLoad,
18175
+ scrollXStore = _this46.scrollXStore,
18176
+ scrollYStore = _this46.scrollYStore; // 计算 X 逻辑
18081
18177
 
18082
18178
  if (scrollXLoad) {
18083
- var _computeVirtualX3 = computeVirtualX(_this44),
18179
+ var _computeVirtualX3 = computeVirtualX(_this46),
18084
18180
  visibleXSize = _computeVirtualX3.visibleSize;
18085
18181
 
18086
18182
  var offsetXSize = sXOpts.oSize ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.toNumber(sXOpts.oSize) : browse.msie ? 10 : browse.edge ? 5 : 0;
@@ -18088,13 +18184,13 @@ var Methods = {
18088
18184
  scrollXStore.visibleSize = visibleXSize;
18089
18185
  scrollXStore.endIndex = Math.max(scrollXStore.startIndex + scrollXStore.visibleSize + offsetXSize, scrollXStore.endIndex);
18090
18186
 
18091
- _this44.updateScrollXData();
18187
+ _this46.updateScrollXData();
18092
18188
  } else {
18093
- _this44.updateScrollXSpace();
18189
+ _this46.updateScrollXSpace();
18094
18190
  } // 计算 Y 逻辑
18095
18191
 
18096
18192
 
18097
- var _computeVirtualY = computeVirtualY(_this44),
18193
+ var _computeVirtualY = computeVirtualY(_this46),
18098
18194
  rowHeight = _computeVirtualY.rowHeight,
18099
18195
  visibleYSize = _computeVirtualY.visibleSize;
18100
18196
 
@@ -18106,14 +18202,14 @@ var Methods = {
18106
18202
  scrollYStore.visibleSize = visibleYSize;
18107
18203
  scrollYStore.endIndex = Math.max(scrollYStore.startIndex + visibleYSize + offsetYSize, scrollYStore.endIndex);
18108
18204
 
18109
- _this44.updateScrollYData();
18205
+ _this46.updateScrollYData();
18110
18206
  } else {
18111
- _this44.updateScrollYSpace();
18207
+ _this46.updateScrollYSpace();
18112
18208
  }
18113
18209
 
18114
- _this44.rowHeight = rowHeight;
18210
+ _this46.rowHeight = rowHeight;
18115
18211
 
18116
- _this44.$nextTick(_this44.updateStyle);
18212
+ _this46.$nextTick(_this46.updateStyle);
18117
18213
  });
18118
18214
  },
18119
18215
  handleTableColumn: function handleTableColumn() {
@@ -18227,7 +18323,7 @@ var Methods = {
18227
18323
  * @param {Number} scrollTop 上距离
18228
18324
  */
18229
18325
  scrollTo: function scrollTo(scrollLeft, scrollTop) {
18230
- var _this45 = this;
18326
+ var _this47 = this;
18231
18327
 
18232
18328
  var $refs = this.$refs;
18233
18329
  var tableBody = $refs.tableBody,
@@ -18248,7 +18344,7 @@ var Methods = {
18248
18344
  if (this.scrollXLoad || this.scrollYLoad) {
18249
18345
  return new Promise(function (resolve) {
18250
18346
  return setTimeout(function () {
18251
- return resolve(_this45.$nextTick());
18347
+ return resolve(_this47.$nextTick());
18252
18348
  }, 50);
18253
18349
  });
18254
18350
  }
@@ -18299,7 +18395,7 @@ var Methods = {
18299
18395
  * @param {Row} row 行对象
18300
18396
  */
18301
18397
  scrollToTreeRow: function scrollToTreeRow(row) {
18302
- var _this46 = this;
18398
+ var _this48 = this;
18303
18399
 
18304
18400
  var tableFullData = this.tableFullData,
18305
18401
  treeConfig = this.treeConfig,
@@ -18314,15 +18410,15 @@ var Methods = {
18314
18410
  if (matchObj) {
18315
18411
  var nodes = matchObj.nodes;
18316
18412
  nodes.forEach(function (row, index) {
18317
- if (index < nodes.length - 1 && !_this46.isTreeExpandByRow(row)) {
18318
- rests.push(_this46.setTreeExpand(row, true));
18413
+ if (index < nodes.length - 1 && !_this48.isTreeExpandByRow(row)) {
18414
+ rests.push(_this48.setTreeExpand(row, true));
18319
18415
  }
18320
18416
  });
18321
18417
  }
18322
18418
  }
18323
18419
 
18324
18420
  return Promise.all(rests).then(function () {
18325
- return DomTools.rowToVisible(_this46, row);
18421
+ return DomTools.rowToVisible(_this48, row);
18326
18422
  });
18327
18423
  },
18328
18424
 
@@ -18386,29 +18482,29 @@ var Methods = {
18386
18482
  * 如果单元格配置了校验规则,则会进行校验
18387
18483
  */
18388
18484
  updateStatus: function updateStatus(scope, cellValue) {
18389
- var _this47 = this;
18485
+ var _this49 = this;
18390
18486
 
18391
18487
  var customVal = !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isUndefined(cellValue);
18392
18488
  return this.$nextTick().then(function () {
18393
- var $refs = _this47.$refs,
18394
- editRules = _this47.editRules,
18395
- validStore = _this47.validStore;
18489
+ var $refs = _this49.$refs,
18490
+ editRules = _this49.editRules,
18491
+ validStore = _this49.validStore;
18396
18492
 
18397
18493
  if (scope && $refs.tableBody && editRules) {
18398
18494
  var row = scope.row,
18399
18495
  column = scope.column;
18400
18496
  var type = 'change';
18401
18497
 
18402
- if (_this47.hasCellRules(type, row, column)) {
18403
- var cell = _this47.getCell(row, column);
18498
+ if (_this49.hasCellRules(type, row, column)) {
18499
+ var cell = _this49.getCell(row, column);
18404
18500
 
18405
18501
  if (cell) {
18406
- return _this47.validCellRules(type, row, column, cellValue).then(function () {
18502
+ return _this49.validCellRules(type, row, column, cellValue).then(function () {
18407
18503
  if (customVal && validStore.visible) {
18408
18504
  methods_setCellValue(row, column, cellValue);
18409
18505
  }
18410
18506
 
18411
- _this47.clearValidate();
18507
+ _this49.clearValidate();
18412
18508
  }).catch(function (_ref7) {
18413
18509
  var rule = _ref7.rule;
18414
18510
 
@@ -18416,7 +18512,7 @@ var Methods = {
18416
18512
  methods_setCellValue(row, column, cellValue);
18417
18513
  }
18418
18514
 
18419
- _this47.showValidTooltip({
18515
+ _this49.showValidTooltip({
18420
18516
  rule: rule,
18421
18517
  row: row,
18422
18518
  column: column,
@@ -18437,7 +18533,7 @@ var Methods = {
18437
18533
  * @param {TableMergeConfig[]} merges { row: Row|number, column: ColumnInfo|number, rowspan: number, colspan: number }
18438
18534
  */
18439
18535
  setMergeCells: function setMergeCells(merges) {
18440
- var _this48 = this;
18536
+ var _this50 = this;
18441
18537
 
18442
18538
  if (this.spanMethod) {
18443
18539
  UtilTools.error('vxe.error.errConflicts', ['merge-cells', 'span-method']);
@@ -18445,7 +18541,7 @@ var Methods = {
18445
18541
 
18446
18542
  setMerges(this, merges, this.mergeList, this.afterFullData);
18447
18543
  return this.$nextTick().then(function () {
18448
- return _this48.updateCellAreas();
18544
+ return _this50.updateCellAreas();
18449
18545
  });
18450
18546
  },
18451
18547
 
@@ -18454,7 +18550,7 @@ var Methods = {
18454
18550
  * @param {TableMergeConfig[]} merges 多个或数组 [{row:Row|number, col:ColumnInfo|number}]
18455
18551
  */
18456
18552
  removeMergeCells: function removeMergeCells(merges) {
18457
- var _this49 = this;
18553
+ var _this51 = this;
18458
18554
 
18459
18555
  if (this.spanMethod) {
18460
18556
  UtilTools.error('vxe.error.errConflicts', ['merge-cells', 'span-method']);
@@ -18462,7 +18558,7 @@ var Methods = {
18462
18558
 
18463
18559
  var rest = removeMerges(this, merges, this.mergeList, this.afterFullData);
18464
18560
  return this.$nextTick().then(function () {
18465
- _this49.updateCellAreas();
18561
+ _this51.updateCellAreas();
18466
18562
 
18467
18563
  return rest;
18468
18564
  });
@@ -18486,7 +18582,7 @@ var Methods = {
18486
18582
  this.setMergeFooterItems(this.mergeFooterItems);
18487
18583
  },
18488
18584
  setMergeFooterItems: function setMergeFooterItems(merges) {
18489
- var _this50 = this;
18585
+ var _this52 = this;
18490
18586
 
18491
18587
  if (this.footerSpanMethod) {
18492
18588
  UtilTools.error('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
@@ -18494,11 +18590,11 @@ var Methods = {
18494
18590
 
18495
18591
  setMerges(this, merges, this.mergeFooterList, null);
18496
18592
  return this.$nextTick().then(function () {
18497
- return _this50.updateCellAreas();
18593
+ return _this52.updateCellAreas();
18498
18594
  });
18499
18595
  },
18500
18596
  removeMergeFooterItems: function removeMergeFooterItems(merges) {
18501
- var _this51 = this;
18597
+ var _this53 = this;
18502
18598
 
18503
18599
  if (this.footerSpanMethod) {
18504
18600
  UtilTools.error('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
@@ -18506,7 +18602,7 @@ var Methods = {
18506
18602
 
18507
18603
  var rest = removeMerges(this, merges, this.mergeFooterList, null);
18508
18604
  return this.$nextTick().then(function () {
18509
- _this51.updateCellAreas();
18605
+ _this53.updateCellAreas();
18510
18606
 
18511
18607
  return rest;
18512
18608
  });
@@ -18646,6 +18742,8 @@ var Methods = {
18646
18742
  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(',');
18647
18743
  funcs.forEach(function (name) {
18648
18744
  Methods[name] = function () {
18745
+ if (false) {}
18746
+
18649
18747
  return this["_".concat(name)] ? this["_".concat(name)].apply(this, arguments) : null;
18650
18748
  };
18651
18749
  });
@@ -18669,8 +18767,6 @@ funcs.forEach(function (name) {
18669
18767
 
18670
18768
 
18671
18769
 
18672
-
18673
-
18674
18770
  /**
18675
18771
  * 渲染浮固定列
18676
18772
  * 分别渲染左边固定列和右边固定列
@@ -18961,8 +19057,11 @@ function handleUupdateResize(_vm) {
18961
19057
  },
18962
19058
  // 是否自动根据状态属性去更新响应式表格宽高
18963
19059
  syncResize: [Boolean, String, Number],
18964
- // 设置列的默认参数,仅对部分支持的属性有效
19060
+ // 列配置信息
18965
19061
  columnConfig: Object,
19062
+ // 行配置信息
19063
+ rowConfig: Object,
19064
+ // 列调整配置项
18966
19065
  resizableConfig: Object,
18967
19066
  // 序号配置项
18968
19067
  seqConfig: Object,
@@ -19247,7 +19346,10 @@ function handleUupdateResize(_vm) {
19247
19346
  };
19248
19347
  },
19249
19348
  columnOpts: function columnOpts() {
19250
- return Object.assign({}, this.columnConfig);
19349
+ return Object.assign({}, conf.table.columnConfig, this.columnConfig);
19350
+ },
19351
+ rowOpts: function rowOpts() {
19352
+ return Object.assign({}, conf.table.rowConfig, this.rowConfig);
19251
19353
  },
19252
19354
  resizableOpts: function resizableOpts() {
19253
19355
  return Object.assign({}, conf.table.resizableConfig, this.resizableConfig);
@@ -20989,7 +21091,6 @@ var Menu = {
20989
21091
 
20990
21092
 
20991
21093
 
20992
-
20993
21094
  /* harmony default export */ var edit_src_mixin = ({
20994
21095
  methods: {
20995
21096
  /**
@@ -21085,7 +21186,7 @@ var Menu = {
21085
21186
  this.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
21086
21187
  this.handleTableData();
21087
21188
  this.updateFooter();
21088
- this.updateCache();
21189
+ this.cacheRowMap();
21089
21190
  this.checkSelectionStatus();
21090
21191
 
21091
21192
  if (scrollYLoad) {
@@ -21202,7 +21303,7 @@ var Menu = {
21202
21303
  this.scrollYLoad = !treeConfig && sYOpts.gt > -1 && sYOpts.gt < tableFullData.length;
21203
21304
  this.handleTableData();
21204
21305
  this.updateFooter();
21205
- this.updateCache();
21306
+ this.cacheRowMap();
21206
21307
  this.checkSelectionStatus();
21207
21308
 
21208
21309
  if (scrollYLoad) {
@@ -25548,7 +25649,6 @@ function renderExtraSuffixIcon(h, _vm) {
25548
25649
 
25549
25650
 
25550
25651
 
25551
-
25552
25652
  function isOptionVisible(option) {
25553
25653
  return option.visible !== false;
25554
25654
  }
@@ -25918,17 +26018,17 @@ function select_renderOpts(h, _vm) {
25918
26018
  this.fullOptionList = value;
25919
26019
  }
25920
26020
 
25921
- this.updateCache();
26021
+ this.cacheItemMap();
25922
26022
  },
25923
26023
  options: function options(value) {
25924
26024
  this.fullGroupList = [];
25925
26025
  this.fullOptionList = value;
25926
- this.updateCache();
26026
+ this.cacheItemMap();
25927
26027
  },
25928
26028
  optionGroups: function optionGroups(value) {
25929
26029
  this.fullOptionList = [];
25930
26030
  this.fullGroupList = value;
25931
- this.updateCache();
26031
+ this.cacheItemMap();
25932
26032
  }
25933
26033
  },
25934
26034
  created: function created() {
@@ -25941,7 +26041,7 @@ function select_renderOpts(h, _vm) {
25941
26041
  this.fullOptionList = options;
25942
26042
  }
25943
26043
 
25944
- this.updateCache();
26044
+ this.cacheItemMap();
25945
26045
  GlobalEvent.on(this, 'mousewheel', this.handleGlobalMousewheelEvent);
25946
26046
  GlobalEvent.on(this, 'mousedown', this.handleGlobalMousedownEvent);
25947
26047
  GlobalEvent.on(this, 'keydown', this.handleGlobalKeydownEvent);
@@ -26031,7 +26131,7 @@ function select_renderOpts(h, _vm) {
26031
26131
 
26032
26132
  return [];
26033
26133
  },
26034
- updateCache: function updateCache() {
26134
+ cacheItemMap: function cacheItemMap() {
26035
26135
  var _this2 = this;
26036
26136
 
26037
26137
  var fullOptionList = this.fullOptionList,
@@ -27317,9 +27417,6 @@ var es_string_repeat = __webpack_require__("38cf");
27317
27417
 
27318
27418
 
27319
27419
 
27320
-
27321
-
27322
-
27323
27420
 
27324
27421
 
27325
27422
 
@@ -27998,13 +28095,21 @@ function saveLocalFile(options) {
27998
28095
  if (navigator.msSaveBlob) {
27999
28096
  navigator.msSaveBlob(blob, name);
28000
28097
  } else {
28098
+ var url = URL.createObjectURL(blob);
28001
28099
  var linkElem = document.createElement('a');
28002
28100
  linkElem.target = '_blank';
28003
28101
  linkElem.download = name;
28004
- linkElem.href = URL.createObjectURL(blob);
28102
+ linkElem.href = url;
28005
28103
  document.body.appendChild(linkElem);
28006
28104
  linkElem.click();
28007
28105
  document.body.removeChild(linkElem);
28106
+ requestAnimationFrame(function () {
28107
+ if (linkElem.parentNode) {
28108
+ linkElem.parentNode.removeChild(linkElem);
28109
+ }
28110
+
28111
+ URL.revokeObjectURL(url);
28112
+ });
28008
28113
  }
28009
28114
 
28010
28115
  return Promise.resolve();
@@ -28033,6 +28138,9 @@ function downloadFile($xetable, opts, content) {
28033
28138
  content: content
28034
28139
  }).then(function () {
28035
28140
  if (opts.message !== false) {
28141
+ // 检测弹窗模块
28142
+ if (false) {}
28143
+
28036
28144
  v_x_e_table.modal.message({
28037
28145
  content: conf.i18n('vxe.table.expSuccess'),
28038
28146
  status: 'success'
@@ -28333,6 +28441,9 @@ function handleImport($xetable, content, opts) {
28333
28441
  }
28334
28442
 
28335
28443
  if (opts.message !== false) {
28444
+ // 检测弹窗模块
28445
+ if (false) {}
28446
+
28336
28447
  v_x_e_table.modal.message({
28337
28448
  content: conf.i18n('vxe.table.impSuccess', [rows.length]),
28338
28449
  status: 'success'
@@ -28348,6 +28459,9 @@ function handleImport($xetable, content, opts) {
28348
28459
  });
28349
28460
  });
28350
28461
  } else if (opts.message !== false) {
28462
+ // 检测弹窗模块
28463
+ if (false) {}
28464
+
28351
28465
  v_x_e_table.modal.message({
28352
28466
  content: conf.i18n('vxe.error.impFields'),
28353
28467
  status: 'error'
@@ -28372,6 +28486,9 @@ function handleFileImport($xetable, file, opts) {
28372
28486
 
28373
28487
  if (!importMethod && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.includes(v_x_e_table.config.importTypes, type)) {
28374
28488
  if (opts.message !== false) {
28489
+ // 检测弹窗模块
28490
+ if (false) {}
28491
+
28375
28492
  v_x_e_table.modal.message({
28376
28493
  content: conf.i18n('vxe.error.notType', [type]),
28377
28494
  status: 'error'
@@ -28532,6 +28649,9 @@ function readLocalFile() {
28532
28649
  });
28533
28650
  } else {
28534
28651
  if (options.message !== false) {
28652
+ // 检测弹窗模块
28653
+ if (false) {}
28654
+
28535
28655
  v_x_e_table.modal.message({
28536
28656
  content: conf.i18n('vxe.error.notType', [errType]),
28537
28657
  status: 'error'
@@ -29672,9 +29792,6 @@ var Keyboard = {
29672
29792
 
29673
29793
 
29674
29794
 
29675
-
29676
-
29677
-
29678
29795
  /**
29679
29796
  * 校验规则
29680
29797
  */
@@ -29702,9 +29819,14 @@ var mixin_Rule = /*#__PURE__*/function () {
29702
29819
 
29703
29820
 
29704
29821
  _createClass(Rule, [{
29822
+ key: "content",
29823
+ get: function get() {
29824
+ return UtilTools.getFuncText(this.$options.content || this.$options.message);
29825
+ }
29826
+ }, {
29705
29827
  key: "message",
29706
29828
  get: function get() {
29707
- return UtilTools.getFuncText(this.$options.message);
29829
+ return this.content;
29708
29830
  }
29709
29831
  }]);
29710
29832
 
@@ -29989,7 +30111,7 @@ function validErrorRuleValue(rule, val) {
29989
30111
  errorRules.push(new mixin_Rule({
29990
30112
  type: 'custom',
29991
30113
  trigger: trigger,
29992
- message: customValid.message,
30114
+ content: customValid.message,
29993
30115
  rule: new mixin_Rule(rule)
29994
30116
  }));
29995
30117
  } else if (customValid.catch) {
@@ -29999,7 +30121,7 @@ function validErrorRuleValue(rule, val) {
29999
30121
  errorRules.push(new mixin_Rule({
30000
30122
  type: 'custom',
30001
30123
  trigger: trigger,
30002
- message: e && e.message ? e.message : rule.message,
30124
+ content: e && e.message ? e.message : rule.content || rule.message,
30003
30125
  rule: new mixin_Rule(rule)
30004
30126
  }));
30005
30127
  }));
@@ -30111,7 +30233,7 @@ function validErrorRuleValue(rule, val) {
30111
30233
  column = params.column,
30112
30234
  cell = params.cell;
30113
30235
  var validTip = $refs.validTip;
30114
- var content = rule.message;
30236
+ var content = rule.content;
30115
30237
  return this.$nextTick(function () {
30116
30238
  Object.assign(_this5.validStore, {
30117
30239
  row: row,
@@ -30290,7 +30412,8 @@ var cellType = 'header';
30290
30412
  overflowX = $xetable.overflowX,
30291
30413
  scrollbarWidth = $xetable.scrollbarWidth,
30292
30414
  sortOpts = $xetable.sortOpts,
30293
- mouseConfig = $xetable.mouseConfig;
30415
+ mouseConfig = $xetable.mouseConfig,
30416
+ columnOpts = $xetable.columnOpts;
30294
30417
  var tableColumn = this.tableColumn;
30295
30418
  var headerGroups = headerColumn; // 如果是使用优化模式
30296
30419
 
@@ -30439,7 +30562,7 @@ var cellType = 'header';
30439
30562
  /**
30440
30563
  * 列宽拖动
30441
30564
  */
30442
- !fixedHiddenColumn && !isColGroup && (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isBoolean(column.resizable) ? column.resizable : resizable) ? h('div', {
30565
+ !fixedHiddenColumn && !isColGroup && (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default.a.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || resizable) ? h('div', {
30443
30566
  class: ['vxe-resizable', {
30444
30567
  'is--line': !border || border === 'none'
30445
30568
  }],
@@ -31138,8 +31261,6 @@ var Colgroup = Object.assign(src_group, {
31138
31261
 
31139
31262
 
31140
31263
 
31141
-
31142
-
31143
31264
  var grid_methods = {};
31144
31265
  var propKeys = Object.keys(packages_table.props);
31145
31266
 
@@ -31907,6 +32028,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
31907
32028
  });
31908
32029
 
31909
32030
  if (isMsg) {
32031
+ // 检测弹窗模块
32032
+ if (false) {}
32033
+
31910
32034
  v_x_e_table.modal.message({
31911
32035
  content: _this5.getRespMsg(rest, 'vxe.grid.delSuccess'),
31912
32036
  status: 'success'
@@ -31922,6 +32046,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
31922
32046
  _this5.tableLoading = false;
31923
32047
 
31924
32048
  if (isMsg) {
32049
+ // 检测弹窗模块
32050
+ if (false) {}
32051
+
31925
32052
  v_x_e_table.modal.message({
31926
32053
  id: code,
31927
32054
  content: _this5.getRespMsg(rest, 'vxe.grid.operError'),
@@ -31932,6 +32059,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
31932
32059
  });
31933
32060
  } else {
31934
32061
  if (isMsg) {
32062
+ // 检测弹窗模块
32063
+ if (false) {}
32064
+
31935
32065
  v_x_e_table.modal.message({
31936
32066
  id: code,
31937
32067
  content: conf.i18n('vxe.grid.selectOneRecord'),
@@ -31991,6 +32121,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
31991
32121
  _this5.pendingRecords = [];
31992
32122
 
31993
32123
  if (isMsg) {
32124
+ // 检测弹窗模块
32125
+ if (false) {}
32126
+
31994
32127
  v_x_e_table.modal.message({
31995
32128
  content: _this5.getRespMsg(rest, 'vxe.grid.saveSuccess'),
31996
32129
  status: 'success'
@@ -32006,6 +32139,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
32006
32139
  _this5.tableLoading = false;
32007
32140
 
32008
32141
  if (isMsg) {
32142
+ // 检测弹窗模块
32143
+ if (false) {}
32144
+
32009
32145
  v_x_e_table.modal.message({
32010
32146
  id: code,
32011
32147
  content: _this5.getRespMsg(rest, 'vxe.grid.operError'),
@@ -32015,6 +32151,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
32015
32151
  });
32016
32152
  } else {
32017
32153
  if (isMsg) {
32154
+ // 检测弹窗模块
32155
+ if (false) {}
32156
+
32018
32157
  v_x_e_table.modal.message({
32019
32158
  id: code,
32020
32159
  content: conf.i18n('vxe.grid.dataUnchanged'),
@@ -32075,6 +32214,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
32075
32214
  }
32076
32215
  });
32077
32216
  } else {
32217
+ // 检测弹窗模块
32218
+ if (false) {}
32219
+
32078
32220
  v_x_e_table.modal.message({
32079
32221
  id: "msg_".concat(code),
32080
32222
  content: conf.i18n('vxe.grid.selectOneRecord'),
@@ -32150,6 +32292,9 @@ Object.keys(packages_table.methods).forEach(function (name) {
32150
32292
  this.clearCheckboxRow();
32151
32293
  } else {
32152
32294
  if (isMsg) {
32295
+ // 检测弹窗模块
32296
+ if (false) {}
32297
+
32153
32298
  v_x_e_table.modal.message({
32154
32299
  id: code,
32155
32300
  content: conf.i18n('vxe.grid.selectOneRecord'),
@@ -35151,9 +35296,9 @@ function renderTitle(h, _vm, item) {
35151
35296
  var titVNs = [];
35152
35297
 
35153
35298
  if (titlePrefix) {
35154
- titVNs.push(titlePrefix.message ? h('vxe-tooltip', {
35299
+ titVNs.push(titlePrefix.content || titlePrefix.message ? h('vxe-tooltip', {
35155
35300
  props: {
35156
- content: UtilTools.getFuncText(titlePrefix.message),
35301
+ content: UtilTools.getFuncText(titlePrefix.content || titlePrefix.message),
35157
35302
  enterable: titlePrefix.enterable,
35158
35303
  theme: titlePrefix.theme
35159
35304
  }
@@ -35169,9 +35314,9 @@ function renderTitle(h, _vm, item) {
35169
35314
  var fixVNs = [];
35170
35315
 
35171
35316
  if (titleSuffix) {
35172
- fixVNs.push(titleSuffix.message ? h('vxe-tooltip', {
35317
+ fixVNs.push(titleSuffix.content || titleSuffix.message ? h('vxe-tooltip', {
35173
35318
  props: {
35174
- content: UtilTools.getFuncText(titleSuffix.message),
35319
+ content: UtilTools.getFuncText(titleSuffix.content || titleSuffix.message),
35175
35320
  enterable: titleSuffix.enterable,
35176
35321
  theme: titleSuffix.theme
35177
35322
  }
@@ -35208,9 +35353,6 @@ function renderTitle(h, _vm, item) {
35208
35353
 
35209
35354
 
35210
35355
 
35211
-
35212
-
35213
-
35214
35356
 
35215
35357
 
35216
35358
 
@@ -35233,9 +35375,14 @@ var form_Rule = /*#__PURE__*/function () {
35233
35375
  }
35234
35376
 
35235
35377
  _createClass(Rule, [{
35378
+ key: "content",
35379
+ get: function get() {
35380
+ return UtilTools.getFuncText(this.$options.content || this.$options.message);
35381
+ }
35382
+ }, {
35236
35383
  key: "message",
35237
35384
  get: function get() {
35238
- return UtilTools.getFuncText(this.$options.message);
35385
+ return this.content;
35239
35386
  }
35240
35387
  }]);
35241
35388
 
@@ -35404,7 +35551,7 @@ function renderItems(h, _vm, itemList) {
35404
35551
  style: errRule.maxWidth ? {
35405
35552
  width: "".concat(errRule.maxWidth, "px")
35406
35553
  } : null
35407
- }, errRule.message) : null]))])]);
35554
+ }, errRule.content) : null]))])]);
35408
35555
  });
35409
35556
  }
35410
35557
 
@@ -35424,7 +35571,12 @@ function renderItems(h, _vm, itemList) {
35424
35571
  return conf.form.size || conf.size;
35425
35572
  }
35426
35573
  },
35427
- span: [String, Number],
35574
+ span: {
35575
+ type: [String, Number],
35576
+ default: function _default() {
35577
+ return conf.form.span;
35578
+ }
35579
+ },
35428
35580
  align: {
35429
35581
  type: String,
35430
35582
  default: function _default() {
@@ -35437,7 +35589,12 @@ function renderItems(h, _vm, itemList) {
35437
35589
  return conf.form.titleAlign;
35438
35590
  }
35439
35591
  },
35440
- titleWidth: [String, Number],
35592
+ titleWidth: {
35593
+ type: [String, Number],
35594
+ default: function _default() {
35595
+ return conf.form.titleWidth;
35596
+ }
35597
+ },
35441
35598
  titleColon: {
35442
35599
  type: Boolean,
35443
35600
  default: function _default() {
@@ -35914,7 +36071,7 @@ function renderItems(h, _vm, itemList) {
35914
36071
  errorRules.push(new form_Rule({
35915
36072
  type: 'custom',
35916
36073
  trigger: trigger,
35917
- message: customValid.message,
36074
+ content: customValid.message,
35918
36075
  rule: new form_Rule(rule)
35919
36076
  }));
35920
36077
  } else if (customValid.catch) {
@@ -35923,7 +36080,7 @@ function renderItems(h, _vm, itemList) {
35923
36080
  errorRules.push(new form_Rule({
35924
36081
  type: 'custom',
35925
36082
  trigger: trigger,
35926
- message: e ? e.message : rule.message,
36083
+ content: e ? e.message : rule.content || rule.message,
35927
36084
  rule: new form_Rule(rule)
35928
36085
  }));
35929
36086
  }));