vxe-pc-ui 3.15.25 → 3.15.26

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 (49) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/list/src/list.js +560 -13
  3. package/es/list/src/util.js +8 -0
  4. package/es/list/style.css +10 -4
  5. package/es/list/style.min.css +1 -1
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/ui/index.js +4 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/es/vxe-list/style.css +10 -4
  11. package/es/vxe-list/style.min.css +1 -1
  12. package/lib/icon/style/style.css +1 -1
  13. package/lib/icon/style/style.min.css +1 -1
  14. package/lib/index.umd.js +652 -16
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/list/src/list.js +605 -11
  17. package/lib/list/src/list.min.js +1 -1
  18. package/lib/list/src/util.js +14 -0
  19. package/lib/list/src/util.min.js +1 -0
  20. package/lib/list/style/style.css +10 -4
  21. package/lib/list/style/style.min.css +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/ui/index.js +4 -1
  25. package/lib/ui/index.min.js +1 -1
  26. package/lib/ui/src/log.js +1 -1
  27. package/lib/ui/src/log.min.js +1 -1
  28. package/lib/vxe-list/style/style.css +10 -4
  29. package/lib/vxe-list/style/style.min.css +1 -1
  30. package/package.json +1 -1
  31. package/packages/list/src/list.ts +588 -13
  32. package/packages/list/src/util.ts +11 -0
  33. package/packages/ui/index.ts +3 -0
  34. package/styles/components/list.scss +8 -4
  35. package/types/components/list.d.ts +120 -4
  36. package/types/components/tree.d.ts +3 -7
  37. package/types/ui/menus.d.ts +13 -1
  38. /package/es/icon/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
  39. /package/es/icon/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
  40. /package/es/icon/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
  41. /package/es/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
  42. /package/es/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
  43. /package/es/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
  44. /package/lib/icon/style/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
  45. /package/lib/icon/style/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
  46. /package/lib/icon/style/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
  47. /package/lib/{iconfont.1783247770465.ttf → iconfont.1783301643461.ttf} +0 -0
  48. /package/lib/{iconfont.1783247770465.woff → iconfont.1783301643461.woff} +0 -0
  49. /package/lib/{iconfont.1783247770465.woff2 → iconfont.1783301643461.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -5711,6 +5711,36 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
5711
5711
  });
5712
5712
 
5713
5713
 
5714
+ /***/ }),
5715
+
5716
+ /***/ 8980:
5717
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5718
+
5719
+ "use strict";
5720
+
5721
+ var $ = __webpack_require__(6518);
5722
+ var $findIndex = (__webpack_require__(9213).findIndex);
5723
+ var addToUnscopables = __webpack_require__(6469);
5724
+
5725
+ var FIND_INDEX = 'findIndex';
5726
+ var SKIPS_HOLES = true;
5727
+
5728
+ // Shouldn't skip holes
5729
+ // eslint-disable-next-line es/no-array-prototype-findindex -- testing
5730
+ if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });
5731
+
5732
+ // `Array.prototype.findIndex` method
5733
+ // https://tc39.es/ecma262/#sec-array.prototype.findindex
5734
+ $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
5735
+ findIndex: function findIndex(callbackfn /* , that = undefined */) {
5736
+ return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
5737
+ }
5738
+ });
5739
+
5740
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
5741
+ addToUnscopables(FIND_INDEX);
5742
+
5743
+
5714
5744
  /***/ }),
5715
5745
 
5716
5746
  /***/ 113:
@@ -13226,7 +13256,7 @@ var es_array_join = __webpack_require__(8598);
13226
13256
 
13227
13257
 
13228
13258
  var log_log = VxeUI.log;
13229
- var uiVersion = "ui v".concat("3.15.25");
13259
+ var uiVersion = "ui v".concat("3.15.26");
13230
13260
  function createComponentLog(name) {
13231
13261
  var tableVersion = VxeUI.tableVersion ? "table v".concat(VxeUI.tableVersion) : '';
13232
13262
  var ganttVersion = VxeUI.ganttVersion ? "gantt v".concat(VxeUI.ganttVersion) : '';
@@ -13244,7 +13274,7 @@ var errLog = log_log.create('error', uiVersion);
13244
13274
 
13245
13275
 
13246
13276
 
13247
- var ui_version = "3.15.25";
13277
+ var ui_version = "3.15.26";
13248
13278
  VxeUI.uiVersion = ui_version;
13249
13279
  VxeUI.dynamicApp = dynamicApp;
13250
13280
  function config(options) {
@@ -13467,6 +13497,9 @@ setConfig({
13467
13497
  listView: {},
13468
13498
  list: {
13469
13499
  // size: null,
13500
+ rowConfig: {
13501
+ contentField: 'label'
13502
+ },
13470
13503
  dragConfig: {
13471
13504
  showIcon: true,
13472
13505
  animation: true,
@@ -21330,6 +21363,8 @@ function enNodeValue(nodeid) {
21330
21363
  function deNodeValue(nodeid) {
21331
21364
  return nodeid ? decodeURIComponent("".concat(nodeid)) : nodeid;
21332
21365
  }
21366
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find-index.js
21367
+ var es_array_find_index = __webpack_require__(8980);
21333
21368
  ;// ./packages/list/src/store.ts
21334
21369
  // 跨表拖拽
21335
21370
  var crossListDragRowGlobal = {
@@ -21403,6 +21438,15 @@ function clearColAnimate(elem, clss) {
21403
21438
  }
21404
21439
  }, 500);
21405
21440
  }
21441
+ ;// ./packages/list/src/util.ts
21442
+ function getItemCacheObj(item) {
21443
+ return {
21444
+ item: item,
21445
+ index: -1,
21446
+ $index: -1,
21447
+ _index: -1
21448
+ };
21449
+ }
21406
21450
  ;// ./packages/list/src/list.ts
21407
21451
 
21408
21452
 
@@ -21431,12 +21475,17 @@ function clearColAnimate(elem, clss) {
21431
21475
 
21432
21476
 
21433
21477
 
21478
+
21479
+
21480
+
21434
21481
 
21435
21482
 
21436
21483
 
21437
21484
 
21438
21485
  var list_createComponentLog = createComponentLog('tree'),
21486
+ list_warnLog = list_createComponentLog.warnLog,
21439
21487
  list_errLog = list_createComponentLog.errLog;
21488
+ var crossListDragRowObj = null;
21440
21489
  function eqRowKey(rowKey1, rowKey2) {
21441
21490
  return '' + rowKey1 === '' + rowKey2;
21442
21491
  }
@@ -21466,15 +21515,20 @@ function list_createReactData() {
21466
21515
  updateCheckboxFlag: 1,
21467
21516
  isAllChecked: false,
21468
21517
  isAllIndeterminate: false,
21518
+ insertRowFlag: 1,
21519
+ removeRowFlag: 1,
21469
21520
  dragRow: null,
21470
- dragTipText: ''
21521
+ dragTipText: '',
21522
+ isCrossDragRow: false
21471
21523
  };
21472
21524
  }
21473
21525
  function list_createInternalData() {
21474
21526
  return {
21475
21527
  resizeObserver: undefined,
21476
21528
  fullData: [],
21529
+ afterList: [],
21477
21530
  fullKeyMaps: {},
21531
+ rowMaps: {},
21478
21532
  lastScrollLeft: 0,
21479
21533
  lastScrollTop: 0,
21480
21534
  scrollYStore: {
@@ -21485,7 +21539,9 @@ function list_createInternalData() {
21485
21539
  rowHeight: 0
21486
21540
  },
21487
21541
  currentRow: null,
21488
- selectCheckboxMaps: {}
21542
+ selectCheckboxMaps: {},
21543
+ insertRowMaps: {},
21544
+ removeRowMaps: {}
21489
21545
  // prevDragRow: null,
21490
21546
  // prevDragPos: ''
21491
21547
  };
@@ -21512,6 +21568,12 @@ function list_createInternalData() {
21512
21568
  }
21513
21569
  },
21514
21570
  syncResize: [Boolean, String, Number],
21571
+ showSeq: {
21572
+ type: Boolean,
21573
+ default: function _default() {
21574
+ return getConfig().list.showSeq;
21575
+ }
21576
+ },
21515
21577
  showRadio: {
21516
21578
  type: Boolean,
21517
21579
  default: function _default() {
@@ -21530,6 +21592,7 @@ function list_createInternalData() {
21530
21592
  checkboxConfig: Object,
21531
21593
  rowConfig: Object,
21532
21594
  dragConfig: Object,
21595
+ menuConfig: Object,
21533
21596
  virtualYConfig: Object,
21534
21597
  scrollY: Object
21535
21598
  },
@@ -21592,6 +21655,11 @@ function list_createInternalData() {
21592
21655
  showIcon: true
21593
21656
  }, getConfig().list.checkboxConfig, props.checkboxConfig);
21594
21657
  },
21658
+ computeMenuOpts: function computeMenuOpts() {
21659
+ var $xeList = this;
21660
+ var props = $xeList;
21661
+ return Object.assign({}, getConfig().list.menuConfig, props.menuConfig);
21662
+ },
21595
21663
  computeWrapperStyles: function computeWrapperStyles() {
21596
21664
  var $xeList = this;
21597
21665
  var rowHeight = $xeList.computeRowHeight;
@@ -21700,6 +21768,30 @@ function list_createInternalData() {
21700
21768
  internalData.selectCheckboxMaps = selectMaps;
21701
21769
  $xeList.updateCheckboxStatus();
21702
21770
  },
21771
+ updateAfterDataIndex: function updateAfterDataIndex() {
21772
+ var $xeList = this;
21773
+ var internalData = $xeList.internalData;
21774
+ var afterList = internalData.afterList,
21775
+ rowMaps = internalData.rowMaps;
21776
+ var keyField = $xeList.computeKeyField;
21777
+ var vtIndex = 0;
21778
+ afterList.forEach(function (item, index) {
21779
+ var roweid = getRowIdByField(item, keyField);
21780
+ var rowRest = rowMaps[roweid];
21781
+ if (rowRest) {
21782
+ rowRest._index = vtIndex;
21783
+ } else {
21784
+ var rest = {
21785
+ item: item,
21786
+ index: index,
21787
+ $index: -1,
21788
+ _index: vtIndex
21789
+ };
21790
+ rowMaps[roweid] = rest;
21791
+ }
21792
+ vtIndex++;
21793
+ });
21794
+ },
21703
21795
  cacheRowMap: function cacheRowMap() {
21704
21796
  var $xeList = this;
21705
21797
  var internalData = $xeList.internalData;
@@ -21722,17 +21814,21 @@ function list_createInternalData() {
21722
21814
  var internalData = $xeList.internalData;
21723
21815
  var scrollYStore = internalData.scrollYStore;
21724
21816
  var sYOpts = $xeList.computeSYOpts;
21725
- var fullData = datas || [];
21817
+ var fullData = datas ? datas.slice(0) : [];
21726
21818
  Object.assign(scrollYStore, {
21727
21819
  startIndex: 0,
21728
21820
  endIndex: 1,
21729
21821
  visibleSize: 0
21730
21822
  });
21731
21823
  internalData.fullData = fullData;
21824
+ internalData.insertRowMaps = {};
21825
+ reactData.insertRowFlag++;
21826
+ internalData.removeRowMaps = {};
21827
+ reactData.removeRowFlag++;
21732
21828
  // 如果gt为0,则总是启用
21733
21829
  reactData.scrollYLoad = !!sYOpts.enabled && sYOpts.gt > -1 && (sYOpts.gt === 0 || sYOpts.gt <= fullData.length);
21734
21830
  $xeList.cacheRowMap();
21735
- $xeList.handleData();
21831
+ $xeList.handleData(true);
21736
21832
  $xeList.updateRadioModeValue();
21737
21833
  $xeList.updateCheckboxModeValue();
21738
21834
  return $xeList.computeScrollLoad().then(function () {
@@ -21795,14 +21891,37 @@ function list_createInternalData() {
21795
21891
  reactData.bodyHeight = scrollYLoad ? fullData.length * scrollYStore.rowHeight : 0;
21796
21892
  reactData.topSpaceHeight = scrollYLoad ? Math.max(scrollYStore.startIndex * scrollYStore.rowHeight, 0) : 0;
21797
21893
  },
21798
- handleData: function handleData() {
21894
+ updateAfterFullData: function updateAfterFullData() {
21895
+ var $xeList = this;
21896
+ var internalData = $xeList.internalData;
21897
+ var fullData = internalData.fullData;
21898
+ internalData.afterList = fullData.slice(0);
21899
+ $xeList.updateAfterDataIndex();
21900
+ },
21901
+ handleData: function handleData(force) {
21799
21902
  var $xeList = this;
21800
21903
  var reactData = $xeList.reactData;
21801
21904
  var internalData = $xeList.internalData;
21802
21905
  var scrollYLoad = reactData.scrollYLoad;
21803
21906
  var fullData = internalData.fullData,
21804
- scrollYStore = internalData.scrollYStore;
21805
- reactData.rowList = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
21907
+ scrollYStore = internalData.scrollYStore,
21908
+ rowMaps = internalData.rowMaps;
21909
+ var keyField = $xeList.computeKeyField;
21910
+ if (force) {
21911
+ // 更新数据,处理筛选和排序
21912
+ $xeList.updateAfterFullData();
21913
+ }
21914
+ var rowList = scrollYLoad ? fullData.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullData.slice(0);
21915
+ if (keyField) {
21916
+ rowList.forEach(function (item, $index) {
21917
+ var rowid = getRowIdByField(item, keyField);
21918
+ var rowRest = rowMaps[rowid];
21919
+ if (rowRest) {
21920
+ rowRest.$index = $index;
21921
+ }
21922
+ });
21923
+ }
21924
+ reactData.rowList = rowList;
21806
21925
  return $xeList.$nextTick();
21807
21926
  },
21808
21927
  updateYData: function updateYData() {
@@ -22405,6 +22524,12 @@ function list_createInternalData() {
22405
22524
  checked: isChecked
22406
22525
  }, evnt);
22407
22526
  },
22527
+ handleRowDragEndClearStatus: function handleRowDragEndClearStatus() {
22528
+ var $xeList = this;
22529
+ $xeList.clearRowDragData();
22530
+ $xeList.clearCrossListDragStatus();
22531
+ $xeList.recalculate();
22532
+ },
22408
22533
  clearRowDropOrigin: function clearRowDropOrigin() {
22409
22534
  var $xeList = this;
22410
22535
  var el = $xeList.$refs.refElem;
@@ -22462,7 +22587,7 @@ function list_createInternalData() {
22462
22587
  clearCrossListDragStatus: function clearCrossListDragStatus() {
22463
22588
  var $xeList = this;
22464
22589
  var crossListDragRowInfo = getCrossListDragRowInfo($xeList);
22465
- // crossListDragRowObj = null
22590
+ crossListDragRowObj = null;
22466
22591
  crossListDragRowInfo.row = null;
22467
22592
  },
22468
22593
  clearDragStatus: function clearDragStatus() {
@@ -22479,10 +22604,12 @@ function list_createInternalData() {
22479
22604
  handleRowDragMousedownEvent: function handleRowDragMousedownEvent(evnt, params) {
22480
22605
  var $xeList = this;
22481
22606
  var reactData = $xeList.reactData;
22607
+ var crossListDragRowInfo = getCrossListDragRowInfo($xeList);
22482
22608
  evnt.stopPropagation();
22483
22609
  var row = params.row;
22484
22610
  var dragConfig = $xeList.computeDragOpts;
22485
- var trigger = dragConfig.trigger,
22611
+ var isCrossListDrag = dragConfig.isCrossListDrag,
22612
+ trigger = dragConfig.trigger,
22486
22613
  dragStartMethod = dragConfig.dragStartMethod;
22487
22614
  var dragEl = evnt.currentTarget;
22488
22615
  var rowEl = trigger === 'row' ? dragEl : dragEl.parentElement.parentElement;
@@ -22493,6 +22620,13 @@ function list_createInternalData() {
22493
22620
  $xeList.hideDropTip();
22494
22621
  return;
22495
22622
  }
22623
+ if (isCrossListDrag) {
22624
+ crossListDragRowInfo.row = row;
22625
+ crossListDragRowObj = {
22626
+ $oldList: $xeList,
22627
+ $newList: null
22628
+ };
22629
+ }
22496
22630
  var dragstartEventParams = {
22497
22631
  row: row
22498
22632
  };
@@ -22707,6 +22841,17 @@ function list_createInternalData() {
22707
22841
  var dragRow = reactData.dragRow;
22708
22842
  var prevDragRow = internalData.prevDragRow,
22709
22843
  prevDragPos = internalData.prevDragPos;
22844
+ var dragConfig = $xeList.computeDragOpts;
22845
+ var isCrossListDrag = dragConfig.isCrossListDrag;
22846
+ // 跨列表拖拽
22847
+ if (isCrossListDrag && crossListDragRowObj) {
22848
+ var _crossListDragRowObj = crossListDragRowObj,
22849
+ $newList = _crossListDragRowObj.$newList;
22850
+ if ($newList && $newList.xID !== $xeList.xID) {
22851
+ $newList.handleCrossListRowDragInsertEvent(evnt);
22852
+ return;
22853
+ }
22854
+ }
22710
22855
  $xeList.handleRowDragSwapEvent(evnt, dragRow, prevDragRow, prevDragPos);
22711
22856
  },
22712
22857
  handleRowDragDragoverEvent: function handleRowDragDragoverEvent(evnt) {
@@ -22805,6 +22950,477 @@ function list_createInternalData() {
22805
22950
  row: row
22806
22951
  }, evnt);
22807
22952
  },
22953
+ insertListRow: function insertListRow(newRecords, isAppend) {
22954
+ var $xeList = this;
22955
+ var internalData = $xeList.internalData;
22956
+ var fullData = internalData.fullData,
22957
+ rowMaps = internalData.rowMaps;
22958
+ var keyField = $xeList.computeKeyField;
22959
+ var funcName = isAppend ? 'push' : 'unshift';
22960
+ newRecords.forEach(function (item) {
22961
+ var rowid = getRowIdByField(item, keyField);
22962
+ var rowRest = getItemCacheObj(item);
22963
+ fullData[funcName](item);
22964
+ rowMaps[rowid] = rowRest;
22965
+ });
22966
+ },
22967
+ handleInsertRowAt: function handleInsertRowAt(records, targetRowOrRowKey, isInsertNextRow) {
22968
+ var $xeList = this;
22969
+ var reactData = $xeList.reactData;
22970
+ var internalData = $xeList.internalData;
22971
+ var fullData = internalData.fullData,
22972
+ rowMaps = internalData.rowMaps,
22973
+ removeRowMaps = internalData.removeRowMaps,
22974
+ insertRowMaps = internalData.insertRowMaps;
22975
+ var keyField = $xeList.computeKeyField;
22976
+ if (!keyField) {
22977
+ list_errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'row-config.keyField']);
22978
+ return Promise.resolve({
22979
+ row: null,
22980
+ rows: []
22981
+ });
22982
+ }
22983
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(records)) {
22984
+ records = [records];
22985
+ }
22986
+ var targetRow = targetRowOrRowKey;
22987
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(targetRowOrRowKey) || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(targetRowOrRowKey)) {
22988
+ var rowRest = rowMaps[targetRowOrRowKey];
22989
+ if (rowRest) {
22990
+ targetRow = rowRest.item;
22991
+ }
22992
+ }
22993
+ if (!records.length) {
22994
+ return Promise.resolve({
22995
+ row: null,
22996
+ rows: []
22997
+ });
22998
+ }
22999
+ var newRecords = records.map(function (record) {
23000
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign({}, record);
23001
+ });
23002
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(targetRow)) {
23003
+ $xeList.insertListRow(newRecords, false);
23004
+ } else {
23005
+ if (targetRow === -1) {
23006
+ $xeList.insertListRow(newRecords, true);
23007
+ } else {
23008
+ var rowIndex = fullData.findIndex(function (item) {
23009
+ return targetRow[keyField] === item[keyField];
23010
+ });
23011
+ if (rowIndex > -1) {
23012
+ newRecords.forEach(function (item) {
23013
+ var rowid = getRowIdByField(item, keyField);
23014
+ var rowRest = getItemCacheObj(item);
23015
+ rowMaps[rowid] = rowRest;
23016
+ });
23017
+ var targetIndex = rowIndex;
23018
+ if (isInsertNextRow) {
23019
+ targetIndex = targetIndex + 1;
23020
+ }
23021
+ fullData.splice.apply(fullData, [targetIndex, 0].concat(_toConsumableArray(newRecords)));
23022
+ } else {
23023
+ list_warnLog('vxe.error.unableInsert');
23024
+ $xeList.insertListRow(newRecords, true);
23025
+ }
23026
+ }
23027
+ }
23028
+ newRecords.forEach(function (newItem) {
23029
+ var rowid = getRowIdByField(newItem, keyField);
23030
+ // 如果是被删除的数据,则还原状态
23031
+ if (removeRowMaps[rowid]) {
23032
+ delete removeRowMaps[rowid];
23033
+ if (insertRowMaps[rowid]) {
23034
+ delete insertRowMaps[rowid];
23035
+ }
23036
+ } else {
23037
+ insertRowMaps[rowid] = newItem;
23038
+ }
23039
+ });
23040
+ reactData.removeRowFlag++;
23041
+ reactData.insertRowFlag++;
23042
+ $xeList.cacheRowMap();
23043
+ $xeList.handleData(true);
23044
+ $xeList.updateAfterDataIndex();
23045
+ $xeList.updateCheckboxStatus();
23046
+ if (reactData.scrollYLoad) {
23047
+ $xeList.updateYSpace();
23048
+ }
23049
+ return $xeList.$nextTick().then(function () {
23050
+ return {
23051
+ row: newRecords.length ? newRecords[newRecords.length - 1] : null,
23052
+ rows: newRecords
23053
+ };
23054
+ });
23055
+ },
23056
+ insert: function insert(records) {
23057
+ var $xeList = this;
23058
+ return $xeList.handleInsertRowAt(records, null);
23059
+ },
23060
+ insertAt: function insertAt(records, targetRowOrRowKey) {
23061
+ var $xeList = this;
23062
+ return $xeList.handleInsertRowAt(records, targetRowOrRowKey);
23063
+ },
23064
+ insertNextAt: function insertNextAt(records, targetRowOrRowKey) {
23065
+ var $xeList = this;
23066
+ return $xeList.handleInsertRowAt(records, targetRowOrRowKey, true);
23067
+ },
23068
+ getInsertRecords: function getInsertRecords() {
23069
+ var $xeList = this;
23070
+ var internalData = $xeList.internalData;
23071
+ var insertRowMaps = internalData.insertRowMaps;
23072
+ var insertRecords = [];
23073
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(insertRowMaps, function (item) {
23074
+ insertRecords.push(item);
23075
+ });
23076
+ return insertRecords;
23077
+ },
23078
+ isInsertByRow: function isInsertByRow(row) {
23079
+ var $xeList = this;
23080
+ var reactData = $xeList.reactData;
23081
+ var internalData = $xeList.internalData;
23082
+ var rowid = $xeList.getRowId(row);
23083
+ return !!reactData.insertRowFlag && !!internalData.insertRowMaps[rowid];
23084
+ },
23085
+ remove: function remove(rows) {
23086
+ var $xeList = this;
23087
+ var reactData = $xeList.reactData;
23088
+ var internalData = $xeList.internalData;
23089
+ var fullData = internalData.fullData,
23090
+ insertRowMaps = internalData.insertRowMaps,
23091
+ removeRowMaps = internalData.removeRowMaps;
23092
+ var keyField = $xeList.computeKeyField;
23093
+ if (!keyField) {
23094
+ list_errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'row-config.keyField']);
23095
+ return Promise.resolve({
23096
+ row: null,
23097
+ rows: []
23098
+ });
23099
+ }
23100
+ var delList = [];
23101
+ if (!rows) {
23102
+ rows = fullData;
23103
+ } else if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)) {
23104
+ rows = [rows];
23105
+ }
23106
+ if (!rows.length) {
23107
+ return Promise.resolve({
23108
+ row: null,
23109
+ rows: []
23110
+ });
23111
+ }
23112
+ // 如果是新增,则保存记录
23113
+ rows.forEach(function (item) {
23114
+ if (!$xeList.isInsertByRow(item)) {
23115
+ var rowid = $xeList.getRowId(item);
23116
+ removeRowMaps[rowid] = item;
23117
+ }
23118
+ });
23119
+ // 从数据源中移除
23120
+ if (fullData === rows) {
23121
+ rows = delList = fullData.slice(0);
23122
+ internalData.fullData = [];
23123
+ } else {
23124
+ rows.forEach(function (item) {
23125
+ var rowid = $xeList.getRowId(item);
23126
+ var rowIndex = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(fullData, function (item) {
23127
+ return rowid === $xeList.getRowId(item);
23128
+ });
23129
+ if (rowIndex > -1) {
23130
+ var rItems = fullData.splice(rowIndex, 1);
23131
+ delList.push(rItems[0]);
23132
+ }
23133
+ });
23134
+ }
23135
+ // 从新增中移除已删除的数据
23136
+ rows.forEach(function (item) {
23137
+ var rowid = $xeList.getRowId(item);
23138
+ if (insertRowMaps[rowid]) {
23139
+ delete insertRowMaps[rowid];
23140
+ }
23141
+ });
23142
+ reactData.removeRowFlag++;
23143
+ reactData.insertRowFlag++;
23144
+ $xeList.cacheRowMap();
23145
+ $xeList.handleData(true);
23146
+ $xeList.updateAfterDataIndex();
23147
+ $xeList.updateCheckboxStatus();
23148
+ if (reactData.scrollYLoad) {
23149
+ $xeList.updateYSpace();
23150
+ }
23151
+ return $xeList.$nextTick().then(function () {
23152
+ return $xeList.recalculate();
23153
+ }).then(function () {
23154
+ return {
23155
+ row: delList.length ? delList[delList.length - 1] : null,
23156
+ rows: delList
23157
+ };
23158
+ });
23159
+ },
23160
+ getRemoveRecords: function getRemoveRecords() {
23161
+ var $xeList = this;
23162
+ var internalData = $xeList.internalData;
23163
+ var removeRowMaps = internalData.removeRowMaps;
23164
+ var removeRecords = [];
23165
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(removeRowMaps, function (item) {
23166
+ removeRecords.push(item);
23167
+ });
23168
+ return removeRecords;
23169
+ },
23170
+ isRemoveByRow: function isRemoveByRow(row) {
23171
+ var $xeList = this;
23172
+ var reactData = $xeList.reactData;
23173
+ var internalData = $xeList.internalData;
23174
+ var rowid = $xeList.getRowId(row);
23175
+ return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid];
23176
+ },
23177
+ handleCrossListRowDragCancelEvent: function handleCrossListRowDragCancelEvent() {
23178
+ var $xeList = this;
23179
+ $xeList.clearRowDragData();
23180
+ $xeList.clearCrossListDragStatus();
23181
+ },
23182
+ /**
23183
+ * 处理跨树拖拽完成
23184
+ */
23185
+ handleCrossListRowDragFinishEvent: function handleCrossListRowDragFinishEvent(evnt) {
23186
+ var $xeList = this;
23187
+ var reactData = $xeList.reactData;
23188
+ var internalData = $xeList.internalData;
23189
+ var crossListDragRowInfo = getCrossListDragRowInfo($xeList);
23190
+ var rowList = reactData.rowList;
23191
+ var rowMaps = internalData.rowMaps;
23192
+ var dragOpts = $xeList.computeDragOpts;
23193
+ var animation = dragOpts.animation,
23194
+ isCrossListDrag = dragOpts.isCrossListDrag;
23195
+ var el = $xeList.$refs.refElem;
23196
+ if (!el) {
23197
+ return;
23198
+ }
23199
+ if (isCrossListDrag && crossListDragRowObj && crossListDragRowInfo) {
23200
+ var dragRow = crossListDragRowInfo.row;
23201
+ if (dragRow) {
23202
+ var dragRowid = $xeList.getRowId(dragRow);
23203
+ var dragRowRest = rowMaps[dragRowid];
23204
+ var dragRowHeight = 0;
23205
+ var rsIndex = -1;
23206
+ if (dragRowRest) {
23207
+ if (animation) {
23208
+ var oldItemEl = el.querySelector(".vxe-list--row[rowid=\"".concat(dragRowid, "\"]"));
23209
+ var targetItemEl = oldItemEl;
23210
+ if (targetItemEl) {
23211
+ dragRowHeight = targetItemEl.offsetHeight;
23212
+ }
23213
+ }
23214
+ rsIndex = dragRowRest.$index;
23215
+ }
23216
+ var dragRangeList = rsIndex > -1 && rsIndex < rowList.length - 1 ? rowList.slice(rsIndex + 1) : [];
23217
+ var dragList = [dragRow];
23218
+ $xeList.remove(dragList).then(function () {
23219
+ if (animation && dragRowHeight && dragRangeList.length) {
23220
+ var wrapperEl = el;
23221
+ var dtClss = [];
23222
+ dragRangeList.forEach(function (item) {
23223
+ var rowid = $xeList.getRowId(item);
23224
+ dtClss.push(".vxe-list--row[rowid=\"".concat(rowid, "\"]"));
23225
+ });
23226
+ var dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
23227
+ moveRowAnimateToTb(dtTrList, dragRowHeight);
23228
+ }
23229
+ });
23230
+ $xeList.dispatchEvent('row-remove-dragend', {
23231
+ row: dragRow
23232
+ }, evnt);
23233
+ $xeList.handleRowDragEndClearStatus();
23234
+ }
23235
+ }
23236
+ },
23237
+ /**
23238
+ * 处理跨树拖至新的空树
23239
+ */
23240
+ handleCrossListRowDragoverEmptyEvent: function handleCrossListRowDragoverEmptyEvent(evnt) {
23241
+ var $xeList = this;
23242
+ var reactData = $xeList.reactData;
23243
+ var internalData = $xeList.internalData;
23244
+ var rowList = reactData.rowList;
23245
+ var dragOpts = $xeList.computeDragOpts;
23246
+ var isCrossListDrag = dragOpts.isCrossListDrag;
23247
+ if (isCrossListDrag && crossListDragRowObj && !rowList.length) {
23248
+ var _crossListDragRowObj2 = crossListDragRowObj,
23249
+ $oldList = _crossListDragRowObj2.$oldList,
23250
+ $newList = _crossListDragRowObj2.$newList;
23251
+ if ($oldList) {
23252
+ var oldListReactData = $oldList;
23253
+ if ($oldList.xID !== $xeList.xID) {
23254
+ if ($newList && $newList.xID !== $xeList.xID) {
23255
+ $newList.hideCrossListRowDropClearStatus();
23256
+ }
23257
+ evnt.preventDefault();
23258
+ $oldList.hideCrossListRowDropClearStatus();
23259
+ crossListDragRowObj.$newList = $xeList;
23260
+ internalData.prevDragRow = null;
23261
+ reactData.dragTipText = oldListReactData.dragTipText;
23262
+ $xeList.showDropTip(evnt, evnt.currentTarget, true, '');
23263
+ }
23264
+ }
23265
+ }
23266
+ },
23267
+ /**
23268
+ * 处理跨树拖插入
23269
+ */
23270
+ handleCrossListRowDragInsertEvent: function handleCrossListRowDragInsertEvent(evnt) {
23271
+ var $xeList = this;
23272
+ var reactData = $xeList.reactData;
23273
+ var internalData = $xeList.internalData;
23274
+ var crossListDragRowInfo = getCrossListDragRowInfo($xeList);
23275
+ var prevDragRow = internalData.prevDragRow,
23276
+ prevDragPos = internalData.prevDragPos;
23277
+ var dragOpts = $xeList.computeDragOpts;
23278
+ var animation = dragOpts.animation,
23279
+ isCrossListDrag = dragOpts.isCrossListDrag,
23280
+ dragEndMethod = dragOpts.dragEndMethod;
23281
+ // 跨表拖拽
23282
+ if (isCrossListDrag && crossListDragRowObj && crossListDragRowInfo) {
23283
+ var oldRow = crossListDragRowInfo.row;
23284
+ var _crossListDragRowObj3 = crossListDragRowObj,
23285
+ $oldList = _crossListDragRowObj3.$oldList;
23286
+ var el = $xeList.$refs.refElem;
23287
+ if (!el) {
23288
+ return;
23289
+ }
23290
+ if ($oldList && oldRow) {
23291
+ var dragRow = oldRow;
23292
+ var dragOffsetIndex = -1;
23293
+ if (prevDragRow) {
23294
+ dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
23295
+ }
23296
+ var dragParams = {
23297
+ oldRow: dragRow,
23298
+ newRow: prevDragRow,
23299
+ dragRow: dragRow,
23300
+ dragPos: prevDragPos,
23301
+ offsetIndex: dragOffsetIndex
23302
+ };
23303
+ var errRest = {
23304
+ status: false
23305
+ };
23306
+ Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(function (status) {
23307
+ if (!status) {
23308
+ if ($oldList) {
23309
+ if ($oldList.xID !== $xeList.xID) {
23310
+ $oldList.handleCrossListRowDragCancelEvent(evnt);
23311
+ }
23312
+ }
23313
+ $xeList.handleRowDragEndClearStatus();
23314
+ return errRest;
23315
+ }
23316
+ var insertRest = Promise.resolve();
23317
+ var dragList = [dragRow];
23318
+ $oldList.handleCrossListRowDragFinishEvent(evnt);
23319
+ if (prevDragRow) {
23320
+ if (prevDragPos === 'bottom') {
23321
+ insertRest = $xeList.insertNextAt(dragList, prevDragRow);
23322
+ } else {
23323
+ insertRest = $xeList.insertAt(dragList, prevDragRow);
23324
+ }
23325
+ } else {
23326
+ insertRest = $xeList.insert(dragList);
23327
+ }
23328
+ $xeList.dispatchEvent('row-insert-dragend', {
23329
+ oldRow: oldRow,
23330
+ newRow: prevDragRow,
23331
+ dragRow: dragRow,
23332
+ dragPos: prevDragPos,
23333
+ offsetIndex: dragOffsetIndex
23334
+ }, evnt);
23335
+ $xeList.clearRowDragData();
23336
+ insertRest.then(function () {
23337
+ var rowList = reactData.rowList;
23338
+ var rowMaps = internalData.rowMaps;
23339
+ var oldRowid = $xeList.getRowId(dragRow);
23340
+ var oldRowRest = rowMaps[oldRowid];
23341
+ var dragRowHeight = 0;
23342
+ var rsIndex = -1;
23343
+ if (oldRowRest) {
23344
+ if (animation) {
23345
+ var oldItemEl = el.querySelector(".vxe-list--row[rowid=\"".concat(oldRowid, "\"]"));
23346
+ var targetItemEl = oldItemEl;
23347
+ if (targetItemEl) {
23348
+ dragRowHeight = targetItemEl.offsetHeight;
23349
+ }
23350
+ }
23351
+ rsIndex = oldRowRest.$index;
23352
+ }
23353
+ var dragRangeList = rsIndex > -1 ? rowList.slice(rsIndex) : [];
23354
+ if (animation && dragRowHeight && dragRangeList.length) {
23355
+ var wrapperEl = el;
23356
+ var dtClss = [];
23357
+ dragRangeList.forEach(function (item) {
23358
+ var rowid = $xeList.getRowId(item);
23359
+ dtClss.push(".vxe-list--row[rowid=\"".concat(rowid, "\"]"));
23360
+ });
23361
+ var dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
23362
+ moveRowAnimateToTb(dtTrList, -dragRowHeight);
23363
+ }
23364
+ });
23365
+ });
23366
+ }
23367
+ }
23368
+ },
23369
+ hideCrossListRowDropClearStatus: function hideCrossListRowDropClearStatus() {
23370
+ var $xeList = this;
23371
+ $xeList.hideDropTip();
23372
+ },
23373
+ handleContextmenuEvent: function handleContextmenuEvent(evnt, row) {
23374
+ var $xeList = this;
23375
+ var props = $xeList;
23376
+ var reactData = $xeList.reactData;
23377
+ var internalData = $xeList.internalData;
23378
+ var menuConfig = props.menuConfig;
23379
+ var menuOpts = $xeList.computeMenuOpts;
23380
+ var rowOpts = $xeList.computeRowOpts;
23381
+ var isCurrent = rowOpts.isCurrent;
23382
+ if (menuConfig ? isEnableConf(menuOpts) : menuOpts.enabled) {
23383
+ var options = menuOpts.options,
23384
+ visibleMethod = menuOpts.visibleMethod;
23385
+ if (!visibleMethod || visibleMethod({
23386
+ $list: $xeList,
23387
+ options: options,
23388
+ row: row
23389
+ })) {
23390
+ if (isCurrent) {
23391
+ $xeList.changeCurrentEvent(evnt, row);
23392
+ } else if (internalData.currentRow) {
23393
+ internalData.currentRow = null;
23394
+ reactData.currRowFlag++;
23395
+ }
23396
+ if (VxeUI.contextMenu) {
23397
+ VxeUI.contextMenu.openByEvent(evnt, {
23398
+ options: options,
23399
+ events: {
23400
+ optionClick: function optionClick(eventParams) {
23401
+ var option = eventParams.option;
23402
+ var gMenuOpts = menus.get(option.code);
23403
+ var tmMethod = gMenuOpts ? gMenuOpts.listMenuMethod : null;
23404
+ var params = {
23405
+ menu: option,
23406
+ row: row,
23407
+ $event: evnt,
23408
+ $list: $xeList
23409
+ };
23410
+ if (tmMethod) {
23411
+ tmMethod(params, evnt);
23412
+ }
23413
+ $xeList.dispatchEvent('menu-click', params, eventParams.$event);
23414
+ }
23415
+ }
23416
+ });
23417
+ }
23418
+ }
23419
+ }
23420
+ $xeList.dispatchEvent('row-menu', {
23421
+ row: row
23422
+ }, evnt);
23423
+ },
22808
23424
  //
22809
23425
  // Render
22810
23426
  //
@@ -22927,6 +23543,7 @@ function list_createInternalData() {
22927
23543
  var selectCheckboxMaps = internalData.selectCheckboxMaps,
22928
23544
  currentRow = internalData.currentRow;
22929
23545
  var contentSlot = slots.content;
23546
+ var extraSlot = slots.extra;
22930
23547
  var dragOpts = $xeList.computeDragOpts;
22931
23548
  var trigger = dragOpts.trigger,
22932
23549
  icon = dragOpts.icon,
@@ -22988,6 +23605,12 @@ function list_createInternalData() {
22988
23605
  key: 'ct5',
22989
23606
  class: 'vxe-list--row-content'
22990
23607
  }, contentSlot ? contentSlot(rowParams) : contentField ? getText(row[contentField]) : ''));
23608
+ if (extraSlot) {
23609
+ ctVNs.push(h('div', {
23610
+ key: 'ct7',
23611
+ class: 'vxe-list--row-extra'
23612
+ }, extraSlot(rowParams)));
23613
+ }
22991
23614
  var rowOns = {
22992
23615
  mousedown: function mousedown(evnt) {
22993
23616
  $xeList.handleRowMousedownEvent(evnt, row);
@@ -22998,6 +23621,9 @@ function list_createInternalData() {
22998
23621
  },
22999
23622
  dblclick: function dblclick(evnt) {
23000
23623
  $xeList.handleRowDblclickEvent(evnt, row);
23624
+ },
23625
+ contextmenu: function contextmenu(evnt) {
23626
+ $xeList.handleContextmenuEvent(evnt, row);
23001
23627
  }
23002
23628
  };
23003
23629
  // 拖拽行事件
@@ -23042,16 +23668,22 @@ function list_createInternalData() {
23042
23668
  var radioOpts = $xeList.computeRadioOpts;
23043
23669
  var checkboxOpts = $xeList.computeCheckboxOpts;
23044
23670
  var dragOpts = $xeList.computeDragOpts;
23045
- var trigger = dragOpts.trigger;
23671
+ var trigger = dragOpts.trigger,
23672
+ isCrossListDrag = dragOpts.isCrossListDrag;
23046
23673
  var rowOpts = $xeList.computeRowOpts;
23047
23674
  var isHover = rowOpts.isHover,
23048
23675
  padding = rowOpts.padding;
23049
23676
  var showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false;
23677
+ var leOns = {};
23678
+ if (isCrossListDrag && !rowList.length) {
23679
+ leOns.dragover = $xeList.handleCrossListRowDragoverEmptyEvent;
23680
+ }
23050
23681
  return h('div', {
23051
23682
  ref: 'refElem',
23052
23683
  class: ['vxe-list', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
23053
23684
  $list: $xeList
23054
23685
  }) : className : '', _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--loading', loading)],
23686
+ on: leOns,
23055
23687
  style: wrapperStyles
23056
23688
  }, [headerSlot || showDefChekboxHead ? h('div', {
23057
23689
  ref: 'refHeaderElem',
@@ -23172,13 +23804,17 @@ function list_createInternalData() {
23172
23804
  var $xeList = this;
23173
23805
  var props = $xeList;
23174
23806
  var internalData = $xeList.internalData;
23175
- var showRadio = props.showRadio,
23807
+ var showSeq = props.showSeq,
23808
+ showRadio = props.showRadio,
23176
23809
  showCheckbox = props.showCheckbox;
23177
23810
  var rowOpts = $xeList.computeRowOpts;
23178
23811
  var useKey = rowOpts.useKey,
23179
23812
  keyField = rowOpts.keyField;
23180
23813
  var isDrag = $xeList.computeIsDrag;
23181
23814
  if (!keyField) {
23815
+ if (showSeq) {
23816
+ list_errLog('vxe.error.reqSupportProp', ['show-seq', 'row-config.keyField']);
23817
+ }
23182
23818
  if (showRadio) {
23183
23819
  list_errLog('vxe.error.reqSupportProp', ['show-radio', 'row-config.keyField']);
23184
23820
  }
@@ -61257,7 +61893,7 @@ function calcTreeLine($xeTree, node, prevNode) {
61257
61893
  }
61258
61894
  return (rowHeight || 28) * expandSize - (prevNode ? 1 : 12);
61259
61895
  }
61260
- function getItemCacheObj(item) {
61896
+ function util_getItemCacheObj(item) {
61261
61897
  return {
61262
61898
  item: item,
61263
61899
  index: -1,
@@ -61787,7 +62423,7 @@ function insertTreeNode($xeTree, newRecords, isAppend) {
61787
62423
  }, {
61788
62424
  children: mapChildrenField
61789
62425
  }) : null;
61790
- var itemRest = getItemCacheObj(item);
62426
+ var itemRest = util_getItemCacheObj(item);
61791
62427
  if (matchObj) {
61792
62428
  var parentItem = matchObj.item;
61793
62429
  var parentRest = nodeMaps[$xeTree.getNodeId(parentItem)];
@@ -63024,7 +63660,7 @@ function tree_createReactData() {
63024
63660
  });
63025
63661
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(treeRecords, function (item) {
63026
63662
  var nodeid = $xeTree.getNodeId(item);
63027
- var nodeRest = getItemCacheObj(item);
63663
+ var nodeRest = util_getItemCacheObj(item);
63028
63664
  nodeRest.level = parentLevel;
63029
63665
  if (item[childrenField]) {
63030
63666
  item[mapChildrenField] = item[childrenField];