vxe-pc-ui 4.10.49 → 4.10.50

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 (161) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/language/ar-EG.js +2 -1
  3. package/es/language/de-DE.js +2 -1
  4. package/es/language/en-US.js +2 -1
  5. package/es/language/es-ES.js +2 -1
  6. package/es/language/fr-FR.js +2 -1
  7. package/es/language/hu-HU.js +2 -1
  8. package/es/language/hy-AM.js +2 -1
  9. package/es/language/id-ID.js +2 -1
  10. package/es/language/it-IT.js +2 -1
  11. package/es/language/ja-JP.js +2 -1
  12. package/es/language/ko-KR.js +2 -1
  13. package/es/language/ms-MY.js +2 -1
  14. package/es/language/nb-NO.js +2 -1
  15. package/es/language/pt-BR.js +2 -1
  16. package/es/language/ru-RU.js +2 -1
  17. package/es/language/th-TH.js +2 -1
  18. package/es/language/ug-CN.js +2 -1
  19. package/es/language/uk-UA.js +2 -1
  20. package/es/language/uz-UZ.js +2 -1
  21. package/es/language/vi-VN.js +2 -1
  22. package/es/language/zh-CHT.js +2 -1
  23. package/es/language/zh-CN.js +2 -1
  24. package/es/style.css +1 -1
  25. package/es/style.min.css +1 -1
  26. package/es/tree/src/tree.js +640 -25
  27. package/es/tree/style.css +119 -0
  28. package/es/tree/style.min.css +1 -1
  29. package/es/ui/index.js +11 -1
  30. package/es/ui/src/anime.js +46 -0
  31. package/es/ui/src/log.js +1 -1
  32. package/es/vxe-tree/style.css +119 -0
  33. package/es/vxe-tree/style.min.css +1 -1
  34. package/lib/icon/style/style.css +1 -1
  35. package/lib/icon/style/style.min.css +1 -1
  36. package/lib/index.umd.js +782 -35
  37. package/lib/index.umd.min.js +1 -1
  38. package/lib/language/ar-EG.js +2 -1
  39. package/lib/language/ar-EG.min.js +1 -1
  40. package/lib/language/ar-EG.umd.js +2 -1
  41. package/lib/language/de-DE.js +2 -1
  42. package/lib/language/de-DE.min.js +1 -1
  43. package/lib/language/de-DE.umd.js +2 -1
  44. package/lib/language/en-US.js +2 -1
  45. package/lib/language/en-US.min.js +1 -1
  46. package/lib/language/en-US.umd.js +2 -1
  47. package/lib/language/es-ES.js +2 -1
  48. package/lib/language/es-ES.min.js +1 -1
  49. package/lib/language/es-ES.umd.js +2 -1
  50. package/lib/language/fr-FR.js +2 -1
  51. package/lib/language/fr-FR.min.js +1 -1
  52. package/lib/language/fr-FR.umd.js +2 -1
  53. package/lib/language/hu-HU.js +2 -1
  54. package/lib/language/hu-HU.min.js +1 -1
  55. package/lib/language/hu-HU.umd.js +2 -1
  56. package/lib/language/hy-AM.js +2 -1
  57. package/lib/language/hy-AM.min.js +1 -1
  58. package/lib/language/hy-AM.umd.js +2 -1
  59. package/lib/language/id-ID.js +2 -1
  60. package/lib/language/id-ID.min.js +1 -1
  61. package/lib/language/id-ID.umd.js +2 -1
  62. package/lib/language/it-IT.js +2 -1
  63. package/lib/language/it-IT.min.js +1 -1
  64. package/lib/language/it-IT.umd.js +2 -1
  65. package/lib/language/ja-JP.js +2 -1
  66. package/lib/language/ja-JP.min.js +1 -1
  67. package/lib/language/ja-JP.umd.js +2 -1
  68. package/lib/language/ko-KR.js +2 -1
  69. package/lib/language/ko-KR.min.js +1 -1
  70. package/lib/language/ko-KR.umd.js +2 -1
  71. package/lib/language/ms-MY.js +2 -1
  72. package/lib/language/ms-MY.min.js +1 -1
  73. package/lib/language/ms-MY.umd.js +2 -1
  74. package/lib/language/nb-NO.js +2 -1
  75. package/lib/language/nb-NO.min.js +1 -1
  76. package/lib/language/nb-NO.umd.js +2 -1
  77. package/lib/language/pt-BR.js +2 -1
  78. package/lib/language/pt-BR.min.js +1 -1
  79. package/lib/language/pt-BR.umd.js +2 -1
  80. package/lib/language/ru-RU.js +2 -1
  81. package/lib/language/ru-RU.min.js +1 -1
  82. package/lib/language/ru-RU.umd.js +2 -1
  83. package/lib/language/th-TH.js +2 -1
  84. package/lib/language/th-TH.min.js +1 -1
  85. package/lib/language/th-TH.umd.js +2 -1
  86. package/lib/language/ug-CN.js +2 -1
  87. package/lib/language/ug-CN.min.js +1 -1
  88. package/lib/language/ug-CN.umd.js +2 -1
  89. package/lib/language/uk-UA.js +2 -1
  90. package/lib/language/uk-UA.min.js +1 -1
  91. package/lib/language/uk-UA.umd.js +2 -1
  92. package/lib/language/uz-UZ.js +2 -1
  93. package/lib/language/uz-UZ.min.js +1 -1
  94. package/lib/language/uz-UZ.umd.js +2 -1
  95. package/lib/language/vi-VN.js +2 -1
  96. package/lib/language/vi-VN.min.js +1 -1
  97. package/lib/language/vi-VN.umd.js +2 -1
  98. package/lib/language/zh-CHT.js +2 -1
  99. package/lib/language/zh-CHT.min.js +1 -1
  100. package/lib/language/zh-CHT.umd.js +2 -1
  101. package/lib/language/zh-CN.js +2 -1
  102. package/lib/language/zh-CN.min.js +1 -1
  103. package/lib/language/zh-CN.umd.js +2 -1
  104. package/lib/style.css +1 -1
  105. package/lib/style.min.css +1 -1
  106. package/lib/tree/src/tree.js +704 -20
  107. package/lib/tree/src/tree.min.js +1 -1
  108. package/lib/tree/style/style.css +119 -0
  109. package/lib/tree/style/style.min.css +1 -1
  110. package/lib/ui/index.js +11 -1
  111. package/lib/ui/index.min.js +1 -1
  112. package/lib/ui/src/anime.js +56 -0
  113. package/lib/ui/src/anime.min.js +1 -0
  114. package/lib/ui/src/log.js +1 -1
  115. package/lib/ui/src/log.min.js +1 -1
  116. package/lib/vxe-tree/style/style.css +119 -0
  117. package/lib/vxe-tree/style/style.min.css +1 -1
  118. package/package.json +1 -1
  119. package/packages/language/ar-EG.ts +2 -1
  120. package/packages/language/de-DE.ts +2 -1
  121. package/packages/language/en-US.ts +2 -1
  122. package/packages/language/es-ES.ts +2 -1
  123. package/packages/language/fr-FR.ts +2 -1
  124. package/packages/language/hu-HU.ts +2 -1
  125. package/packages/language/hy-AM.ts +2 -1
  126. package/packages/language/id-ID.ts +2 -1
  127. package/packages/language/it-IT.ts +2 -1
  128. package/packages/language/ja-JP.ts +2 -1
  129. package/packages/language/ko-KR.ts +2 -1
  130. package/packages/language/ms-MY.ts +2 -1
  131. package/packages/language/nb-NO.ts +2 -1
  132. package/packages/language/pt-BR.ts +2 -1
  133. package/packages/language/ru-RU.ts +2 -1
  134. package/packages/language/th-TH.ts +2 -1
  135. package/packages/language/ug-CN.ts +2 -1
  136. package/packages/language/uk-UA.ts +2 -1
  137. package/packages/language/uz-UZ.ts +2 -1
  138. package/packages/language/vi-VN.ts +2 -1
  139. package/packages/language/zh-CHT.ts +2 -1
  140. package/packages/language/zh-CN.ts +2 -1
  141. package/packages/tree/src/tree.ts +683 -20
  142. package/packages/ui/index.ts +10 -0
  143. package/packages/ui/src/anime.ts +52 -0
  144. package/styles/components/tree.scss +116 -0
  145. package/styles/theme/dark.scss +1 -0
  146. package/styles/theme/light.scss +1 -0
  147. package/styles/variable.scss +1 -0
  148. package/types/components/tree.d.ts +173 -10
  149. package/types/ui/global-icon.d.ts +4 -0
  150. /package/es/icon/{iconfont.1765265204333.ttf → iconfont.1765343568078.ttf} +0 -0
  151. /package/es/icon/{iconfont.1765265204333.woff → iconfont.1765343568078.woff} +0 -0
  152. /package/es/icon/{iconfont.1765265204333.woff2 → iconfont.1765343568078.woff2} +0 -0
  153. /package/es/{iconfont.1765265204333.ttf → iconfont.1765343568078.ttf} +0 -0
  154. /package/es/{iconfont.1765265204333.woff → iconfont.1765343568078.woff} +0 -0
  155. /package/es/{iconfont.1765265204333.woff2 → iconfont.1765343568078.woff2} +0 -0
  156. /package/lib/icon/style/{iconfont.1765265204333.ttf → iconfont.1765343568078.ttf} +0 -0
  157. /package/lib/icon/style/{iconfont.1765265204333.woff → iconfont.1765343568078.woff} +0 -0
  158. /package/lib/icon/style/{iconfont.1765265204333.woff2 → iconfont.1765343568078.woff2} +0 -0
  159. /package/lib/{iconfont.1765265204333.ttf → iconfont.1765343568078.ttf} +0 -0
  160. /package/lib/{iconfont.1765265204333.woff → iconfont.1765343568078.woff} +0 -0
  161. /package/lib/{iconfont.1765265204333.woff2 → iconfont.1765343568078.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -3599,14 +3599,14 @@ function checkDynamic() {
3599
3599
  }
3600
3600
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
3601
3601
 
3602
- const log_version = `ui v${"4.10.49"}`;
3602
+ const log_version = `ui v${"4.10.50"}`;
3603
3603
  const warnLog = log.create('warn', log_version);
3604
3604
  const errLog = log.create('error', log_version);
3605
3605
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
3606
3606
 
3607
3607
 
3608
3608
 
3609
- const ui_version = "4.10.49";
3609
+ const ui_version = "4.10.50";
3610
3610
  index_esm_VxeUI.uiVersion = ui_version;
3611
3611
  index_esm_VxeUI.dynamicApp = dynamicApp;
3612
3612
  function config(options) {
@@ -3974,6 +3974,12 @@ setConfig({
3974
3974
  radioConfig: {
3975
3975
  strict: true
3976
3976
  },
3977
+ dragConfig: {
3978
+ showIcon: true,
3979
+ animation: true,
3980
+ showGuidesStatus: true,
3981
+ showDragTip: true
3982
+ },
3977
3983
  virtualYConfig: {
3978
3984
  enabled: true,
3979
3985
  gt: 50,
@@ -4157,6 +4163,10 @@ setIcon({
4157
4163
  TREE_NODE_OPEN: iconPrefix + 'caret-right rotate90',
4158
4164
  TREE_NODE_CLOSE: iconPrefix + 'caret-right',
4159
4165
  TREE_NODE_LOADED: iconPrefix + 'spinner roll',
4166
+ TREE_DRAG: iconPrefix + 'drag-handle',
4167
+ TREE_DRAG_STATUS_NODE: iconPrefix + 'sort',
4168
+ TREE_DRAG_STATUS_SUB_NODE: iconPrefix + 'add-sub',
4169
+ TREE_DRAG_DISABLED: iconPrefix + 'no-drop',
4160
4170
  // tree-select
4161
4171
  TREE_SELECT_LOADED: iconPrefix + 'spinner roll',
4162
4172
  TREE_SELECT_OPEN: iconPrefix + 'caret-down rotate180',
@@ -4328,7 +4338,8 @@ setIcon({
4328
4338
  searchEmpty: '未匹配到数据!'
4329
4339
  },
4330
4340
  tree: {
4331
- searchEmpty: '未匹配到数据!'
4341
+ searchEmpty: '未匹配到数据!',
4342
+ dragTip: '移动:{0}'
4332
4343
  },
4333
4344
  treeSelect: {
4334
4345
  clearChecked: '清除',
@@ -5221,14 +5232,14 @@ function isScale(val) {
5221
5232
  function hasClass(elem, cls) {
5222
5233
  return !!(elem && elem.className && elem.className.match && elem.className.match(getClsRE(cls)));
5223
5234
  }
5224
- function removeClass(elem, cls) {
5235
+ function dom_removeClass(elem, cls) {
5225
5236
  if (elem && hasClass(elem, cls)) {
5226
5237
  elem.className = elem.className.replace(getClsRE(cls), '');
5227
5238
  }
5228
5239
  }
5229
- function addClass(elem, cls) {
5240
+ function dom_addClass(elem, cls) {
5230
5241
  if (elem && !hasClass(elem, cls)) {
5231
- removeClass(elem, cls);
5242
+ dom_removeClass(elem, cls);
5232
5243
  elem.className = `${elem.className} ${cls}`;
5233
5244
  }
5234
5245
  }
@@ -25252,7 +25263,7 @@ const IconPicker = VxeIconPicker;
25252
25263
  const imagePreviewPrivateMethods = {};
25253
25264
  const resetStyle = () => {
25254
25265
  const elem = refElem.value;
25255
- removeClass(elem, 'is--move');
25266
+ dom_removeClass(elem, 'is--move');
25256
25267
  Object.assign(reactData, {
25257
25268
  offsetPct11: false,
25258
25269
  offsetScale: 0,
@@ -25494,7 +25505,7 @@ const IconPicker = VxeIconPicker;
25494
25505
  visibleWidth
25495
25506
  } = getDomNode();
25496
25507
  et.preventDefault();
25497
- addClass(elem, 'is--move');
25508
+ dom_addClass(elem, 'is--move');
25498
25509
  // 限制边界值
25499
25510
  if (pageX > marginSize && pageY > marginSize && pageX < visibleWidth - marginSize && pageY < visibleHeight - marginSize) {
25500
25511
  reactData.offsetLeft = offsetLeft + pageX - startX;
@@ -25504,7 +25515,7 @@ const IconPicker = VxeIconPicker;
25504
25515
  document.onmouseup = () => {
25505
25516
  document.onmousemove = domMousemove;
25506
25517
  document.onmouseup = domMouseup;
25507
- removeClass(elem, 'is--move');
25518
+ dom_removeClass(elem, 'is--move');
25508
25519
  };
25509
25520
  };
25510
25521
  const handleGlobalKeydownEvent = evnt => {
@@ -25685,7 +25696,7 @@ const IconPicker = VxeIconPicker;
25685
25696
  const elem = refElem.value;
25686
25697
  if (elem) {
25687
25698
  elem.removeEventListener('wheel', wheelEvent);
25688
- removeClass(elem, 'is--move');
25699
+ dom_removeClass(elem, 'is--move');
25689
25700
  }
25690
25701
  });
25691
25702
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onUnmounted)(() => {
@@ -35194,7 +35205,7 @@ const Select = VxeSelect;
35194
35205
  rsSplitterLineEl.style.display = '';
35195
35206
  }
35196
35207
  handleUpdate();
35197
- removeClass(el, 'is--drag');
35208
+ dom_removeClass(el, 'is--drag');
35198
35209
  dispatchEvent('resize-end', {
35199
35210
  prevItem,
35200
35211
  nextItem,
@@ -35208,7 +35219,7 @@ const Select = VxeSelect;
35208
35219
  handleReStyle(evnt);
35209
35220
  }
35210
35221
  handleDrag(evnt);
35211
- addClass(el, 'is--drag');
35222
+ dom_addClass(el, 'is--drag');
35212
35223
  dispatchEvent('resize-start', {
35213
35224
  prevItem,
35214
35225
  nextItem
@@ -37509,16 +37520,16 @@ const scrollbarOffsetSize = 20;
37509
37520
  } = headerWrapperEl;
37510
37521
  if (headPrevEl) {
37511
37522
  if ((lrPosition ? scrollTop : scrollLeft) > 0) {
37512
- addClass(headPrevEl, 'scrolling--middle');
37523
+ dom_addClass(headPrevEl, 'scrolling--middle');
37513
37524
  } else {
37514
- removeClass(headPrevEl, 'scrolling--middle');
37525
+ dom_removeClass(headPrevEl, 'scrolling--middle');
37515
37526
  }
37516
37527
  }
37517
37528
  if (headNextEl) {
37518
37529
  if (lrPosition ? clientHeight < scrollHeight - Math.ceil(scrollTop) : clientWidth < scrollWidth - Math.ceil(scrollLeft)) {
37519
- addClass(headNextEl, 'scrolling--middle');
37530
+ dom_addClass(headNextEl, 'scrolling--middle');
37520
37531
  } else {
37521
- removeClass(headNextEl, 'scrolling--middle');
37532
+ dom_removeClass(headNextEl, 'scrolling--middle');
37522
37533
  }
37523
37534
  }
37524
37535
  }
@@ -39364,6 +39375,53 @@ function calcTreeLine($xeTree, node, prevNode) {
39364
39375
  }
39365
39376
  return (rowHeight || 28) * expandSize - (prevNode ? 1 : 12);
39366
39377
  }
39378
+ ;// CONCATENATED MODULE: ./packages/ui/src/anime.ts
39379
+
39380
+
39381
+ const rowMoveCls = 'row--drag-move';
39382
+ const colMoveClass = 'col--drag-move';
39383
+ /**
39384
+ * 上下拖拽
39385
+ */
39386
+ function moveRowAnimateToTb(elemList, offsetTop) {
39387
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(elemList, trEl => {
39388
+ trEl.style.transform = `translateY(${offsetTop}px)`;
39389
+ });
39390
+ requestAnimationFrame(() => {
39391
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(elemList, trEl => {
39392
+ dom_addClass(trEl, rowMoveCls);
39393
+ trEl.style.transform = '';
39394
+ });
39395
+ });
39396
+ }
39397
+ function clearRowAnimate(elem, clss) {
39398
+ setTimeout(() => {
39399
+ if (elem) {
39400
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(elem.querySelectorAll(clss.map(cls => `${cls}.${rowMoveCls}`).join(',')), elem => dom_removeClass(elem, rowMoveCls));
39401
+ }
39402
+ }, 500);
39403
+ }
39404
+ /**
39405
+ * 左右拖拽
39406
+ */
39407
+ function moveColAnimateToLr(elemList, offsetLeft) {
39408
+ XEUtils.arrayEach(elemList, trEl => {
39409
+ trEl.style.transform = `translateX(${offsetLeft}px)`;
39410
+ });
39411
+ requestAnimationFrame(() => {
39412
+ XEUtils.arrayEach(elemList, trEl => {
39413
+ addClass(trEl, colMoveClass);
39414
+ trEl.style.transform = '';
39415
+ });
39416
+ });
39417
+ }
39418
+ function clearColAnimate(elem, clss) {
39419
+ setTimeout(() => {
39420
+ if (elem) {
39421
+ XEUtils.arrayEach(elem.querySelectorAll(clss.map(cls => `${cls}.${rowMoveCls}`).join(',')), elem => removeClass(elem, colMoveClass));
39422
+ }
39423
+ }, 500);
39424
+ }
39367
39425
  ;// CONCATENATED MODULE: ./packages/tree/src/tree.ts
39368
39426
 
39369
39427
 
@@ -39375,6 +39433,7 @@ function calcTreeLine($xeTree, node, prevNode) {
39375
39433
 
39376
39434
 
39377
39435
 
39436
+
39378
39437
  /**
39379
39438
  * 生成节点的唯一主键
39380
39439
  */
@@ -39402,6 +39461,9 @@ function tree_createInternalData() {
39402
39461
  offsetSize: 0,
39403
39462
  rowHeight: 0
39404
39463
  },
39464
+ // prevDragNode: null,
39465
+ // prevDragToChild: false,
39466
+ // prevDragPos: ''
39405
39467
  lastScrollTime: 0
39406
39468
  // hpTimeout: undefined
39407
39469
  };
@@ -39495,6 +39557,11 @@ function tree_createInternalData() {
39495
39557
  lazy: Boolean,
39496
39558
  toggleMethod: Function,
39497
39559
  loadMethod: Function,
39560
+ drag: {
39561
+ type: Boolean,
39562
+ default: () => getConfig().tree.drag
39563
+ },
39564
+ dragConfig: Object,
39498
39565
  showIcon: {
39499
39566
  type: Boolean,
39500
39567
  default: true
@@ -39519,7 +39586,7 @@ function tree_createInternalData() {
39519
39586
  },
39520
39587
  virtualYConfig: Object
39521
39588
  },
39522
- emits: ['update:modelValue', 'update:checkNodeKey', 'update:checkNodeKeys', 'node-click', 'node-dblclick', 'current-change', 'radio-change', 'checkbox-change', 'load-success', 'load-error', 'scroll'],
39589
+ emits: ['update:modelValue', 'update:checkNodeKey', 'update:checkNodeKeys', 'node-click', 'node-dblclick', 'current-change', 'radio-change', 'checkbox-change', 'load-success', 'load-error', 'scroll', 'node-dragstart', 'node-dragover', 'node-dragend'],
39523
39590
  setup(props, context) {
39524
39591
  const {
39525
39592
  emit,
@@ -39534,6 +39601,8 @@ function tree_createInternalData() {
39534
39601
  const refFooterWrapperElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
39535
39602
  const refVirtualWrapper = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
39536
39603
  const refVirtualBody = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
39604
+ const refDragNodeLineElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
39605
+ const refDragTipElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
39537
39606
  const reactData = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.reactive)({
39538
39607
  parentHeight: 0,
39539
39608
  customHeight: 0,
@@ -39546,7 +39615,9 @@ function tree_createInternalData() {
39546
39615
  selectRadioKey: enNodeValue(props.checkNodeKey),
39547
39616
  treeList: [],
39548
39617
  updateExpandedFlag: 1,
39549
- updateCheckboxFlag: 1
39618
+ updateCheckboxFlag: 1,
39619
+ dragNode: null,
39620
+ dragTipText: ''
39550
39621
  });
39551
39622
  const internalData = tree_createInternalData();
39552
39623
  const refMaps = {
@@ -39613,6 +39684,9 @@ function tree_createInternalData() {
39613
39684
  const computeLoadingOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
39614
39685
  return Object.assign({}, getConfig().tree.loadingConfig, props.loadingConfig);
39615
39686
  });
39687
+ const computeDragOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
39688
+ return Object.assign({}, getConfig().tree.dragConfig, props.dragConfig);
39689
+ });
39616
39690
  const computeTreeStyle = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
39617
39691
  const {
39618
39692
  customHeight,
@@ -39635,11 +39709,14 @@ function tree_createInternalData() {
39635
39709
  return Object.assign({}, getConfig().tree.filterConfig, props.filterConfig);
39636
39710
  });
39637
39711
  const computeMaps = {
39712
+ computeKeyField,
39713
+ computeParentField,
39638
39714
  computeChildrenField,
39639
39715
  computeMapChildrenField,
39640
39716
  computeRadioOpts,
39641
39717
  computeCheckboxOpts,
39642
- computeNodeOpts
39718
+ computeNodeOpts,
39719
+ computeDragOpts
39643
39720
  };
39644
39721
  const $xeTree = {
39645
39722
  xID,
@@ -39783,7 +39860,7 @@ function tree_createInternalData() {
39783
39860
  const el = refElem.value;
39784
39861
  return el ? el.parentElement : null;
39785
39862
  };
39786
- const calcTableHeight = key => {
39863
+ const calcTreeHeight = key => {
39787
39864
  const {
39788
39865
  parentHeight
39789
39866
  } = reactData;
@@ -39804,9 +39881,9 @@ function tree_createInternalData() {
39804
39881
  return num;
39805
39882
  };
39806
39883
  const updateHeight = () => {
39807
- reactData.customHeight = calcTableHeight('height');
39808
- reactData.customMinHeight = calcTableHeight('minHeight');
39809
- reactData.customMaxHeight = calcTableHeight('maxHeight');
39884
+ reactData.customHeight = calcTreeHeight('height');
39885
+ reactData.customMinHeight = calcTreeHeight('minHeight');
39886
+ reactData.customMaxHeight = calcTreeHeight('maxHeight');
39810
39887
  // 如果启用虚拟滚动,默认高度
39811
39888
  if (reactData.scrollYLoad && !(reactData.customHeight || reactData.customMinHeight)) {
39812
39889
  reactData.customHeight = 300;
@@ -39842,10 +39919,12 @@ function tree_createInternalData() {
39842
39919
  keyMaps[nodeid] = {
39843
39920
  item,
39844
39921
  index,
39922
+ $index: -1,
39923
+ _index: -1,
39845
39924
  items,
39846
39925
  parent,
39847
39926
  nodes,
39848
- level: nodes.length,
39927
+ level: nodes.length - 1,
39849
39928
  treeIndex: index,
39850
39929
  lineCount: 0,
39851
39930
  treeLoaded: false
@@ -39865,16 +39944,20 @@ function tree_createInternalData() {
39865
39944
  } = internalData;
39866
39945
  const childrenField = computeChildrenField.value;
39867
39946
  const mapChildrenField = computeMapChildrenField.value;
39947
+ let vtIndex = 0;
39868
39948
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeList, (item, index, items) => {
39869
39949
  const nodeid = getNodeId(item);
39870
39950
  const nodeItem = nodeMaps[nodeid];
39871
39951
  if (nodeItem) {
39872
39952
  nodeItem.items = items;
39873
39953
  nodeItem.treeIndex = index;
39954
+ nodeItem._index = vtIndex;
39874
39955
  } else {
39875
39956
  const rest = {
39876
39957
  item,
39877
39958
  index,
39959
+ $index: -1,
39960
+ _index: vtIndex,
39878
39961
  items,
39879
39962
  parent,
39880
39963
  nodes: [],
@@ -39885,6 +39968,7 @@ function tree_createInternalData() {
39885
39968
  };
39886
39969
  nodeMaps[nodeid] = rest;
39887
39970
  }
39971
+ vtIndex++;
39888
39972
  }, {
39889
39973
  children: transform ? mapChildrenField : childrenField
39890
39974
  });
@@ -40030,7 +40114,8 @@ function tree_createInternalData() {
40030
40114
  scrollYLoad
40031
40115
  } = reactData;
40032
40116
  const {
40033
- scrollYStore
40117
+ scrollYStore,
40118
+ nodeMaps
40034
40119
  } = internalData;
40035
40120
  let fullList = internalData.afterVisibleList;
40036
40121
  if (force) {
@@ -40040,6 +40125,13 @@ function tree_createInternalData() {
40040
40125
  fullList = handleTreeToList();
40041
40126
  }
40042
40127
  const treeList = scrollYLoad ? fullList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullList.slice(0);
40128
+ treeList.forEach((item, $index) => {
40129
+ const nodeid = getNodeId(item);
40130
+ const itemRest = nodeMaps[nodeid];
40131
+ if (itemRest) {
40132
+ itemRest.$index = $index;
40133
+ }
40134
+ });
40043
40135
  reactData.treeList = treeList;
40044
40136
  };
40045
40137
  const triggerSearchEvent = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().debounce(() => handleData(true), 350, {
@@ -40286,6 +40378,40 @@ function tree_createInternalData() {
40286
40378
  internalData.lastScrollLeft = 0;
40287
40379
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
40288
40380
  };
40381
+ const handleNodeMousedownEvent = (evnt, node) => {
40382
+ const {
40383
+ drag
40384
+ } = props;
40385
+ const {
40386
+ nodeMaps
40387
+ } = internalData;
40388
+ const targetEl = evnt.currentTarget;
40389
+ const dragConfig = computeDragOpts.value;
40390
+ const {
40391
+ trigger,
40392
+ isCrossDrag,
40393
+ isPeerDrag,
40394
+ disabledMethod
40395
+ } = dragConfig;
40396
+ const nodeid = getNodeId(node);
40397
+ const triggerTreeNode = getEventTargetNode(evnt, targetEl, 'vxe-tree--node-item-switcher').flag;
40398
+ let isNodeDrag = false;
40399
+ if (drag) {
40400
+ isNodeDrag = trigger === 'node';
40401
+ }
40402
+ if (!triggerTreeNode) {
40403
+ const params = {
40404
+ node,
40405
+ $tree: $xeTree
40406
+ };
40407
+ const itemRest = nodeMaps[nodeid];
40408
+ if (isNodeDrag && (isCrossDrag || isPeerDrag || itemRest && !itemRest.level) && !(disabledMethod && disabledMethod(params))) {
40409
+ handleNodeDragMousedownEvent(evnt, {
40410
+ node
40411
+ });
40412
+ }
40413
+ }
40414
+ };
40289
40415
  const handleNodeClickEvent = (evnt, node) => {
40290
40416
  const {
40291
40417
  showRadio,
@@ -41120,6 +41246,8 @@ function tree_createInternalData() {
41120
41246
  nodeMaps[itemNodeId] = {
41121
41247
  item: childRow,
41122
41248
  index: -1,
41249
+ $index: -1,
41250
+ _index: -1,
41123
41251
  items,
41124
41252
  parent: parent || parentNodeItem.item,
41125
41253
  nodes: parentNodes.concat(nodes),
@@ -41160,6 +41288,12 @@ function tree_createInternalData() {
41160
41288
  return list;
41161
41289
  },
41162
41290
  recalculate,
41291
+ getFullData() {
41292
+ const {
41293
+ treeFullData
41294
+ } = internalData;
41295
+ return treeFullData.slice(0);
41296
+ },
41163
41297
  scrollTo: handleScrollTo,
41164
41298
  scrollToNode(node) {
41165
41299
  return $xeTree.scrollToNodeId(getNodeId(node));
@@ -41200,8 +41334,562 @@ function tree_createInternalData() {
41200
41334
  },
41201
41335
  clearScroll
41202
41336
  };
41203
- const treePrivateMethods = {};
41337
+ const clearNodeDropOrigin = () => {
41338
+ const el = refElem.value;
41339
+ if (el) {
41340
+ const clss = 'node--drag-origin';
41341
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.${clss}`), elem => {
41342
+ elem.draggable = false;
41343
+ dom_removeClass(elem, clss);
41344
+ });
41345
+ }
41346
+ };
41347
+ const updateNodeDropOrigin = node => {
41348
+ const el = refElem.value;
41349
+ if (el) {
41350
+ const clss = 'node--drag-origin';
41351
+ const nodeid = getNodeId(node);
41352
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(el.querySelectorAll(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`), elem => {
41353
+ dom_addClass(elem, clss);
41354
+ });
41355
+ }
41356
+ };
41357
+ const updateRowDropTipContent = itemEl => {
41358
+ const {
41359
+ dragNode
41360
+ } = reactData;
41361
+ const dragOpts = computeDragOpts.value;
41362
+ const {
41363
+ tooltipMethod
41364
+ } = dragOpts;
41365
+ const rTooltipMethod = tooltipMethod;
41366
+ let tipContent = '';
41367
+ if (rTooltipMethod) {
41368
+ const rtParams = {
41369
+ $tree: $xeTree,
41370
+ node: dragNode
41371
+ };
41372
+ tipContent = `${rTooltipMethod(rtParams) || ''}`;
41373
+ } else {
41374
+ tipContent = getI18n('vxe.tree.dragTip', [itemEl.textContent || '']);
41375
+ }
41376
+ reactData.dragTipText = tipContent;
41377
+ };
41378
+ const hideDropTip = () => {
41379
+ const rdTipEl = refDragTipElem.value;
41380
+ const rdLineEl = refDragNodeLineElem.value;
41381
+ if (rdTipEl) {
41382
+ rdTipEl.style.display = '';
41383
+ }
41384
+ if (rdLineEl) {
41385
+ rdLineEl.style.display = '';
41386
+ }
41387
+ };
41388
+ const clearDragStatus = () => {
41389
+ const {
41390
+ dragNode
41391
+ } = reactData;
41392
+ if (dragNode) {
41393
+ clearNodeDropOrigin();
41394
+ hideDropTip();
41395
+ reactData.dragNode = null;
41396
+ }
41397
+ };
41398
+ const handleNodeDragMousedownEvent = (evnt, params) => {
41399
+ evnt.stopPropagation();
41400
+ const {
41401
+ node
41402
+ } = params;
41403
+ const dragConfig = computeDragOpts.value;
41404
+ const {
41405
+ trigger,
41406
+ dragStartMethod
41407
+ } = dragConfig;
41408
+ const dragEl = evnt.currentTarget;
41409
+ const itemEl = trigger === 'node' ? dragEl : dragEl.parentElement.parentElement;
41410
+ clearNodeDropOrigin();
41411
+ if (dragStartMethod && !dragStartMethod(params)) {
41412
+ itemEl.draggable = false;
41413
+ reactData.dragNode = null;
41414
+ hideDropTip();
41415
+ return;
41416
+ }
41417
+ reactData.dragNode = node;
41418
+ itemEl.draggable = true;
41419
+ updateNodeDropOrigin(node);
41420
+ updateRowDropTipContent(itemEl);
41421
+ dispatchEvent('node-dragstart', params, evnt);
41422
+ };
41423
+ const handleNodeDragMouseupEvent = () => {
41424
+ clearDragStatus();
41425
+ };
41426
+ const showDropTip = (evnt, itemEl, showLine, dragPos) => {
41427
+ const wrapperEl = refElem.value;
41428
+ if (!wrapperEl) {
41429
+ return;
41430
+ }
41431
+ const {
41432
+ prevDragToChild
41433
+ } = internalData;
41434
+ const wrapperRect = wrapperEl.getBoundingClientRect();
41435
+ const wrapperHeight = wrapperEl.clientHeight;
41436
+ if (itemEl) {
41437
+ const rdLineEl = refDragNodeLineElem.value;
41438
+ if (rdLineEl) {
41439
+ if (showLine) {
41440
+ const trRect = itemEl.getBoundingClientRect();
41441
+ let itemHeight = itemEl.clientHeight;
41442
+ const offsetTop = Math.max(1, trRect.y - wrapperRect.y);
41443
+ if (offsetTop + itemHeight > wrapperHeight) {
41444
+ itemHeight = wrapperHeight - offsetTop;
41445
+ }
41446
+ rdLineEl.style.display = 'block';
41447
+ rdLineEl.style.top = `${offsetTop}px`;
41448
+ rdLineEl.style.height = `${itemHeight}px`;
41449
+ rdLineEl.setAttribute('drag-pos', dragPos);
41450
+ rdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
41451
+ } else {
41452
+ rdLineEl.style.display = '';
41453
+ }
41454
+ }
41455
+ }
41456
+ const rdTipEl = refDragTipElem.value;
41457
+ if (rdTipEl) {
41458
+ rdTipEl.style.display = 'block';
41459
+ rdTipEl.style.top = `${Math.min(wrapperEl.clientHeight - wrapperEl.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`;
41460
+ rdTipEl.style.left = `${Math.min(wrapperEl.clientWidth - wrapperEl.scrollLeft - rdTipEl.clientWidth - 1, evnt.clientX - wrapperRect.x)}px`;
41461
+ rdTipEl.setAttribute('drag-status', showLine ? prevDragToChild ? 'sub' : 'normal' : 'disabled');
41462
+ }
41463
+ };
41464
+ const clearNodeDragData = () => {
41465
+ const wrapperEl = refElem.value;
41466
+ const dtClss = ['.vxe-tree--node-wrapper'];
41467
+ hideDropTip();
41468
+ clearNodeDropOrigin();
41469
+ clearRowAnimate(wrapperEl, dtClss);
41470
+ internalData.prevDragToChild = false;
41471
+ reactData.dragNode = null;
41472
+ };
41473
+ const handleNodeDragSwapEvent = (evnt, dragNode, prevDragNode, prevDragPos, prevDragToChild) => {
41474
+ const {
41475
+ transform
41476
+ } = props;
41477
+ const {
41478
+ nodeMaps,
41479
+ treeFullData,
41480
+ afterVisibleList
41481
+ } = internalData;
41482
+ const dragConfig = computeDragOpts.value;
41483
+ const {
41484
+ animation,
41485
+ isCrossDrag,
41486
+ isPeerDrag,
41487
+ isSelfToChildDrag,
41488
+ dragEndMethod,
41489
+ dragToChildMethod
41490
+ } = dragConfig;
41491
+ const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
41492
+ const keyField = computeKeyField.value;
41493
+ const parentField = computeParentField.value;
41494
+ const childrenField = computeChildrenField.value;
41495
+ const mapChildrenField = computeMapChildrenField.value;
41496
+ const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
41497
+ const el = refElem.value;
41498
+ const errRest = {
41499
+ status: false
41500
+ };
41501
+ if (!(el && prevDragNode && dragNode)) {
41502
+ return Promise.resolve(errRest);
41503
+ }
41504
+ // 判断是否有拖动
41505
+ if (prevDragNode !== dragNode) {
41506
+ const dragParams = {
41507
+ oldNode: dragNode,
41508
+ newNode: prevDragNode,
41509
+ dragNode,
41510
+ dragPos: prevDragPos,
41511
+ dragToChild: !!prevDragToChild,
41512
+ offsetIndex: dragOffsetIndex
41513
+ };
41514
+ const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
41515
+ return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(status => {
41516
+ if (!status) {
41517
+ return errRest;
41518
+ }
41519
+ const dragNodeid = getNodeId(dragNode);
41520
+ const dragNodeRest = nodeMaps[dragNodeid] || {};
41521
+ const _dragNodeIndex = dragNodeRest._index;
41522
+ let dragNodeHeight = 0;
41523
+ let dragOffsetTop = -1;
41524
+ if (animation) {
41525
+ const prevItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${prevDragNode}"]`);
41526
+ const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`);
41527
+ const targetItemEl = prevItemEl || oldItemEl;
41528
+ if (targetItemEl) {
41529
+ dragNodeHeight = targetItemEl.offsetHeight;
41530
+ }
41531
+ if (oldItemEl) {
41532
+ dragOffsetTop = oldItemEl.offsetTop;
41533
+ }
41534
+ }
41535
+ let oafIndex = -1;
41536
+ let nafIndex = -1;
41537
+ if (transform) {
41538
+ // 移出源位置
41539
+ const oldRest = dragNodeRest;
41540
+ const newNodeid = getNodeId(prevDragNode);
41541
+ const newRest = nodeMaps[newNodeid];
41542
+ if (oldRest && newRest) {
41543
+ const {
41544
+ level: oldLevel
41545
+ } = oldRest;
41546
+ const {
41547
+ level: newLevel
41548
+ } = newRest;
41549
+ const oldAllMaps = {};
41550
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree([dragNode], item => {
41551
+ oldAllMaps[getNodeId(item)] = item;
41552
+ }, {
41553
+ children: mapChildrenField
41554
+ });
41555
+ let isSelfToChildStatus = false;
41556
+ if (oldLevel && newLevel) {
41557
+ // 子到子
41558
+ if (isPeerDrag && !isCrossDrag) {
41559
+ if (oldRest.item[parentField] !== newRest.item[parentField]) {
41560
+ // 非同级
41561
+ return errRest;
41562
+ }
41563
+ } else {
41564
+ if (!isCrossDrag) {
41565
+ return errRest;
41566
+ }
41567
+ if (oldAllMaps[newNodeid]) {
41568
+ isSelfToChildStatus = true;
41569
+ if (!(isCrossDrag && isSelfToChildDrag)) {
41570
+ if (index_esm_VxeUI.modal) {
41571
+ index_esm_VxeUI.modal.message({
41572
+ status: 'error',
41573
+ content: getI18n('vxe.error.treeDragChild')
41574
+ });
41575
+ }
41576
+ return errRest;
41577
+ }
41578
+ }
41579
+ }
41580
+ } else if (oldLevel) {
41581
+ // 子到根
41582
+ if (!isCrossDrag) {
41583
+ return errRest;
41584
+ }
41585
+ } else if (newLevel) {
41586
+ // 根到子
41587
+ if (!isCrossDrag) {
41588
+ return errRest;
41589
+ }
41590
+ if (oldAllMaps[newNodeid]) {
41591
+ isSelfToChildStatus = true;
41592
+ if (!(isCrossDrag && isSelfToChildDrag)) {
41593
+ if (index_esm_VxeUI.modal) {
41594
+ index_esm_VxeUI.modal.message({
41595
+ status: 'error',
41596
+ content: getI18n('vxe.error.treeDragChild')
41597
+ });
41598
+ }
41599
+ return errRest;
41600
+ }
41601
+ }
41602
+ } else {
41603
+ // 根到根
41604
+ }
41605
+ const fullList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toTreeArray(internalData.afterTreeList, {
41606
+ key: keyField,
41607
+ parentKey: parentField,
41608
+ children: mapChildrenField
41609
+ });
41610
+ // 移出
41611
+ const otfIndex = $xeTree.findNodeIndexOf(fullList, dragNode);
41612
+ fullList.splice(otfIndex, 1);
41613
+ // 插入
41614
+ const ptfIndex = $xeTree.findNodeIndexOf(fullList, prevDragNode);
41615
+ const ntfIndex = ptfIndex + dragOffsetIndex;
41616
+ fullList.splice(ntfIndex, 0, dragNode);
41617
+ // 改变层级
41618
+ if (isSelfToChildStatus && isCrossDrag && isSelfToChildDrag) {
41619
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(dragNode[childrenField], childNode => {
41620
+ childNode[parentField] = dragNode[parentField];
41621
+ });
41622
+ }
41623
+ dragNode[parentField] = isDragToChildFlag ? prevDragNode[keyField] : prevDragNode[parentField];
41624
+ internalData.treeFullData = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toArrayTree(fullList, {
41625
+ key: keyField,
41626
+ parentKey: parentField,
41627
+ children: childrenField,
41628
+ mapChildren: mapChildrenField
41629
+ });
41630
+ }
41631
+ } else {
41632
+ // 移出
41633
+ oafIndex = $xeTree.findNodeIndexOf(afterVisibleList, dragNode);
41634
+ const otfIndex = $xeTree.findNodeIndexOf(treeFullData, dragNode);
41635
+ afterVisibleList.splice(oafIndex, 1);
41636
+ treeFullData.splice(otfIndex, 1);
41637
+ // 插入
41638
+ const pafIndex = $xeTree.findNodeIndexOf(afterVisibleList, prevDragNode);
41639
+ const ptfIndex = $xeTree.findNodeIndexOf(treeFullData, prevDragNode);
41640
+ nafIndex = pafIndex + dragOffsetIndex;
41641
+ const ntfIndex = ptfIndex + dragOffsetIndex;
41642
+ afterVisibleList.splice(nafIndex, 0, dragNode);
41643
+ treeFullData.splice(ntfIndex, 0, dragNode);
41644
+ }
41645
+ cacheNodeMap();
41646
+ handleData(transform);
41647
+ if (!transform) {
41648
+ updateAfterDataIndex();
41649
+ }
41650
+ updateCheckboxStatus();
41651
+ if (reactData.scrollYLoad) {
41652
+ updateYSpace();
41653
+ }
41654
+ if (evnt) {
41655
+ dispatchEvent('node-dragend', {
41656
+ oldNode: dragNode,
41657
+ newNode: prevDragNode,
41658
+ dragNode,
41659
+ dragPos: prevDragPos,
41660
+ dragToChild: isDragToChildFlag,
41661
+ offsetIndex: dragOffsetIndex,
41662
+ _index: {
41663
+ newIndex: nafIndex,
41664
+ oldIndex: oafIndex
41665
+ }
41666
+ }, evnt);
41667
+ }
41668
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
41669
+ if (animation) {
41670
+ const {
41671
+ treeList
41672
+ } = reactData;
41673
+ const {
41674
+ nodeMaps
41675
+ } = internalData;
41676
+ const dragNodeRest = nodeMaps[dragNodeid];
41677
+ const _newNodeIndex = dragNodeRest._index;
41678
+ const firstNode = treeList[0];
41679
+ const firstNodeRest = nodeMaps[getNodeId(firstNode)];
41680
+ const wrapperEl = el;
41681
+ if (firstNodeRest) {
41682
+ const _firstNodeIndex = firstNodeRest._index;
41683
+ const _lastNodeIndex = _firstNodeIndex + treeList.length;
41684
+ let rsIndex = -1;
41685
+ let reIndex = -1;
41686
+ let offsetRate = 1;
41687
+ if (_dragNodeIndex < _firstNodeIndex) {
41688
+ // 从上往下虚拟拖拽
41689
+ rsIndex = 0;
41690
+ reIndex = _newNodeIndex - _firstNodeIndex;
41691
+ } else if (_dragNodeIndex > _lastNodeIndex) {
41692
+ // 从下往上虚拟拖拽
41693
+ const $newNodeIndex = dragNodeRest.$index;
41694
+ rsIndex = $newNodeIndex + 1;
41695
+ reIndex = treeList.length;
41696
+ offsetRate = -1;
41697
+ } else {
41698
+ if (_newNodeIndex > _dragNodeIndex) {
41699
+ // 从上往下拖拽
41700
+ rsIndex = _dragNodeIndex - _firstNodeIndex;
41701
+ reIndex = rsIndex + _newNodeIndex - _dragNodeIndex;
41702
+ } else {
41703
+ // 从下往上拖拽
41704
+ rsIndex = _newNodeIndex - _firstNodeIndex;
41705
+ reIndex = rsIndex + _dragNodeIndex - _newNodeIndex + 1;
41706
+ offsetRate = -1;
41707
+ }
41708
+ }
41709
+ const dragRangeList = treeList.slice(rsIndex, reIndex);
41710
+ if (dragRangeList.length) {
41711
+ const dtClss = [];
41712
+ dragRangeList.forEach(item => {
41713
+ const nodeid = getNodeId(item);
41714
+ dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
41715
+ });
41716
+ const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
41717
+ moveRowAnimateToTb(dtTrList, offsetRate * dragNodeHeight);
41718
+ }
41719
+ }
41720
+ const drClss = [`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`];
41721
+ const newDtTrList = wrapperEl.querySelectorAll(drClss.join(','));
41722
+ const newTrEl = newDtTrList[0];
41723
+ if (dragOffsetTop > -1 && newTrEl) {
41724
+ moveRowAnimateToTb(newDtTrList, dragOffsetTop - newTrEl.offsetTop);
41725
+ }
41726
+ }
41727
+ recalculate();
41728
+ }).then(() => {
41729
+ return {
41730
+ status: true
41731
+ };
41732
+ });
41733
+ }).catch(() => {
41734
+ return errRest;
41735
+ }).then(rest => {
41736
+ clearNodeDragData();
41737
+ return rest;
41738
+ });
41739
+ }
41740
+ clearNodeDragData();
41741
+ return Promise.resolve(errRest);
41742
+ };
41743
+ const handleNodeDragDragstartEvent = evnt => {
41744
+ if (evnt.dataTransfer) {
41745
+ evnt.dataTransfer.setDragImage(getTpImg(), 0, 0);
41746
+ }
41747
+ };
41748
+ const handleNodeDragDragendEvent = evnt => {
41749
+ const {
41750
+ lazy
41751
+ } = props;
41752
+ const {
41753
+ dragNode
41754
+ } = reactData;
41755
+ const {
41756
+ nodeMaps,
41757
+ prevDragNode,
41758
+ prevDragPos,
41759
+ prevDragToChild
41760
+ } = internalData;
41761
+ const hasChildField = computeHasChildField.value;
41762
+ if (lazy && prevDragToChild) {
41763
+ // 懒加载
41764
+ const newNodeid = getNodeId(prevDragNode);
41765
+ const nodeRest = nodeMaps[newNodeid];
41766
+ if (prevDragNode[hasChildField]) {
41767
+ if (nodeRest && nodeRest.treeLoaded) {
41768
+ handleNodeDragSwapEvent(evnt, dragNode, prevDragNode, prevDragPos, prevDragToChild);
41769
+ }
41770
+ } else {
41771
+ handleNodeDragSwapEvent(evnt, dragNode, prevDragNode, prevDragPos, prevDragToChild);
41772
+ }
41773
+ } else {
41774
+ handleNodeDragSwapEvent(evnt, dragNode, prevDragNode, prevDragPos, prevDragToChild);
41775
+ }
41776
+ };
41777
+ const handleNodeDragDragoverEvent = evnt => {
41778
+ const {
41779
+ lazy,
41780
+ transform
41781
+ } = props;
41782
+ const {
41783
+ dragNode
41784
+ } = reactData;
41785
+ const {
41786
+ nodeMaps
41787
+ } = internalData;
41788
+ const dragConfig = computeDragOpts.value;
41789
+ const parentField = computeParentField.value;
41790
+ const hasChildField = computeHasChildField.value;
41791
+ const {
41792
+ isCrossDrag,
41793
+ isPeerDrag,
41794
+ isToChildDrag
41795
+ } = dragConfig;
41796
+ if (!dragNode && !isCrossDrag) {
41797
+ evnt.preventDefault();
41798
+ }
41799
+ const isControlKey = hasControlKey(evnt);
41800
+ const itemEl = evnt.currentTarget;
41801
+ const nodeid = itemEl.getAttribute('nodeid') || '';
41802
+ const nodeItem = nodeMaps[nodeid];
41803
+ if (nodeItem) {
41804
+ evnt.preventDefault();
41805
+ const node = nodeItem.item;
41806
+ const offsetY = evnt.clientY - itemEl.getBoundingClientRect().y;
41807
+ const dragPos = offsetY < itemEl.clientHeight / 2 ? 'top' : 'bottom';
41808
+ internalData.prevDragToChild = !!(transform && isCrossDrag && isToChildDrag && isControlKey);
41809
+ internalData.prevDragNode = node;
41810
+ internalData.prevDragPos = dragPos;
41811
+ if (dragNode && getNodeId(dragNode) === nodeid || isControlKey && lazy && node[hasChildField] && nodeItem && !nodeItem.treeLoaded || !isCrossDrag && transform && (isPeerDrag ? dragNode[parentField] !== node[parentField] : nodeItem.level)) {
41812
+ showDropTip(evnt, itemEl, false, dragPos);
41813
+ return;
41814
+ }
41815
+ showDropTip(evnt, itemEl, true, dragPos);
41816
+ dispatchEvent('node-dragover', {
41817
+ oldRNode: dragNode,
41818
+ targetNode: node,
41819
+ dragPos
41820
+ }, evnt);
41821
+ }
41822
+ };
41823
+ const treePrivateMethods = {
41824
+ handleData,
41825
+ cacheNodeMap,
41826
+ updateAfterDataIndex,
41827
+ updateCheckboxStatus,
41828
+ updateYSpace,
41829
+ findNodeIndexOf(list, node) {
41830
+ return node ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(list, item => $xeTree.eqNode(item, node)) : -1;
41831
+ },
41832
+ eqNode(node1, node2) {
41833
+ if (node1 && node2) {
41834
+ if (node1 === node2) {
41835
+ return true;
41836
+ }
41837
+ return getNodeId(node1) === getNodeId(node2);
41838
+ }
41839
+ return false;
41840
+ }
41841
+ };
41204
41842
  Object.assign($xeTree, treeMethods, treePrivateMethods);
41843
+ const renderDragIcon = (node, nodeid) => {
41844
+ const {
41845
+ drag,
41846
+ transform
41847
+ } = props;
41848
+ const {
41849
+ nodeMaps
41850
+ } = internalData;
41851
+ const dragOpts = computeDragOpts.value;
41852
+ const {
41853
+ showIcon,
41854
+ isPeerDrag,
41855
+ isCrossDrag,
41856
+ visibleMethod
41857
+ } = dragOpts;
41858
+ const params = {
41859
+ node,
41860
+ $tree: $xeTree
41861
+ };
41862
+ if (drag && showIcon && transform && (!visibleMethod || visibleMethod(params))) {
41863
+ const nodeItem = nodeMaps[nodeid];
41864
+ if (nodeItem && (isPeerDrag || isCrossDrag || !nodeItem.level)) {
41865
+ const dragConfig = computeDragOpts.value;
41866
+ const {
41867
+ icon,
41868
+ trigger,
41869
+ disabledMethod
41870
+ } = dragConfig;
41871
+ const isDisabled = disabledMethod && disabledMethod(params);
41872
+ const ons = {};
41873
+ if (trigger !== 'node') {
41874
+ ons.onMousedown = evnt => {
41875
+ if (!isDisabled) {
41876
+ handleNodeDragMousedownEvent(evnt, params);
41877
+ }
41878
+ };
41879
+ ons.onMouseup = handleNodeDragMouseupEvent;
41880
+ }
41881
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41882
+ class: ['vxe-tree--drag-handle', {
41883
+ 'is--disabled': isDisabled
41884
+ }],
41885
+ ...ons
41886
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
41887
+ class: icon || getIcon().TREE_DRAG
41888
+ })]);
41889
+ }
41890
+ }
41891
+ return renderEmptyElement($xeTree);
41892
+ };
41205
41893
  const renderRadio = (node, nodeid, isChecked) => {
41206
41894
  const {
41207
41895
  showRadio
@@ -41283,6 +41971,8 @@ function tree_createInternalData() {
41283
41971
  const renderNode = (node, nodeid) => {
41284
41972
  const {
41285
41973
  lazy,
41974
+ drag,
41975
+ transform,
41286
41976
  showRadio,
41287
41977
  showCheckbox,
41288
41978
  showLine,
@@ -41336,10 +42026,29 @@ function tree_createInternalData() {
41336
42026
  node,
41337
42027
  isExpand
41338
42028
  };
42029
+ const itemOn = {
42030
+ onMousedown(evnt) {
42031
+ handleNodeMousedownEvent(evnt, node);
42032
+ },
42033
+ onMouseup: handleNodeDragMouseupEvent,
42034
+ onClick(evnt) {
42035
+ handleNodeClickEvent(evnt, node);
42036
+ },
42037
+ onDblclick(evnt) {
42038
+ handleNodeDblclickEvent(evnt, node);
42039
+ }
42040
+ };
42041
+ // 拖拽行事件
42042
+ if (drag && transform) {
42043
+ itemOn.onDragstart = handleNodeDragDragstartEvent;
42044
+ itemOn.onDragend = handleNodeDragDragendEvent;
42045
+ itemOn.onDragover = handleNodeDragDragoverEvent;
42046
+ }
41339
42047
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41340
42048
  key: nodeid,
41341
42049
  class: ['vxe-tree--node-wrapper', `node--level-${nLevel}`],
41342
- nodeid
42050
+ nodeid,
42051
+ ...itemOn
41343
42052
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41344
42053
  class: ['vxe-tree--node-item', {
41345
42054
  'is--current': currentNode && nodeid === getNodeId(currentNode),
@@ -41347,13 +42056,7 @@ function tree_createInternalData() {
41347
42056
  'is-checkbox--checked': isCheckboxChecked
41348
42057
  }],
41349
42058
  style: {
41350
- paddingLeft: `${(nLevel - 1) * (indent || 1)}px`
41351
- },
41352
- onClick(evnt) {
41353
- handleNodeClickEvent(evnt, node);
41354
- },
41355
- onDblclick(evnt) {
41356
- handleNodeDblclickEvent(evnt, node);
42059
+ paddingLeft: `${nLevel * (indent || 1)}px`
41357
42060
  }
41358
42061
  }, [showLine ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41359
42062
  class: 'vxe-tree--node-line-wrapper'
@@ -41371,7 +42074,7 @@ function tree_createInternalData() {
41371
42074
  }
41372
42075
  }, iconSlot ? vn_getSlotVNs(iconSlot(nParams)) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
41373
42076
  class: isLazyLoading ? iconLoaded || getIcon().TREE_NODE_LOADED : isExpand ? iconOpen || getIcon().TREE_NODE_OPEN : iconClose || getIcon().TREE_NODE_CLOSE
41374
- })])] : []), renderRadio(node, nodeid, isRadioChecked), renderCheckbox(node, nodeid, isCheckboxChecked), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42077
+ })])] : []), renderDragIcon(node, nodeid), renderRadio(node, nodeid, isRadioChecked), renderCheckbox(node, nodeid, isCheckboxChecked), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41375
42078
  class: 'vxe-tree--node-item-inner'
41376
42079
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
41377
42080
  class: 'vxe-tree--node-item-title'
@@ -41407,6 +42110,43 @@ function tree_createInternalData() {
41407
42110
  });
41408
42111
  return nodeVNs;
41409
42112
  };
42113
+ const renderDragTip = () => {
42114
+ const {
42115
+ drag
42116
+ } = props;
42117
+ const {
42118
+ dragNode,
42119
+ dragTipText
42120
+ } = reactData;
42121
+ const dragOpts = computeDragOpts.value;
42122
+ const dNode = dragNode;
42123
+ if (drag) {
42124
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42125
+ class: 'vxe-tree--drag-wrapper'
42126
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42127
+ ref: refDragNodeLineElem,
42128
+ class: ['vxe-tree--drag-node-line', {
42129
+ 'is--guides': dragOpts.showGuidesStatus
42130
+ }]
42131
+ }), dNode && dragOpts.showDragTip ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42132
+ ref: refDragTipElem,
42133
+ class: 'vxe-tree--drag-sort-tip'
42134
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42135
+ class: 'vxe-tree--drag-sort-tip-wrapper'
42136
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42137
+ class: 'vxe-tree--drag-sort-tip-status'
42138
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
42139
+ class: ['vxe-tree--drag-sort-tip-normal-status', getIcon().TREE_DRAG_STATUS_NODE]
42140
+ }), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
42141
+ class: ['vxe-tree--drag-sort-tip-sub-status', getIcon().TREE_DRAG_STATUS_SUB_NODE]
42142
+ }), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
42143
+ class: ['vxe-tree--drag-sort-tip-disabled-status', getIcon().TREE_DRAG_DISABLED]
42144
+ })]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
42145
+ class: 'vxe-tree--drag-sort-tip-content'
42146
+ }, dragTipText)])]) : renderEmptyElement($xeTree)]);
42147
+ }
42148
+ return renderEmptyElement($xeTree);
42149
+ };
41410
42150
  const renderVN = () => {
41411
42151
  const {
41412
42152
  loading,
@@ -41465,6 +42205,10 @@ function tree_createInternalData() {
41465
42205
  }, footerSlot({
41466
42206
  $tree: $xeTree
41467
42207
  })) : renderEmptyElement($xeTree),
42208
+ /**
42209
+ * 拖拽提示
42210
+ */
42211
+ renderDragTip(),
41468
42212
  /**
41469
42213
  * 加载中
41470
42214
  */
@@ -44977,6 +45721,9 @@ if (typeof window !== 'undefined') {
44977
45721
  if (window.VxeUI && !window.VxeUIBase) {
44978
45722
  window.VxeUIBase = components_namespaceObject;
44979
45723
  }
45724
+ if (window.VxeUIBase && !window.VxeUI) {
45725
+ window.VxeUI = components_namespaceObject;
45726
+ }
44980
45727
  }
44981
45728
 
44982
45729
  /* harmony default export */ var index = (components_namespaceObject);