vxe-pc-ui 4.15.15 → 4.15.17

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 (233) hide show
  1. package/dist/all.esm.js +462 -186
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/button/style.css +8 -4
  5. package/es/button/style.min.css +1 -1
  6. package/es/cascader/src/cascader.js +3 -3
  7. package/es/color-picker/src/color-picker.js +3 -3
  8. package/es/date-range-picker/src/date-range-picker.js +3 -3
  9. package/es/drawer/src/drawer.js +2 -2
  10. package/es/form/src/render.js +2 -2
  11. package/es/icon/style.css +1 -1
  12. package/es/icon-picker/src/icon-picker.js +17 -1
  13. package/es/icon-picker/style.css +14 -15
  14. package/es/icon-picker/style.min.css +1 -1
  15. package/es/language/ar-EG.js +2 -1
  16. package/es/language/de-DE.js +2 -1
  17. package/es/language/en-US.js +2 -1
  18. package/es/language/es-ES.js +2 -1
  19. package/es/language/fr-FR.js +2 -1
  20. package/es/language/hu-HU.js +2 -1
  21. package/es/language/hy-AM.js +2 -1
  22. package/es/language/id-ID.js +2 -1
  23. package/es/language/it-IT.js +2 -1
  24. package/es/language/ja-JP.js +2 -1
  25. package/es/language/ko-KR.js +2 -1
  26. package/es/language/ms-MY.js +2 -1
  27. package/es/language/nb-NO.js +2 -1
  28. package/es/language/pt-BR.js +2 -1
  29. package/es/language/ru-RU.js +2 -1
  30. package/es/language/th-TH.js +2 -1
  31. package/es/language/ug-CN.js +2 -1
  32. package/es/language/uk-UA.js +2 -1
  33. package/es/language/uz-UZ.js +2 -1
  34. package/es/language/vi-VN.js +2 -1
  35. package/es/language/zh-CHT.js +2 -1
  36. package/es/language/zh-CN.js +2 -1
  37. package/es/layout-aside/src/layout-aside.js +1 -1
  38. package/es/layout-container/style.css +14 -0
  39. package/es/layout-container/style.min.css +1 -1
  40. package/es/menu/style.css +0 -7
  41. package/es/menu/style.min.css +1 -1
  42. package/es/modal/src/modal.js +2 -2
  43. package/es/pager/src/pager.js +2 -2
  44. package/es/style.css +1 -1
  45. package/es/style.min.css +1 -1
  46. package/es/tree/src/tree.js +362 -109
  47. package/es/tree/style.css +1 -1
  48. package/es/tree/style.min.css +1 -1
  49. package/es/tree-select/src/tree-select.js +1 -1
  50. package/es/ui/index.js +8 -1
  51. package/es/ui/src/log.js +1 -1
  52. package/es/vxe-button/style.css +8 -4
  53. package/es/vxe-button/style.min.css +1 -1
  54. package/es/vxe-icon-picker/style.css +14 -15
  55. package/es/vxe-icon-picker/style.min.css +1 -1
  56. package/es/vxe-layout-container/style.css +14 -0
  57. package/es/vxe-layout-container/style.min.css +1 -1
  58. package/es/vxe-menu/style.css +0 -7
  59. package/es/vxe-menu/style.min.css +1 -1
  60. package/es/vxe-tree/style.css +1 -1
  61. package/es/vxe-tree/style.min.css +1 -1
  62. package/lib/button/style/style.css +8 -4
  63. package/lib/button/style/style.min.css +1 -1
  64. package/lib/cascader/src/cascader.js +3 -3
  65. package/lib/cascader/src/cascader.min.js +1 -1
  66. package/lib/color-picker/src/color-picker.js +3 -3
  67. package/lib/color-picker/src/color-picker.min.js +1 -1
  68. package/lib/date-range-picker/src/date-range-picker.js +3 -3
  69. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  70. package/lib/drawer/src/drawer.js +3 -3
  71. package/lib/drawer/src/drawer.min.js +1 -1
  72. package/lib/form/src/render.js +2 -2
  73. package/lib/form/src/render.min.js +1 -1
  74. package/lib/icon/style/style.css +1 -1
  75. package/lib/icon/style/style.min.css +1 -1
  76. package/lib/icon-picker/src/icon-picker.js +18 -1
  77. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  78. package/lib/icon-picker/style/style.css +14 -15
  79. package/lib/icon-picker/style/style.min.css +1 -1
  80. package/lib/index.umd.js +516 -205
  81. package/lib/index.umd.min.js +1 -1
  82. package/lib/language/ar-EG.js +2 -1
  83. package/lib/language/ar-EG.min.js +1 -1
  84. package/lib/language/ar-EG.umd.js +2 -1
  85. package/lib/language/de-DE.js +2 -1
  86. package/lib/language/de-DE.min.js +1 -1
  87. package/lib/language/de-DE.umd.js +2 -1
  88. package/lib/language/en-US.js +2 -1
  89. package/lib/language/en-US.min.js +1 -1
  90. package/lib/language/en-US.umd.js +2 -1
  91. package/lib/language/es-ES.js +2 -1
  92. package/lib/language/es-ES.min.js +1 -1
  93. package/lib/language/es-ES.umd.js +2 -1
  94. package/lib/language/fr-FR.js +2 -1
  95. package/lib/language/fr-FR.min.js +1 -1
  96. package/lib/language/fr-FR.umd.js +2 -1
  97. package/lib/language/hu-HU.js +2 -1
  98. package/lib/language/hu-HU.min.js +1 -1
  99. package/lib/language/hu-HU.umd.js +2 -1
  100. package/lib/language/hy-AM.js +2 -1
  101. package/lib/language/hy-AM.min.js +1 -1
  102. package/lib/language/hy-AM.umd.js +2 -1
  103. package/lib/language/id-ID.js +2 -1
  104. package/lib/language/id-ID.min.js +1 -1
  105. package/lib/language/id-ID.umd.js +2 -1
  106. package/lib/language/it-IT.js +2 -1
  107. package/lib/language/it-IT.min.js +1 -1
  108. package/lib/language/it-IT.umd.js +2 -1
  109. package/lib/language/ja-JP.js +2 -1
  110. package/lib/language/ja-JP.min.js +1 -1
  111. package/lib/language/ja-JP.umd.js +2 -1
  112. package/lib/language/ko-KR.js +2 -1
  113. package/lib/language/ko-KR.min.js +1 -1
  114. package/lib/language/ko-KR.umd.js +2 -1
  115. package/lib/language/ms-MY.js +2 -1
  116. package/lib/language/ms-MY.min.js +1 -1
  117. package/lib/language/ms-MY.umd.js +2 -1
  118. package/lib/language/nb-NO.js +2 -1
  119. package/lib/language/nb-NO.min.js +1 -1
  120. package/lib/language/nb-NO.umd.js +2 -1
  121. package/lib/language/pt-BR.js +2 -1
  122. package/lib/language/pt-BR.min.js +1 -1
  123. package/lib/language/pt-BR.umd.js +2 -1
  124. package/lib/language/ru-RU.js +2 -1
  125. package/lib/language/ru-RU.min.js +1 -1
  126. package/lib/language/ru-RU.umd.js +2 -1
  127. package/lib/language/th-TH.js +2 -1
  128. package/lib/language/th-TH.min.js +1 -1
  129. package/lib/language/th-TH.umd.js +2 -1
  130. package/lib/language/ug-CN.js +2 -1
  131. package/lib/language/ug-CN.min.js +1 -1
  132. package/lib/language/ug-CN.umd.js +2 -1
  133. package/lib/language/uk-UA.js +2 -1
  134. package/lib/language/uk-UA.min.js +1 -1
  135. package/lib/language/uk-UA.umd.js +2 -1
  136. package/lib/language/uz-UZ.js +2 -1
  137. package/lib/language/uz-UZ.min.js +1 -1
  138. package/lib/language/uz-UZ.umd.js +2 -1
  139. package/lib/language/vi-VN.js +2 -1
  140. package/lib/language/vi-VN.min.js +1 -1
  141. package/lib/language/vi-VN.umd.js +2 -1
  142. package/lib/language/zh-CHT.js +2 -1
  143. package/lib/language/zh-CHT.min.js +1 -1
  144. package/lib/language/zh-CHT.umd.js +2 -1
  145. package/lib/language/zh-CN.js +2 -1
  146. package/lib/language/zh-CN.min.js +1 -1
  147. package/lib/language/zh-CN.umd.js +2 -1
  148. package/lib/layout-aside/src/layout-aside.js +1 -1
  149. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  150. package/lib/layout-container/style/style.css +14 -0
  151. package/lib/layout-container/style/style.min.css +1 -1
  152. package/lib/menu/style/style.css +0 -7
  153. package/lib/menu/style/style.min.css +1 -1
  154. package/lib/modal/src/modal.js +3 -3
  155. package/lib/modal/src/modal.min.js +1 -1
  156. package/lib/pager/src/pager.js +2 -2
  157. package/lib/pager/src/pager.min.js +1 -1
  158. package/lib/style.css +1 -1
  159. package/lib/style.min.css +1 -1
  160. package/lib/tree/src/tree.js +394 -108
  161. package/lib/tree/src/tree.min.js +1 -1
  162. package/lib/tree/style/style.css +1 -1
  163. package/lib/tree/style/style.min.css +1 -1
  164. package/lib/tree-select/src/tree-select.js +1 -1
  165. package/lib/tree-select/src/tree-select.min.js +1 -1
  166. package/lib/ui/index.js +8 -1
  167. package/lib/ui/index.min.js +1 -1
  168. package/lib/ui/src/log.js +1 -1
  169. package/lib/ui/src/log.min.js +1 -1
  170. package/lib/vxe-button/style/style.css +8 -4
  171. package/lib/vxe-button/style/style.min.css +1 -1
  172. package/lib/vxe-icon-picker/style/style.css +14 -15
  173. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  174. package/lib/vxe-layout-container/style/style.css +14 -0
  175. package/lib/vxe-layout-container/style/style.min.css +1 -1
  176. package/lib/vxe-menu/style/style.css +0 -7
  177. package/lib/vxe-menu/style/style.min.css +1 -1
  178. package/lib/vxe-tree/style/style.css +1 -1
  179. package/lib/vxe-tree/style/style.min.css +1 -1
  180. package/package.json +1 -1
  181. package/packages/cascader/src/cascader.ts +3 -3
  182. package/packages/color-picker/src/color-picker.ts +3 -3
  183. package/packages/date-range-picker/src/date-range-picker.ts +3 -3
  184. package/packages/drawer/src/drawer.ts +2 -2
  185. package/packages/form/src/render.ts +2 -2
  186. package/packages/icon-picker/src/icon-picker.ts +19 -1
  187. package/packages/language/ar-EG.ts +2 -1
  188. package/packages/language/de-DE.ts +2 -1
  189. package/packages/language/en-US.ts +2 -1
  190. package/packages/language/es-ES.ts +2 -1
  191. package/packages/language/fr-FR.ts +2 -1
  192. package/packages/language/hu-HU.ts +2 -1
  193. package/packages/language/hy-AM.ts +2 -1
  194. package/packages/language/id-ID.ts +2 -1
  195. package/packages/language/it-IT.ts +2 -1
  196. package/packages/language/ja-JP.ts +2 -1
  197. package/packages/language/ko-KR.ts +2 -1
  198. package/packages/language/ms-MY.ts +2 -1
  199. package/packages/language/nb-NO.ts +2 -1
  200. package/packages/language/pt-BR.ts +2 -1
  201. package/packages/language/ru-RU.ts +2 -1
  202. package/packages/language/th-TH.ts +2 -1
  203. package/packages/language/ug-CN.ts +2 -1
  204. package/packages/language/uk-UA.ts +2 -1
  205. package/packages/language/uz-UZ.ts +2 -1
  206. package/packages/language/vi-VN.ts +2 -1
  207. package/packages/language/zh-CHT.ts +2 -1
  208. package/packages/language/zh-CN.ts +2 -1
  209. package/packages/layout-aside/src/layout-aside.ts +1 -1
  210. package/packages/modal/src/modal.ts +2 -2
  211. package/packages/pager/src/pager.ts +2 -2
  212. package/packages/tree/src/tree.ts +382 -122
  213. package/packages/tree-select/src/tree-select.ts +1 -1
  214. package/packages/ui/index.ts +7 -0
  215. package/styles/components/button.scss +2 -1
  216. package/styles/components/icon-picker.scss +14 -15
  217. package/styles/components/layout-container.scss +15 -0
  218. package/styles/components/menu.scss +0 -12
  219. package/styles/components/tree.scss +1 -1
  220. package/styles/theme/base.scss +1 -1
  221. package/types/components/tree.d.ts +91 -5
  222. /package/es/icon/{iconfont.1782810550462.ttf → iconfont.1782880794424.ttf} +0 -0
  223. /package/es/icon/{iconfont.1782810550462.woff → iconfont.1782880794424.woff} +0 -0
  224. /package/es/icon/{iconfont.1782810550462.woff2 → iconfont.1782880794424.woff2} +0 -0
  225. /package/es/{iconfont.1782810550462.ttf → iconfont.1782880794424.ttf} +0 -0
  226. /package/es/{iconfont.1782810550462.woff → iconfont.1782880794424.woff} +0 -0
  227. /package/es/{iconfont.1782810550462.woff2 → iconfont.1782880794424.woff2} +0 -0
  228. /package/lib/icon/style/{iconfont.1782810550462.ttf → iconfont.1782880794424.ttf} +0 -0
  229. /package/lib/icon/style/{iconfont.1782810550462.woff → iconfont.1782880794424.woff} +0 -0
  230. /package/lib/icon/style/{iconfont.1782810550462.woff2 → iconfont.1782880794424.woff2} +0 -0
  231. /package/lib/{iconfont.1782810550462.ttf → iconfont.1782880794424.ttf} +0 -0
  232. /package/lib/{iconfont.1782810550462.woff → iconfont.1782880794424.woff} +0 -0
  233. /package/lib/{iconfont.1782810550462.woff2 → iconfont.1782880794424.woff2} +0 -0
package/dist/all.esm.js CHANGED
@@ -81,7 +81,7 @@ function checkDynamic() {
81
81
  }
82
82
 
83
83
  const { log } = VxeUI;
84
- const uiVersion = `ui v${"4.15.15"}`;
84
+ const uiVersion = `ui v${"4.15.17"}`;
85
85
  function createComponentLog(name) {
86
86
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
87
87
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -95,7 +95,7 @@ function createComponentLog(name) {
95
95
  const warnLog$c = log.create('warn', uiVersion);
96
96
  log.create('error', uiVersion);
97
97
 
98
- const version = "4.15.15";
98
+ const version = "4.15.17";
99
99
  VxeUI.uiVersion = version;
100
100
  VxeUI.dynamicApp = dynamicApp;
101
101
  function config(options) {
@@ -512,9 +512,16 @@ setConfig$1({
512
512
  // autoResize: false,
513
513
  indent: 20,
514
514
  minHeight: 60,
515
+ showOverflow: true,
515
516
  radioConfig: {
516
517
  strict: true
517
518
  },
519
+ tooltipConfig: {
520
+ mode: 'tooltip',
521
+ enterable: true,
522
+ leaveDelay: 300,
523
+ defaultPlacement: 'top'
524
+ },
518
525
  dragConfig: {
519
526
  showIcon: true,
520
527
  animation: true,
@@ -1066,7 +1073,8 @@ var zhCN = {
1066
1073
  cancelFixed: '取消冻结列'
1067
1074
  },
1068
1075
  iconPicker: {
1069
- search: '搜索'
1076
+ search: '搜索',
1077
+ emptyText: '暂无数据'
1070
1078
  },
1071
1079
  datePicker: {
1072
1080
  yearTitle: '{0} 年'
@@ -8341,6 +8349,15 @@ var VxeListComponent = defineVxeComponent({
8341
8349
  }
8342
8350
  });
8343
8351
 
8352
+ const VxeList = Object.assign(VxeListComponent, {
8353
+ install(app) {
8354
+ app.component(VxeListComponent.name, VxeListComponent);
8355
+ }
8356
+ });
8357
+ dynamicApp.use(VxeList);
8358
+ VxeUI.component(VxeListComponent);
8359
+ const List = VxeList;
8360
+
8344
8361
  function handleNumber(val) {
8345
8362
  return XEUtils.isString(val) ? val.replace(/[^0-9e.-]/g, '') : val;
8346
8363
  }
@@ -11038,6 +11055,15 @@ var VxeInputComponent = defineVxeComponent({
11038
11055
  }
11039
11056
  });
11040
11057
 
11058
+ const VxeInput = Object.assign(VxeInputComponent, {
11059
+ install(app) {
11060
+ app.component(VxeInputComponent.name, VxeInputComponent);
11061
+ }
11062
+ });
11063
+ dynamicApp.use(VxeInput);
11064
+ VxeUI.component(VxeInputComponent);
11065
+ const Input = VxeInput;
11066
+
11041
11067
  /**
11042
11068
  * 生成节点的唯一主键
11043
11069
  */
@@ -12584,7 +12610,7 @@ var VxeCascaderComponent = defineVxeComponent({
12584
12610
  'is--active': isActivated
12585
12611
  }]
12586
12612
  }, [
12587
- h(VxeInputComponent, {
12613
+ h(VxeInput, {
12588
12614
  ref: refInput,
12589
12615
  clearable: props.clearable,
12590
12616
  placeholder: loading ? getI18n$2('vxe.select.loadingText') : props.placeholder,
@@ -12628,7 +12654,7 @@ var VxeCascaderComponent = defineVxeComponent({
12628
12654
  ? h('div', {
12629
12655
  class: 'vxe-cascader--panel-search'
12630
12656
  }, [
12631
- h(VxeInputComponent, {
12657
+ h(VxeInput, {
12632
12658
  ref: refInpSearch,
12633
12659
  class: 'vxe-cascader-search--input',
12634
12660
  modelValue: searchValue,
@@ -12655,14 +12681,14 @@ var VxeCascaderComponent = defineVxeComponent({
12655
12681
  class: 'vxe-cascader--selected-btns'
12656
12682
  }, [
12657
12683
  (showCheckedButton && multiple)
12658
- ? h(VxeButtonComponent, {
12684
+ ? h(VxeButton, {
12659
12685
  content: getI18n$2('vxe.treeSelect.allChecked'),
12660
12686
  mode: 'text',
12661
12687
  onClick: allCheckedPanelEvent
12662
12688
  })
12663
12689
  : renderEmptyElement($xeCascader),
12664
12690
  showClearButton
12665
- ? h(VxeButtonComponent, {
12691
+ ? h(VxeButton, {
12666
12692
  content: getI18n$2('vxe.treeSelect.clearChecked'),
12667
12693
  mode: 'text',
12668
12694
  onClick: clearCheckedPanelEvent
@@ -12685,7 +12711,7 @@ var VxeCascaderComponent = defineVxeComponent({
12685
12711
  key: chunkIndex,
12686
12712
  class: 'vxe-cascader-chunk--item-wrapper'
12687
12713
  }, [
12688
- h(VxeListComponent, {
12714
+ h(VxeList, {
12689
12715
  data: chunks,
12690
12716
  virtualYConfig: listVirtualYOpts
12691
12717
  }, {
@@ -12719,7 +12745,7 @@ var VxeCascaderComponent = defineVxeComponent({
12719
12745
  ? h('div', {
12720
12746
  class: 'vxe-cascader--oper-btns'
12721
12747
  }, [
12722
- h(VxeButtonComponent, {
12748
+ h(VxeButton, {
12723
12749
  content: getI18n$2('vxe.select.close'),
12724
12750
  mode: 'text',
12725
12751
  onClick: closePanelEvent
@@ -15110,6 +15136,15 @@ var VxeNumberInputComponent = defineVxeComponent({
15110
15136
  }
15111
15137
  });
15112
15138
 
15139
+ const VxeNumberInput = Object.assign({}, VxeNumberInputComponent, {
15140
+ install(app) {
15141
+ app.component(VxeNumberInputComponent.name, VxeNumberInputComponent);
15142
+ }
15143
+ });
15144
+ dynamicApp.use(VxeNumberInput);
15145
+ VxeUI.component(VxeNumberInputComponent);
15146
+ const NumberInput = VxeNumberInput;
15147
+
15113
15148
  var VxeColorPickerComponent = defineVxeComponent({
15114
15149
  name: 'VxeColorPicker',
15115
15150
  props: {
@@ -15882,7 +15917,7 @@ var VxeColorPickerComponent = defineVxeComponent({
15882
15917
  h('div', {
15883
15918
  class: 'vxe-color-picker--input-wrapper'
15884
15919
  }, [
15885
- h(VxeNumberInputComponent, {
15920
+ h(VxeNumberInput, {
15886
15921
  type: 'integer',
15887
15922
  size: 'mini',
15888
15923
  align: 'center',
@@ -15899,7 +15934,7 @@ var VxeColorPickerComponent = defineVxeComponent({
15899
15934
  },
15900
15935
  onChange: handleInputRgbEvent
15901
15936
  }),
15902
- h(VxeNumberInputComponent, {
15937
+ h(VxeNumberInput, {
15903
15938
  type: 'integer',
15904
15939
  size: 'mini',
15905
15940
  align: 'center',
@@ -15916,7 +15951,7 @@ var VxeColorPickerComponent = defineVxeComponent({
15916
15951
  },
15917
15952
  onChange: handleInputRgbEvent
15918
15953
  }),
15919
- h(VxeNumberInputComponent, {
15954
+ h(VxeNumberInput, {
15920
15955
  type: 'integer',
15921
15956
  size: 'mini',
15922
15957
  align: 'center',
@@ -15933,7 +15968,7 @@ var VxeColorPickerComponent = defineVxeComponent({
15933
15968
  },
15934
15969
  onChange: handleInputRgbEvent
15935
15970
  }),
15936
- h(VxeNumberInputComponent, {
15971
+ h(VxeNumberInput, {
15937
15972
  type: 'number',
15938
15973
  size: 'mini',
15939
15974
  align: 'center',
@@ -15965,7 +16000,7 @@ var VxeColorPickerComponent = defineVxeComponent({
15965
16000
  h('div', {
15966
16001
  class: 'vxe-color-picker--input-wrapper'
15967
16002
  }, [
15968
- h(VxeInputComponent, {
16003
+ h(VxeInput, {
15969
16004
  type: 'text',
15970
16005
  size: 'mini',
15971
16006
  align: 'center',
@@ -16089,13 +16124,13 @@ var VxeColorPickerComponent = defineVxeComponent({
16089
16124
  class: 'vxe-color-picker--footer-wrapper'
16090
16125
  }, [
16091
16126
  clearable
16092
- ? h(VxeButtonComponent, {
16127
+ ? h(VxeButton, {
16093
16128
  content: getI18n$2('vxe.colorPicker.clear'),
16094
16129
  size: 'mini',
16095
16130
  onClick: clearEvent
16096
16131
  })
16097
16132
  : renderEmptyElement($xeColorPicker),
16098
- h(VxeButtonComponent, {
16133
+ h(VxeButton, {
16099
16134
  content: getI18n$2('vxe.colorPicker.confirm'),
16100
16135
  size: 'mini',
16101
16136
  status: 'primary',
@@ -21575,7 +21610,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
21575
21610
  return h('div', {
21576
21611
  class: `vxe-date-range-picker--layout-${pos}-wrapper`
21577
21612
  }, [
21578
- h(VxeButtonGroupComponent, {
21613
+ h(VxeButtonGroup, {
21579
21614
  options: shortcutList,
21580
21615
  mode,
21581
21616
  align,
@@ -21667,7 +21702,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
21667
21702
  h('div', {
21668
21703
  class: 'vxe-date-range-picker--layout-body-wrapper'
21669
21704
  }, [
21670
- h(VxeDatePanelComponent, {
21705
+ h(VxeDatePanel, {
21671
21706
  ref: refStartDatePanel,
21672
21707
  modelValue: startValue,
21673
21708
  type: props.type,
@@ -21691,7 +21726,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
21691
21726
  onDateToday: startPanelDateBtnChangeEvent,
21692
21727
  onDateNext: startPanelDateBtnChangeEvent
21693
21728
  }),
21694
- h(VxeDatePanelComponent, {
21729
+ h(VxeDatePanel, {
21695
21730
  ref: refEndDatePanel,
21696
21731
  modelValue: endValue,
21697
21732
  type: props.type,
@@ -21735,7 +21770,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
21735
21770
  class: 'vxe-date-range-picker--layout-footer-btns'
21736
21771
  }, [
21737
21772
  showClearBtn
21738
- ? h(VxeButtonComponent, {
21773
+ ? h(VxeButton, {
21739
21774
  size: 'mini',
21740
21775
  disabled: !(startValue || endValue),
21741
21776
  content: getI18n$2('vxe.button.clear'),
@@ -21743,7 +21778,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
21743
21778
  })
21744
21779
  : renderEmptyElement($xeDateRangePicker),
21745
21780
  showConfirmBtn
21746
- ? h(VxeButtonComponent, {
21781
+ ? h(VxeButton, {
21747
21782
  size: 'mini',
21748
21783
  status: 'primary',
21749
21784
  content: getI18n$2('vxe.button.confirm'),
@@ -22437,7 +22472,7 @@ var VxeDrawerComponent = defineVxeComponent({
22437
22472
  const rfSlot = slots.rightfoot || propSlots.rightfoot;
22438
22473
  const btnVNs = [];
22439
22474
  if (showCancelButton) {
22440
- btnVNs.push(h(VxeButtonComponent, {
22475
+ btnVNs.push(h(VxeButton, {
22441
22476
  key: 1,
22442
22477
  ref: refCancelBtn,
22443
22478
  content: props.cancelButtonText || getI18n$2('vxe.button.cancel'),
@@ -22445,7 +22480,7 @@ var VxeDrawerComponent = defineVxeComponent({
22445
22480
  }));
22446
22481
  }
22447
22482
  if (showConfirmButton) {
22448
- btnVNs.push(h(VxeButtonComponent, {
22483
+ btnVNs.push(h(VxeButton, {
22449
22484
  key: 2,
22450
22485
  ref: refConfirmBtn,
22451
22486
  loading: loading,
@@ -22923,11 +22958,20 @@ var VxeIconComponent = defineVxeComponent({
22923
22958
  }
22924
22959
  });
22925
22960
 
22961
+ const VxeIcon = Object.assign({}, VxeIconComponent, {
22962
+ install(app) {
22963
+ app.component(VxeIconComponent.name, VxeIconComponent);
22964
+ }
22965
+ });
22966
+ dynamicApp.use(VxeIcon);
22967
+ VxeUI.component(VxeIconComponent);
22968
+ const Icon = VxeIcon;
22969
+
22926
22970
  function renderPrefixIcon(titlePrefix) {
22927
22971
  return h('span', {
22928
22972
  class: 'vxe-form--item-title-tip-prefix'
22929
22973
  }, [
22930
- h(VxeIconComponent, {
22974
+ h(VxeIcon, {
22931
22975
  class: titlePrefix.icon || getIcon$2().FORM_PREFIX,
22932
22976
  status: titlePrefix.iconStatus
22933
22977
  })
@@ -22937,7 +22981,7 @@ function renderSuffixIcon(titleSuffix) {
22937
22981
  return h('span', {
22938
22982
  class: 'vxe-form--item-title-tip-suffix'
22939
22983
  }, [
22940
- h(VxeIconComponent, {
22984
+ h(VxeIcon, {
22941
22985
  class: titleSuffix.icon || getIcon$2().FORM_SUFFIX,
22942
22986
  status: titleSuffix.iconStatus
22943
22987
  })
@@ -23055,7 +23099,7 @@ function renderTitle($xeForm, item, isGroup) {
23055
23099
  }
23056
23100
  if (titlePrefix) {
23057
23101
  titVNs.push((titlePrefix.content || titlePrefix.message)
23058
- ? h(VxeTooltipComponent, Object.assign(Object.assign(Object.assign({ key: 'pm' }, tooltipOpts), titlePrefix), { content: getFuncText(titlePrefix.content || titlePrefix.message) }), {
23102
+ ? h(VxeTooltip, Object.assign(Object.assign(Object.assign({ key: 'pm' }, tooltipOpts), titlePrefix), { content: getFuncText(titlePrefix.content || titlePrefix.message) }), {
23059
23103
  default: () => renderPrefixIcon(titlePrefix)
23060
23104
  })
23061
23105
  : renderPrefixIcon(titlePrefix));
@@ -23068,7 +23112,7 @@ function renderTitle($xeForm, item, isGroup) {
23068
23112
  const fixVNs = [];
23069
23113
  if (titleSuffix) {
23070
23114
  fixVNs.push((titleSuffix.content || titleSuffix.message)
23071
- ? h(VxeTooltipComponent, Object.assign(Object.assign(Object.assign({ key: 'sm' }, tooltipOpts), titleSuffix), { content: getFuncText(titleSuffix.content || titleSuffix.message) }), {
23115
+ ? h(VxeTooltip, Object.assign(Object.assign(Object.assign({ key: 'sm' }, tooltipOpts), titleSuffix), { content: getFuncText(titleSuffix.content || titleSuffix.message) }), {
23072
23116
  default: () => renderSuffixIcon(titleSuffix)
23073
23117
  })
23074
23118
  : renderSuffixIcon(titleSuffix));
@@ -25040,15 +25084,6 @@ dynamicApp.use(VxeFormItem);
25040
25084
  VxeUI.component(VxeFormItemComponent);
25041
25085
  const FormItem = VxeFormItem;
25042
25086
 
25043
- const VxeIcon = Object.assign({}, VxeIconComponent, {
25044
- install(app) {
25045
- app.component(VxeIconComponent.name, VxeIconComponent);
25046
- }
25047
- });
25048
- dynamicApp.use(VxeIcon);
25049
- VxeUI.component(VxeIconComponent);
25050
- const Icon = VxeIcon;
25051
-
25052
25087
  function createReactData$b() {
25053
25088
  return {
25054
25089
  initialized: false,
@@ -25199,7 +25234,7 @@ var VxeIconPickerComponent = defineVxeComponent({
25199
25234
  if (height) {
25200
25235
  stys['--vxe-ui-icon-picker-panel-height'] = toCssUnit(height);
25201
25236
  }
25202
- else if (maxHeight) {
25237
+ if (maxHeight) {
25203
25238
  stys['--vxe-ui-icon-picker-panel-max-height'] = toCssUnit(maxHeight);
25204
25239
  }
25205
25240
  return stys;
@@ -25283,6 +25318,7 @@ var VxeIconPickerComponent = defineVxeComponent({
25283
25318
  reactData.isAniVisible = true;
25284
25319
  setTimeout(() => {
25285
25320
  reactData.visiblePanel = true;
25321
+ handleFocusSearch();
25286
25322
  updatePlacement();
25287
25323
  }, 10);
25288
25324
  updateZindex();
@@ -25295,6 +25331,16 @@ var VxeIconPickerComponent = defineVxeComponent({
25295
25331
  reactData.isAniVisible = false;
25296
25332
  }, 350);
25297
25333
  };
25334
+ const handleFocusSearch = () => {
25335
+ if (props.filterable) {
25336
+ nextTick(() => {
25337
+ const inpSearch = refInpSearch.value;
25338
+ if (inpSearch) {
25339
+ inpSearch.focus();
25340
+ }
25341
+ });
25342
+ }
25343
+ };
25298
25344
  const handleData = () => {
25299
25345
  const { modelValue } = props;
25300
25346
  const { searchValue } = reactData;
@@ -25513,6 +25559,11 @@ var VxeIconPickerComponent = defineVxeComponent({
25513
25559
  const renderIconWrapper = () => {
25514
25560
  const { showIconTitle } = props;
25515
25561
  const { selectIcon, iconGroups } = reactData;
25562
+ if (!iconGroups.length) {
25563
+ return h('div', {
25564
+ class: 'vxe-ico-picker--empty-placeholder'
25565
+ }, getI18n$2('vxe.iconPicker.emptyText'));
25566
+ }
25516
25567
  return h('div', {
25517
25568
  class: 'vxe-ico-picker--list-wrapper'
25518
25569
  }, iconGroups.map(list => {
@@ -26836,15 +26887,6 @@ dynamicApp.use(VxeImagePreview);
26836
26887
  VxeUI.component(VxeImagePreviewComponent);
26837
26888
  const ImagePreview = VxeImagePreview;
26838
26889
 
26839
- const VxeInput = Object.assign(VxeInputComponent, {
26840
- install(app) {
26841
- app.component(VxeInputComponent.name, VxeInputComponent);
26842
- }
26843
- });
26844
- dynamicApp.use(VxeInput);
26845
- VxeUI.component(VxeInputComponent);
26846
- const Input = VxeInput;
26847
-
26848
26890
  var VxeLayoutAsideComponent = defineVxeComponent({
26849
26891
  name: 'VxeLayoutAside',
26850
26892
  props: {
@@ -26933,7 +26975,7 @@ var VxeLayoutAsideComponent = defineVxeComponent({
26933
26975
  /**
26934
26976
  * 加载中
26935
26977
  */
26936
- h(VxeLoadingComponent, {
26978
+ h(VxeLoading, {
26937
26979
  class: 'vxe-list-view--loading',
26938
26980
  modelValue: loading
26939
26981
  })
@@ -27401,15 +27443,6 @@ dynamicApp.use(VxeLink);
27401
27443
  VxeUI.component(VxeLinkComponent);
27402
27444
  const Link = VxeLink;
27403
27445
 
27404
- const VxeList = Object.assign(VxeListComponent, {
27405
- install(app) {
27406
- app.component(VxeListComponent.name, VxeListComponent);
27407
- }
27408
- });
27409
- dynamicApp.use(VxeList);
27410
- VxeUI.component(VxeListComponent);
27411
- const List = VxeList;
27412
-
27413
27446
  const { errLog: errLog$9 } = createComponentLog('menu');
27414
27447
  const { menus: menus$1, getConfig: getConfig$1, getIcon: getIcon$1 } = VxeUI;
27415
27448
  var VxeMenuComponent = defineVxeComponent({
@@ -29187,7 +29220,7 @@ var VxeModalComponent = defineVxeComponent({
29187
29220
  const rfSlot = slots.rightfoot || propSlots.rightfoot;
29188
29221
  const btnVNs = [];
29189
29222
  if (XEUtils.isBoolean(showCancelButton) ? showCancelButton : type === 'confirm') {
29190
- btnVNs.push(h(VxeButtonComponent, {
29223
+ btnVNs.push(h(VxeButton, {
29191
29224
  key: 1,
29192
29225
  ref: refCancelBtn,
29193
29226
  content: props.cancelButtonText || getI18n$2('vxe.button.cancel'),
@@ -29195,7 +29228,7 @@ var VxeModalComponent = defineVxeComponent({
29195
29228
  }));
29196
29229
  }
29197
29230
  if (XEUtils.isBoolean(showConfirmButton) ? showConfirmButton : (type === 'confirm' || type === 'alert')) {
29198
- btnVNs.push(h(VxeButtonComponent, {
29231
+ btnVNs.push(h(VxeButton, {
29199
29232
  key: 2,
29200
29233
  ref: refConfirmBtn,
29201
29234
  loading: loading,
@@ -29621,15 +29654,6 @@ dynamicApp.use(VxeNoticeBar);
29621
29654
  VxeUI.component(VxeNoticeBarComponent);
29622
29655
  const NoticeBar = VxeNoticeBar;
29623
29656
 
29624
- const VxeNumberInput = Object.assign({}, VxeNumberInputComponent, {
29625
- install(app) {
29626
- app.component(VxeNumberInputComponent.name, VxeNumberInputComponent);
29627
- }
29628
- });
29629
- dynamicApp.use(VxeNumberInput);
29630
- VxeUI.component(VxeNumberInputComponent);
29631
- const NumberInput = VxeNumberInput;
29632
-
29633
29657
  class OptionInfo {
29634
29658
  constructor($xeselect, _vm) {
29635
29659
  Object.assign(this, {
@@ -31512,6 +31536,15 @@ var VxeSelectComponent = defineVxeComponent({
31512
31536
  }
31513
31537
  });
31514
31538
 
31539
+ const VxeSelect = Object.assign(VxeSelectComponent, {
31540
+ install: function (app) {
31541
+ app.component(VxeSelectComponent.name, VxeSelectComponent);
31542
+ }
31543
+ });
31544
+ dynamicApp.use(VxeSelect);
31545
+ VxeUI.component(VxeSelectComponent);
31546
+ const Select = VxeSelect;
31547
+
31515
31548
  const { warnLog: warnLog$6, errLog: errLog$6 } = createComponentLog('pager');
31516
31549
  var VxePagerComponent = defineVxeComponent({
31517
31550
  name: 'VxePager',
@@ -31960,7 +31993,7 @@ var VxePagerComponent = defineVxeComponent({
31960
31993
  class: 'vxe-pager--custom-sizes'
31961
31994
  }, sizesSlot({ $pager: $xePager, total, currentPage, pageCount, pageSize, options: sizeList }));
31962
31995
  }
31963
- return h(VxeSelectComponent, {
31996
+ return h(VxeSelect, {
31964
31997
  class: 'vxe-pager--sizes',
31965
31998
  modelValue: pageSize,
31966
31999
  placement: pageSizePlacement,
@@ -31988,7 +32021,7 @@ var VxePagerComponent = defineVxeComponent({
31988
32021
  class: 'vxe-pager--goto-text'
31989
32022
  }, getI18n$2('vxe.pager.goto'))
31990
32023
  : null,
31991
- h(VxeNumberInputComponent, {
32024
+ h(VxeNumberInput, {
31992
32025
  class: 'vxe-pager--goto',
31993
32026
  modelValue: reactData.inpCurrPage,
31994
32027
  placeholder: getI18n$2('vxe.pager.gotoTitle'),
@@ -34747,15 +34780,6 @@ dynamicApp.use(VxeSegmented);
34747
34780
  VxeUI.component(VxeSegmentedComponent);
34748
34781
  const Segmented = VxeSegmented;
34749
34782
 
34750
- const VxeSelect = Object.assign(VxeSelectComponent, {
34751
- install: function (app) {
34752
- app.component(VxeSelectComponent.name, VxeSelectComponent);
34753
- }
34754
- });
34755
- dynamicApp.use(VxeSelect);
34756
- VxeUI.component(VxeSelectComponent);
34757
- const Select = VxeSelect;
34758
-
34759
34783
  const { warnLog: warnLog$5, errLog: errLog$5 } = createComponentLog('splitter');
34760
34784
  var VxeSplitComponent = defineVxeComponent({
34761
34785
  name: 'VxeSplitter',
@@ -39479,7 +39503,7 @@ function createInternalData$2() {
39479
39503
  afterVisibleList: [],
39480
39504
  nodeMaps: {},
39481
39505
  selectCheckboxMaps: {},
39482
- indeterminateRowMaps: {},
39506
+ indeterminateNodeMaps: {},
39483
39507
  treeExpandedMaps: {},
39484
39508
  treeExpandLazyLoadedMaps: {},
39485
39509
  lastScrollLeft: 0,
@@ -39491,8 +39515,8 @@ function createInternalData$2() {
39491
39515
  offsetSize: 0,
39492
39516
  rowHeight: 0
39493
39517
  },
39494
- removeRowMaps: {},
39495
- insertRowMaps: {},
39518
+ removeNodeMaps: {},
39519
+ insertNodeMaps: {},
39496
39520
  // prevDragNode: null,
39497
39521
  // prevDragToChild: false,
39498
39522
  // prevDragPos: ''
@@ -39514,10 +39538,15 @@ function createReactData$2() {
39514
39538
  treeList: [],
39515
39539
  updateExpandedFlag: 1,
39516
39540
  updateCheckboxFlag: 1,
39517
- insertRowFlag: 1,
39518
- removeRowFlag: 1,
39541
+ insertNodeFlag: 1,
39542
+ removeNodeFlag: 1,
39519
39543
  dragNode: null,
39520
- dragTipText: ''
39544
+ dragTipText: '',
39545
+ isCrossDragNode: false,
39546
+ tooltipStore: {
39547
+ visible: false,
39548
+ node: null
39549
+ }
39521
39550
  };
39522
39551
  }
39523
39552
  let crossTreeDragNodeObj = null;
@@ -39604,6 +39633,11 @@ var VxeTreeComponent = defineVxeComponent({
39604
39633
  lazy: Boolean,
39605
39634
  toggleMethod: Function,
39606
39635
  loadMethod: Function,
39636
+ showOverflow: {
39637
+ type: Boolean,
39638
+ default: () => getConfig().tree.showOverflow
39639
+ },
39640
+ tooltipConfig: Object,
39607
39641
  drag: {
39608
39642
  type: Boolean,
39609
39643
  default: () => getConfig().tree.drag
@@ -39674,6 +39708,7 @@ var VxeTreeComponent = defineVxeComponent({
39674
39708
  const refVirtualBody = ref();
39675
39709
  const refDragNodeLineElem = ref();
39676
39710
  const refDragTipElem = ref();
39711
+ const refTooltip = ref();
39677
39712
  const crossTreeDragNodeInfo = getCrossTreeDragNodeInfo();
39678
39713
  const internalData = createInternalData$2();
39679
39714
  const reactData = reactive(createReactData$2());
@@ -39705,7 +39740,7 @@ var VxeTreeComponent = defineVxeComponent({
39705
39740
  const computeVirtualYOpts = computed(() => {
39706
39741
  return Object.assign({}, getConfig().tree.virtualYConfig, props.virtualYConfig);
39707
39742
  });
39708
- const computeIsRowCurrent = computed(() => {
39743
+ const computeIsNodeCurrent = computed(() => {
39709
39744
  const nodeOpts = computeNodeOpts.value;
39710
39745
  const { isCurrent } = nodeOpts;
39711
39746
  if (XEUtils.isBoolean(isCurrent)) {
@@ -39713,7 +39748,7 @@ var VxeTreeComponent = defineVxeComponent({
39713
39748
  }
39714
39749
  return props.isCurrent;
39715
39750
  });
39716
- const computeIsRowHover = computed(() => {
39751
+ const computeIsNodeHover = computed(() => {
39717
39752
  const nodeOpts = computeNodeOpts.value;
39718
39753
  const { isHover } = nodeOpts;
39719
39754
  if (XEUtils.isBoolean(isHover)) {
@@ -39736,6 +39771,9 @@ var VxeTreeComponent = defineVxeComponent({
39736
39771
  const computeDragOpts = computed(() => {
39737
39772
  return Object.assign({}, getConfig().tree.dragConfig, props.dragConfig);
39738
39773
  });
39774
+ const computeTooltipOpts = computed(() => {
39775
+ return Object.assign({}, getConfig().tree.tooltipConfig, props.tooltipConfig);
39776
+ });
39739
39777
  const computeMenuOpts = computed(() => {
39740
39778
  return Object.assign({}, getConfig().tree.menuConfig, props.menuConfig);
39741
39779
  });
@@ -39821,8 +39859,8 @@ var VxeTreeComponent = defineVxeComponent({
39821
39859
  };
39822
39860
  const isIndeterminateByCheckboxNodeid = (nodeid) => {
39823
39861
  const { updateCheckboxFlag } = reactData;
39824
- const { indeterminateRowMaps } = internalData;
39825
- return !!(updateCheckboxFlag && indeterminateRowMaps[nodeid]);
39862
+ const { indeterminateNodeMaps } = internalData;
39863
+ return !!(updateCheckboxFlag && indeterminateNodeMaps[nodeid]);
39826
39864
  };
39827
39865
  const isIndeterminateByCheckboxNode = (node) => {
39828
39866
  return isIndeterminateByCheckboxNodeid(getNodeId(node));
@@ -40108,10 +40146,10 @@ var VxeTreeComponent = defineVxeComponent({
40108
40146
  const expandMaps = {};
40109
40147
  if (transform) {
40110
40148
  const fullData = [];
40111
- XEUtils.eachTree(afterTreeList, (item, index, items, path, parentRow) => {
40149
+ XEUtils.eachTree(afterTreeList, (item, index, items, path, parentNode) => {
40112
40150
  const nodeid = getNodeId(item);
40113
- const parentNodeid = getNodeId(parentRow);
40114
- if (!parentRow || (expandMaps[parentNodeid] && treeExpandedMaps[parentNodeid])) {
40151
+ const parentNodeid = getNodeId(parentNode);
40152
+ if (!parentNode || (expandMaps[parentNodeid] && treeExpandedMaps[parentNodeid])) {
40115
40153
  expandMaps[nodeid] = 1;
40116
40154
  fullData.push(item);
40117
40155
  }
@@ -40159,6 +40197,10 @@ var VxeTreeComponent = defineVxeComponent({
40159
40197
  })
40160
40198
  : list ? list.slice(0) : [];
40161
40199
  internalData.treeFullData = fullData;
40200
+ internalData.insertNodeMaps = {};
40201
+ reactData.insertNodeFlag++;
40202
+ internalData.removeNodeMaps = {};
40203
+ reactData.removeNodeFlag++;
40162
40204
  Object.assign(scrollYStore, {
40163
40205
  startIndex: 0,
40164
40206
  endIndex: 1,
@@ -40376,12 +40418,12 @@ var VxeTreeComponent = defineVxeComponent({
40376
40418
  const { showRadio, showCheckbox, trigger } = props;
40377
40419
  const radioOpts = computeRadioOpts.value;
40378
40420
  const checkboxOpts = computeCheckboxOpts.value;
40379
- const isRowCurrent = computeIsRowCurrent.value;
40421
+ const isNodeCurrent = computeIsNodeCurrent.value;
40380
40422
  let triggerCurrent = false;
40381
40423
  let triggerRadio = false;
40382
40424
  let triggerCheckbox = false;
40383
40425
  let triggerExpand = false;
40384
- if (isRowCurrent) {
40426
+ if (isNodeCurrent) {
40385
40427
  triggerCurrent = true;
40386
40428
  changeCurrentEvent(evnt, node);
40387
40429
  }
@@ -40405,14 +40447,109 @@ var VxeTreeComponent = defineVxeComponent({
40405
40447
  const handleNodeDblclickEvent = (evnt, node) => {
40406
40448
  dispatchEvent('node-dblclick', { node }, evnt);
40407
40449
  };
40450
+ const handleNodeMouseenterEvent = (evnt, node) => {
40451
+ const $tooltip = refTooltip.value;
40452
+ if (!$tooltip) {
40453
+ return;
40454
+ }
40455
+ const { tooltipStore } = reactData;
40456
+ const { tipTimeout } = internalData;
40457
+ const nodeEl = evnt.currentTarget;
40458
+ const tooltipOpts = computeTooltipOpts.value;
40459
+ const { showAll, contentMethod } = tooltipOpts;
40460
+ if (tipTimeout) {
40461
+ clearTimeout(tipTimeout);
40462
+ internalData.tipTimeout = undefined;
40463
+ }
40464
+ const titleEl = nodeEl.querySelector('.vxe-tree--node-item-title');
40465
+ const tipOverEl = nodeEl.querySelector('.vxe-tree--node-item-wrapper');
40466
+ if (!tipOverEl) {
40467
+ return;
40468
+ }
40469
+ const cellText = XEUtils.toString(tipOverEl.textContent).trim();
40470
+ const isOver = tipOverEl.scrollWidth > tipOverEl.clientWidth;
40471
+ let isShow = false;
40472
+ let customContent = null;
40473
+ let content = '';
40474
+ if (contentMethod) {
40475
+ customContent = contentMethod({ node, $event: evnt, $tree: $xeTree });
40476
+ }
40477
+ // 是否全部展示
40478
+ if (showAll) {
40479
+ // 如果为 null 默认显示
40480
+ if (XEUtils.eqNull(customContent)) {
40481
+ isShow = true;
40482
+ content = cellText;
40483
+ }
40484
+ else if (customContent !== '' && customContent !== false) {
40485
+ // 如果为 '' | false 则不显示
40486
+ isShow = true;
40487
+ content = '' + customContent;
40488
+ }
40489
+ }
40490
+ else {
40491
+ // 如果为 null 使用默认逻辑
40492
+ if (XEUtils.eqNull(customContent)) {
40493
+ isShow = isOver;
40494
+ content = cellText;
40495
+ }
40496
+ else if (customContent !== '' && customContent !== false) {
40497
+ // 如果为 '' | false 则不显示
40498
+ isShow = true;
40499
+ content = '' + customContent;
40500
+ }
40501
+ else {
40502
+ content = cellText;
40503
+ }
40504
+ }
40505
+ if (isShow && content) {
40506
+ const tipContent = getText(content);
40507
+ tooltipStore.visible = true;
40508
+ tooltipStore.node = node;
40509
+ if ($tooltip.open) {
40510
+ $tooltip.open((isOver ? tipOverEl : titleEl) || tipOverEl, tipContent);
40511
+ }
40512
+ }
40513
+ };
40514
+ const handleNodeMouseleaveEvent = () => {
40515
+ let $tooltip = refTooltip.value;
40516
+ const tooltipOpts = computeTooltipOpts.value;
40517
+ if ($tooltip && $tooltip.setActived) {
40518
+ $tooltip.setActived(false);
40519
+ }
40520
+ if (tooltipOpts.enterable) {
40521
+ internalData.tipTimeout = setTimeout(() => {
40522
+ $tooltip = refTooltip.value;
40523
+ if ($tooltip && $tooltip.isActived && !$tooltip.isActived()) {
40524
+ closeTooltip();
40525
+ }
40526
+ internalData.tipTimeout = undefined;
40527
+ }, tooltipOpts.leaveDelay);
40528
+ }
40529
+ else {
40530
+ closeTooltip();
40531
+ }
40532
+ };
40533
+ const closeTooltip = () => {
40534
+ const { tooltipStore } = reactData;
40535
+ if (tooltipStore.visible) {
40536
+ tooltipStore.visible = false;
40537
+ tooltipStore.node = null;
40538
+ const $tooltip = refTooltip.value;
40539
+ if ($tooltip) {
40540
+ $tooltip.close();
40541
+ }
40542
+ }
40543
+ return nextTick();
40544
+ };
40408
40545
  const handleContextmenuEvent = (evnt, node) => {
40409
40546
  const { menuConfig } = props;
40410
- const isRowCurrent = computeIsRowCurrent.value;
40547
+ const isNodeCurrent = computeIsNodeCurrent.value;
40411
40548
  const menuOpts = computeMenuOpts.value;
40412
40549
  if (menuConfig ? isEnableConf(menuOpts) : menuOpts.enabled) {
40413
40550
  const { options, visibleMethod } = menuOpts;
40414
40551
  if (!visibleMethod || visibleMethod({ $tree: $xeTree, options, node })) {
40415
- if (isRowCurrent) {
40552
+ if (isNodeCurrent) {
40416
40553
  changeCurrentEvent(evnt, node);
40417
40554
  }
40418
40555
  else if (reactData.currentNode) {
@@ -40468,15 +40605,15 @@ var VxeTreeComponent = defineVxeComponent({
40468
40605
  childRecords = [];
40469
40606
  }
40470
40607
  if (childRecords) {
40471
- return $xeTree.loadChildrenNode(node, childRecords).then(childRows => {
40608
+ return $xeTree.loadChildrenNode(node, childRecords).then(childNodes => {
40472
40609
  const { treeExpandedMaps } = internalData;
40473
- if (childRows.length && !treeExpandedMaps[nodeid]) {
40610
+ if (childNodes.length && !treeExpandedMaps[nodeid]) {
40474
40611
  treeExpandedMaps[nodeid] = true;
40475
40612
  }
40476
40613
  reactData.updateExpandedFlag++;
40477
40614
  // 如果当前节点已选中,则展开后子节点也被选中
40478
40615
  if (!checkStrictly && $xeTree.isCheckedByCheckboxNodeId(nodeid)) {
40479
- handleCheckedCheckboxNode(childRows, true);
40616
+ handleCheckedCheckboxNode(childNodes, true);
40480
40617
  }
40481
40618
  dispatchEvent('load-success', { node, data: childRecords }, new Event('load-success'));
40482
40619
  return nextTick();
@@ -40575,23 +40712,23 @@ var VxeTreeComponent = defineVxeComponent({
40575
40712
  };
40576
40713
  const updateCheckboxStatus = () => {
40577
40714
  const { transform } = props;
40578
- const { selectCheckboxMaps, indeterminateRowMaps, afterTreeList } = internalData;
40715
+ const { selectCheckboxMaps, indeterminateNodeMaps, afterTreeList } = internalData;
40579
40716
  const childrenField = computeChildrenField.value;
40580
40717
  const mapChildrenField = computeMapChildrenField.value;
40581
40718
  const checkboxOpts = computeCheckboxOpts.value;
40582
40719
  const { checkStrictly, checkMethod } = checkboxOpts;
40583
40720
  if (!checkStrictly) {
40584
- const childRowMaps = {};
40585
- const childRowList = [];
40721
+ const childNodeMaps = {};
40722
+ const childNodeList = [];
40586
40723
  XEUtils.eachTree(afterTreeList, (node) => {
40587
40724
  const nodeid = getNodeId(node);
40588
40725
  const childList = node[childrenField];
40589
- if (childList && childList.length && !childRowMaps[nodeid]) {
40590
- childRowMaps[nodeid] = 1;
40591
- childRowList.unshift([node, nodeid, childList]);
40726
+ if (childList && childList.length && !childNodeMaps[nodeid]) {
40727
+ childNodeMaps[nodeid] = 1;
40728
+ childNodeList.unshift([node, nodeid, childList]);
40592
40729
  }
40593
40730
  }, { children: transform ? mapChildrenField : childrenField });
40594
- childRowList.forEach(vals => {
40731
+ childNodeList.forEach(vals => {
40595
40732
  const node = vals[0];
40596
40733
  const nodeid = vals[1];
40597
40734
  const childList = vals[2];
@@ -40607,7 +40744,7 @@ var VxeTreeComponent = defineVxeComponent({
40607
40744
  if (isSelect) {
40608
40745
  sLen++;
40609
40746
  }
40610
- else if (indeterminateRowMaps[childNodeid]) {
40747
+ else if (indeterminateNodeMaps[childNodeid]) {
40611
40748
  hLen++;
40612
40749
  }
40613
40750
  vLen++;
@@ -40616,7 +40753,7 @@ var VxeTreeComponent = defineVxeComponent({
40616
40753
  if (isSelect) {
40617
40754
  sLen++;
40618
40755
  }
40619
- else if (indeterminateRowMaps[childNodeid]) {
40756
+ else if (indeterminateNodeMaps[childNodeid]) {
40620
40757
  hLen++;
40621
40758
  }
40622
40759
  }
@@ -40627,7 +40764,7 @@ var VxeTreeComponent = defineVxeComponent({
40627
40764
  if (isSelect) {
40628
40765
  sLen++;
40629
40766
  }
40630
- else if (indeterminateRowMaps[childNodeid]) {
40767
+ else if (indeterminateNodeMaps[childNodeid]) {
40631
40768
  hLen++;
40632
40769
  }
40633
40770
  vLen++;
@@ -40657,8 +40794,8 @@ var VxeTreeComponent = defineVxeComponent({
40657
40794
  const halfSelect = !isSelected && (sLen > 0 || hLen > 0);
40658
40795
  if (isSelected) {
40659
40796
  selectCheckboxMaps[nodeid] = node;
40660
- if (indeterminateRowMaps[nodeid]) {
40661
- delete indeterminateRowMaps[nodeid];
40797
+ if (indeterminateNodeMaps[nodeid]) {
40798
+ delete indeterminateNodeMaps[nodeid];
40662
40799
  }
40663
40800
  }
40664
40801
  else {
@@ -40666,11 +40803,11 @@ var VxeTreeComponent = defineVxeComponent({
40666
40803
  delete selectCheckboxMaps[nodeid];
40667
40804
  }
40668
40805
  if (halfSelect) {
40669
- indeterminateRowMaps[nodeid] = node;
40806
+ indeterminateNodeMaps[nodeid] = node;
40670
40807
  }
40671
40808
  else {
40672
- if (indeterminateRowMaps[nodeid]) {
40673
- delete indeterminateRowMaps[nodeid];
40809
+ if (indeterminateNodeMaps[nodeid]) {
40810
+ delete indeterminateNodeMaps[nodeid];
40674
40811
  }
40675
40812
  }
40676
40813
  }
@@ -40791,9 +40928,9 @@ var VxeTreeComponent = defineVxeComponent({
40791
40928
  const mapChildrenField = computeMapChildrenField.value;
40792
40929
  const funcName = isAppend ? 'push' : 'unshift';
40793
40930
  newRecords.forEach((item) => {
40794
- const parentRowId = item[parentField];
40931
+ const parentNodeId = item[parentField];
40795
40932
  const nodeid = getNodeId(item);
40796
- const matchObj = parentRowId ? XEUtils.findTree(treeFullData, (item) => parentRowId === item[keyField], { children: mapChildrenField }) : null;
40933
+ const matchObj = parentNodeId ? XEUtils.findTree(treeFullData, (item) => parentNodeId === item[keyField], { children: mapChildrenField }) : null;
40797
40934
  const itemRest = getItemCacheObj(item);
40798
40935
  if (matchObj) {
40799
40936
  const { item: parentItem } = matchObj;
@@ -40814,7 +40951,7 @@ var VxeTreeComponent = defineVxeComponent({
40814
40951
  pMapChilds[funcName](item);
40815
40952
  }
40816
40953
  else {
40817
- if (parentRowId) {
40954
+ if (parentNodeId) {
40818
40955
  warnLog$2('vxe.error.unableInsert');
40819
40956
  }
40820
40957
  treeFullData[funcName](item);
@@ -40824,7 +40961,7 @@ var VxeTreeComponent = defineVxeComponent({
40824
40961
  };
40825
40962
  const handleInsertNodeAt = (records, targetNodeOrNodeid, isInsertNextNode) => {
40826
40963
  const { transform } = props;
40827
- const { treeFullData, nodeMaps } = internalData;
40964
+ const { treeFullData, nodeMaps, removeNodeMaps, insertNodeMaps } = internalData;
40828
40965
  const keyField = computeKeyField.value;
40829
40966
  const parentField = computeParentField.value;
40830
40967
  const childrenField = computeChildrenField.value;
@@ -40862,26 +40999,26 @@ var VxeTreeComponent = defineVxeComponent({
40862
40999
  const parentMapChilds = parentNode ? parentNode[mapChildrenField] : treeFullData;
40863
41000
  const parentRest = nodeMaps[getNodeId(parentNode)];
40864
41001
  const parentLevel = parentRest ? parentRest.level : 0;
40865
- treeRecords.forEach((row, i) => {
41002
+ treeRecords.forEach((item, i) => {
40866
41003
  if (parentNode) {
40867
- if (row[parentField] !== parentNode[keyField]) {
40868
- errLog$2('vxe.error.errProp', [`${parentField}=${row[parentField]}`, `${parentField}=${parentNode[keyField]}`]);
40869
- row[parentField] = parentNode[keyField];
41004
+ if (item[parentField] !== parentNode[keyField]) {
41005
+ errLog$2('vxe.error.errProp', [`${parentField}=${item[parentField]}`, `${parentField}=${parentNode[keyField]}`]);
41006
+ item[parentField] = parentNode[keyField];
40870
41007
  }
40871
41008
  }
40872
41009
  else {
40873
- if (row[parentField] !== null) {
40874
- if (!XEUtils.eqNull(row[parentField])) {
40875
- errLog$2('vxe.error.errProp', [`${parentField}=${row[parentField]}`, 'null']);
41010
+ if (item[parentField] !== null) {
41011
+ if (!XEUtils.eqNull(item[parentField])) {
41012
+ errLog$2('vxe.error.errProp', [`${parentField}=${item[parentField]}`, 'null']);
40876
41013
  }
40877
- row[parentField] = null;
41014
+ item[parentField] = null;
40878
41015
  }
40879
41016
  }
40880
41017
  let targetIndex = matchMapObj.index + i;
40881
41018
  if (isInsertNextNode) {
40882
41019
  targetIndex = targetIndex + 1;
40883
41020
  }
40884
- parentMapChilds.splice(targetIndex, 0, row);
41021
+ parentMapChilds.splice(targetIndex, 0, item);
40885
41022
  });
40886
41023
  XEUtils.eachTree(treeRecords, (item) => {
40887
41024
  const nodeid = getNodeId(item);
@@ -40911,7 +41048,22 @@ var VxeTreeComponent = defineVxeComponent({
40911
41048
  }
40912
41049
  }
40913
41050
  }
40914
- reactData.insertRowFlag++;
41051
+ const handleStatus = (newItem) => {
41052
+ const nodeid = getNodeId(newItem);
41053
+ // 如果是被删除的数据,则还原状态
41054
+ if (removeNodeMaps[nodeid]) {
41055
+ delete removeNodeMaps[nodeid];
41056
+ if (insertNodeMaps[nodeid]) {
41057
+ delete insertNodeMaps[nodeid];
41058
+ }
41059
+ }
41060
+ else {
41061
+ insertNodeMaps[nodeid] = newItem;
41062
+ }
41063
+ };
41064
+ XEUtils.eachTree(treeRecords, handleStatus, { children: mapChildrenField });
41065
+ reactData.removeNodeFlag++;
41066
+ reactData.insertNodeFlag++;
40915
41067
  cacheNodeMap();
40916
41068
  handleData(true);
40917
41069
  updateAfterDataIndex();
@@ -40926,6 +41078,27 @@ var VxeTreeComponent = defineVxeComponent({
40926
41078
  };
40927
41079
  });
40928
41080
  };
41081
+ const handleInsertChildNodeAt = (records, parentNodeOrParentId, targetNodeOrNodeid, isInsertNextNode) => {
41082
+ const { transform } = props;
41083
+ const { nodeMaps } = internalData;
41084
+ const keyField = computeKeyField.value;
41085
+ const parentField = computeParentField.value;
41086
+ if (!transform) {
41087
+ errLog$2('vxe.error.reqSupportProp', ['insertChild() | insertChildAt() | insertChildNextAt()', 'transform']);
41088
+ return Promise.resolve({ node: null, nodes: [] });
41089
+ }
41090
+ if (!XEUtils.isArray(records)) {
41091
+ records = [records];
41092
+ }
41093
+ let parentNode = parentNodeOrParentId;
41094
+ if (XEUtils.isString(parentNodeOrParentId) || XEUtils.isNumber(parentNodeOrParentId)) {
41095
+ const nodeRest = nodeMaps[parentNodeOrParentId];
41096
+ if (nodeRest) {
41097
+ parentNode = nodeRest.item;
41098
+ }
41099
+ }
41100
+ return handleInsertNodeAt(records.map((item) => Object.assign({}, item, { [parentField]: parentNode[keyField] })), targetNodeOrNodeid, isInsertNextNode);
41101
+ };
40929
41102
  const treeMethods = {
40930
41103
  dispatchEvent,
40931
41104
  getNodeId,
@@ -41047,7 +41220,7 @@ var VxeTreeComponent = defineVxeComponent({
41047
41220
  return list;
41048
41221
  },
41049
41222
  clearCheckboxNode() {
41050
- internalData.indeterminateRowMaps = {};
41223
+ internalData.indeterminateNodeMaps = {};
41051
41224
  internalData.selectCheckboxMaps = {};
41052
41225
  reactData.updateCheckboxFlag++;
41053
41226
  emitCheckboxMode([]);
@@ -41071,7 +41244,7 @@ var VxeTreeComponent = defineVxeComponent({
41071
41244
  selectMaps[nodeid] = true;
41072
41245
  }, { children: transform ? mapChildrenField : childrenField });
41073
41246
  }
41074
- internalData.indeterminateRowMaps = {};
41247
+ internalData.indeterminateNodeMaps = {};
41075
41248
  internalData.selectCheckboxMaps = selectMaps;
41076
41249
  reactData.updateCheckboxFlag++;
41077
41250
  updateCheckboxStatus();
@@ -41251,10 +41424,10 @@ var VxeTreeComponent = defineVxeComponent({
41251
41424
  const parentLevel = parentNodeItem ? parentNodeItem.level : 0;
41252
41425
  const parentNodes = parentNodeItem ? parentNodeItem.nodes : [];
41253
41426
  return createNode(childRecords).then((nodeList) => {
41254
- XEUtils.eachTree(nodeList, (childRow, index, items, path, parent, nodes) => {
41255
- const itemNodeId = getNodeId(childRow);
41427
+ XEUtils.eachTree(nodeList, (childNode, index, items, path, parent, nodes) => {
41428
+ const itemNodeId = getNodeId(childNode);
41256
41429
  nodeMaps[itemNodeId] = {
41257
- item: childRow,
41430
+ item: childNode,
41258
41431
  index: -1,
41259
41432
  $index: -1,
41260
41433
  _index: -1,
@@ -41282,9 +41455,9 @@ var VxeTreeComponent = defineVxeComponent({
41282
41455
  isIndeterminateByCheckboxNode,
41283
41456
  isCheckedByCheckboxNode,
41284
41457
  getCheckboxIndeterminateNodes() {
41285
- const { nodeMaps, indeterminateRowMaps } = internalData;
41458
+ const { nodeMaps, indeterminateNodeMaps } = internalData;
41286
41459
  const list = [];
41287
- XEUtils.each(indeterminateRowMaps, (item, nodeid) => {
41460
+ XEUtils.each(indeterminateNodeMaps, (item, nodeid) => {
41288
41461
  const nodeItem = nodeMaps[nodeid];
41289
41462
  if (nodeItem) {
41290
41463
  list.push(nodeItem.item);
@@ -41339,9 +41512,30 @@ var VxeTreeComponent = defineVxeComponent({
41339
41512
  insertNextAt(records, targetNodeOrNodeid) {
41340
41513
  return handleInsertNodeAt(records, targetNodeOrNodeid, true);
41341
41514
  },
41515
+ insertChild(records, parentNodeOrParentId) {
41516
+ return handleInsertChildNodeAt(records, parentNodeOrParentId, null);
41517
+ },
41518
+ insertChildAt(records, parentNodeOrParentId, targetNode) {
41519
+ return handleInsertChildNodeAt(records, parentNodeOrParentId, targetNode);
41520
+ },
41521
+ insertChildNextAt(records, parentNodeOrParentId, targetNode) {
41522
+ return handleInsertChildNodeAt(records, parentNodeOrParentId, targetNode, true);
41523
+ },
41524
+ getInsertRecords() {
41525
+ const { insertNodeMaps } = internalData;
41526
+ const insertRecords = [];
41527
+ XEUtils.each(insertNodeMaps, (item) => {
41528
+ insertRecords.push(item);
41529
+ });
41530
+ return insertRecords;
41531
+ },
41532
+ isInsertByNode(node) {
41533
+ const nodeid = getNodeId(node);
41534
+ return !!reactData.insertNodeFlag && !!internalData.insertNodeMaps[nodeid];
41535
+ },
41342
41536
  remove(nodes) {
41343
41537
  const { transform } = props;
41344
- const { treeFullData } = internalData;
41538
+ const { treeFullData, insertNodeMaps, removeNodeMaps } = internalData;
41345
41539
  const childrenField = computeChildrenField.value;
41346
41540
  const mapChildrenField = computeMapChildrenField.value;
41347
41541
  if (!transform) {
@@ -41358,6 +41552,13 @@ var VxeTreeComponent = defineVxeComponent({
41358
41552
  if (!nodes.length) {
41359
41553
  return Promise.resolve({ node: null, nodes: [] });
41360
41554
  }
41555
+ // 如果是新增,则保存记录
41556
+ nodes.forEach((item) => {
41557
+ if (!$xeTree.isInsertByNode(item)) {
41558
+ const nodeid = getNodeId(item);
41559
+ removeNodeMaps[nodeid] = item;
41560
+ }
41561
+ });
41361
41562
  // 从数据源中移除
41362
41563
  if (treeFullData === nodes) {
41363
41564
  nodes = delList = treeFullData.slice(0);
@@ -41378,8 +41579,15 @@ var VxeTreeComponent = defineVxeComponent({
41378
41579
  }
41379
41580
  });
41380
41581
  }
41381
- reactData.removeRowFlag++;
41382
- reactData.insertRowFlag++;
41582
+ // 从新增中移除已删除的数据
41583
+ nodes.forEach((item) => {
41584
+ const nodeid = getNodeId(item);
41585
+ if (insertNodeMaps[nodeid]) {
41586
+ delete insertNodeMaps[nodeid];
41587
+ }
41588
+ });
41589
+ reactData.removeNodeFlag++;
41590
+ reactData.insertNodeFlag++;
41383
41591
  cacheNodeMap();
41384
41592
  handleData(true);
41385
41593
  updateAfterDataIndex();
@@ -41393,22 +41601,19 @@ var VxeTreeComponent = defineVxeComponent({
41393
41601
  return { node: delList.length ? delList[delList.length - 1] : null, nodes: delList };
41394
41602
  });
41395
41603
  },
41396
- getInsertRecords() {
41397
- const { insertRowMaps } = internalData;
41398
- const insertRecords = [];
41399
- XEUtils.each(insertRowMaps, (row) => {
41400
- insertRecords.push(row);
41401
- });
41402
- return insertRecords;
41403
- },
41404
41604
  getRemoveRecords() {
41405
- const { removeRowMaps } = internalData;
41605
+ const { removeNodeMaps } = internalData;
41406
41606
  const removeRecords = [];
41407
- XEUtils.each(removeRowMaps, (row) => {
41408
- removeRecords.push(row);
41607
+ XEUtils.each(removeNodeMaps, (item) => {
41608
+ removeRecords.push(item);
41409
41609
  });
41410
41610
  return removeRecords;
41411
- }
41611
+ },
41612
+ isRemoveByNode(node) {
41613
+ const nodeid = getNodeId(node);
41614
+ return !!reactData.removeNodeFlag && !!internalData.removeNodeMaps[nodeid];
41615
+ },
41616
+ closeTooltip
41412
41617
  };
41413
41618
  const handleNodeDragEndClearStatus = () => {
41414
41619
  clearNodeDragData();
@@ -41435,7 +41640,7 @@ var VxeTreeComponent = defineVxeComponent({
41435
41640
  });
41436
41641
  }
41437
41642
  };
41438
- const updateRowDropTipContent = (itemEl) => {
41643
+ const updateNodeDropTipContent = (itemEl) => {
41439
41644
  const { dragNode } = reactData;
41440
41645
  const dragOpts = computeDragOpts.value;
41441
41646
  const { tooltipMethod } = dragOpts;
@@ -41480,20 +41685,26 @@ var VxeTreeComponent = defineVxeComponent({
41480
41685
  evnt.stopPropagation();
41481
41686
  const { node } = params;
41482
41687
  const dragConfig = computeDragOpts.value;
41483
- const { trigger, dragStartMethod } = dragConfig;
41688
+ const { isCrossTreeDrag, trigger, dragStartMethod } = dragConfig;
41484
41689
  const dragEl = evnt.currentTarget;
41485
41690
  const itemEl = trigger === 'node' ? dragEl : dragEl.parentElement.parentElement;
41486
41691
  clearNodeDropOrigin();
41487
41692
  if (dragStartMethod && !dragStartMethod(params)) {
41488
41693
  itemEl.draggable = false;
41489
41694
  reactData.dragNode = null;
41695
+ clearCrossTreeDragStatus();
41490
41696
  hideDropTip();
41491
41697
  return;
41492
41698
  }
41699
+ if (isCrossTreeDrag) {
41700
+ crossTreeDragNodeInfo.node = node;
41701
+ crossTreeDragNodeObj = { $oldTree: $xeTree, $newTree: null };
41702
+ }
41493
41703
  reactData.dragNode = node;
41704
+ reactData.isCrossDragNode = false;
41494
41705
  itemEl.draggable = true;
41495
41706
  updateNodeDropOrigin(node);
41496
- updateRowDropTipContent(itemEl);
41707
+ updateNodeDropTipContent(itemEl);
41497
41708
  dispatchEvent('node-dragstart', params, evnt);
41498
41709
  };
41499
41710
  const handleNodeDragMouseupEvent = () => {
@@ -41561,6 +41772,7 @@ var VxeTreeComponent = defineVxeComponent({
41561
41772
  status: false
41562
41773
  };
41563
41774
  if (!(el && prevDragNode && dragNode)) {
41775
+ handleNodeDragEndClearStatus();
41564
41776
  return Promise.resolve(errRest);
41565
41777
  }
41566
41778
  // 判断是否有拖动
@@ -41608,15 +41820,13 @@ var VxeTreeComponent = defineVxeComponent({
41608
41820
  if (isPeerDrag && !isCrossDrag) {
41609
41821
  if (oldRest.item[parentField] !== newRest.item[parentField]) {
41610
41822
  // 非同级
41611
- clearNodeDragData();
41612
- clearCrossTreeDragStatus();
41823
+ handleNodeDragEndClearStatus();
41613
41824
  return errRest;
41614
41825
  }
41615
41826
  }
41616
41827
  else {
41617
41828
  if (!isCrossDrag) {
41618
- clearNodeDragData();
41619
- clearCrossTreeDragStatus();
41829
+ handleNodeDragEndClearStatus();
41620
41830
  return errRest;
41621
41831
  }
41622
41832
  if (oldAllMaps[newNodeid]) {
@@ -41628,8 +41838,7 @@ var VxeTreeComponent = defineVxeComponent({
41628
41838
  content: getI18n('vxe.error.treeDragChild')
41629
41839
  });
41630
41840
  }
41631
- clearNodeDragData();
41632
- clearCrossTreeDragStatus();
41841
+ handleNodeDragEndClearStatus();
41633
41842
  return errRest;
41634
41843
  }
41635
41844
  }
@@ -41638,16 +41847,14 @@ var VxeTreeComponent = defineVxeComponent({
41638
41847
  else if (oldLevel) {
41639
41848
  // 子到根
41640
41849
  if (!isCrossDrag) {
41641
- clearNodeDragData();
41642
- clearCrossTreeDragStatus();
41850
+ handleNodeDragEndClearStatus();
41643
41851
  return errRest;
41644
41852
  }
41645
41853
  }
41646
41854
  else if (newLevel) {
41647
41855
  // 根到子
41648
41856
  if (!isCrossDrag) {
41649
- clearNodeDragData();
41650
- clearCrossTreeDragStatus();
41857
+ handleNodeDragEndClearStatus();
41651
41858
  return errRest;
41652
41859
  }
41653
41860
  if (oldAllMaps[newNodeid]) {
@@ -41659,8 +41866,7 @@ var VxeTreeComponent = defineVxeComponent({
41659
41866
  content: getI18n('vxe.error.treeDragChild')
41660
41867
  });
41661
41868
  }
41662
- clearNodeDragData();
41663
- clearCrossTreeDragStatus();
41869
+ handleNodeDragEndClearStatus();
41664
41870
  return errRest;
41665
41871
  }
41666
41872
  }
@@ -41808,13 +42014,11 @@ var VxeTreeComponent = defineVxeComponent({
41808
42014
  }).catch(() => {
41809
42015
  return errRest;
41810
42016
  }).then((rest) => {
41811
- clearNodeDragData();
41812
- clearCrossTreeDragStatus();
42017
+ handleNodeDragEndClearStatus();
41813
42018
  return rest;
41814
42019
  });
41815
42020
  }
41816
- clearNodeDragData();
41817
- clearCrossTreeDragStatus();
42021
+ handleNodeDragEndClearStatus();
41818
42022
  return Promise.resolve(errRest);
41819
42023
  };
41820
42024
  const handleNodeDragDragstartEvent = (evnt) => {
@@ -41863,7 +42067,7 @@ var VxeTreeComponent = defineVxeComponent({
41863
42067
  const dragConfig = computeDragOpts.value;
41864
42068
  const parentField = computeParentField.value;
41865
42069
  const hasChildField = computeHasChildField.value;
41866
- const { isCrossDrag, isPeerDrag, isToChildDrag } = dragConfig;
42070
+ const { isCrossTreeDrag, isCrossDrag, isPeerDrag, isToChildDrag } = dragConfig;
41867
42071
  if (!dragNode && !isCrossDrag) {
41868
42072
  evnt.preventDefault();
41869
42073
  }
@@ -41879,6 +42083,32 @@ var VxeTreeComponent = defineVxeComponent({
41879
42083
  internalData.prevDragToChild = !!(transform && (isCrossDrag && isToChildDrag) && isControlKey);
41880
42084
  internalData.prevDragNode = node;
41881
42085
  internalData.prevDragPos = dragPos;
42086
+ // 跨树拖拽
42087
+ if (isCrossTreeDrag && isCrossDrag && crossTreeDragNodeObj) {
42088
+ const { $oldTree, $newTree } = crossTreeDragNodeObj;
42089
+ if ($oldTree) {
42090
+ const oldTreeReactData = $oldTree.reactData;
42091
+ if ($oldTree.xID === $xeTree.xID) {
42092
+ if ($newTree) {
42093
+ $newTree.hideCrossTreeNodeDropClearStatus();
42094
+ }
42095
+ reactData.isCrossDragNode = false;
42096
+ oldTreeReactData.isCrossDragNode = false;
42097
+ crossTreeDragNodeObj.$newTree = null;
42098
+ }
42099
+ else if (isCrossDrag) {
42100
+ if ($newTree && $newTree.xID !== $xeTree.xID) {
42101
+ $newTree.hideCrossTreeNodeDropClearStatus();
42102
+ }
42103
+ $oldTree.hideCrossTreeNodeDropClearStatus();
42104
+ oldTreeReactData.isCrossDragNode = true;
42105
+ reactData.dragTipText = oldTreeReactData.dragTipText;
42106
+ crossTreeDragNodeObj.$newTree = $xeTree;
42107
+ showDropTip(evnt, itemEl, true, dragPos);
42108
+ return;
42109
+ }
42110
+ }
42111
+ }
41882
42112
  if ((dragNode && getNodeId(dragNode) === nodeid) ||
41883
42113
  (isControlKey && lazy && node[hasChildField] && nodeItem && !nodeItem.treeLoaded) ||
41884
42114
  (!isCrossDrag && transform && (isPeerDrag ? dragNode[parentField] !== node[parentField] : nodeItem.level))) {
@@ -42052,9 +42282,9 @@ var VxeTreeComponent = defineVxeComponent({
42052
42282
  else {
42053
42283
  dragNode[parentField] = null;
42054
42284
  }
42055
- dragList.forEach(row => {
42056
- row[childrenField] = undefined;
42057
- row[mapChildrenField] = undefined;
42285
+ dragList.forEach(item => {
42286
+ item[childrenField] = undefined;
42287
+ item[mapChildrenField] = undefined;
42058
42288
  });
42059
42289
  if (prevDragNode) {
42060
42290
  if (prevDragPos === 'bottom') {
@@ -42212,6 +42442,8 @@ var VxeTreeComponent = defineVxeComponent({
42212
42442
  const { lazy, drag, transform, showRadio, showCheckbox, showLine, iconOpen, iconClose, iconLoaded, showIcon } = props;
42213
42443
  const { currentNode, selectRadioKey, updateExpandedFlag } = reactData;
42214
42444
  const { afterTreeList, nodeMaps, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
42445
+ const tooltipOpts = computeTooltipOpts.value;
42446
+ const { mode: tipMode } = tooltipOpts;
42215
42447
  const childrenField = computeChildrenField.value;
42216
42448
  const titleField = computeTitleField.value;
42217
42449
  const hasChildField = computeHasChildField.value;
@@ -42222,7 +42454,7 @@ var VxeTreeComponent = defineVxeComponent({
42222
42454
  const extraSlot = slots.extra;
42223
42455
  const isExpand = updateExpandedFlag && treeExpandedMaps[nodeid];
42224
42456
  const nodeItem = nodeMaps[nodeid] || {};
42225
- const nodeTitle = XEUtils.get(node, titleField);
42457
+ const nodeTitle = getText(XEUtils.get(node, titleField));
42226
42458
  const nLevel = nodeItem.level;
42227
42459
  let isRadioChecked = false;
42228
42460
  if (showRadio) {
@@ -42244,7 +42476,7 @@ var VxeTreeComponent = defineVxeComponent({
42244
42476
  }
42245
42477
  const prevNode = nodeItem.items[nodeItem.treeIndex - 1];
42246
42478
  const nParams = { node, isExpand };
42247
- const itemOn = {
42479
+ const itemOns = {
42248
42480
  onMousedown(evnt) {
42249
42481
  handleNodeMousedownEvent(evnt, node);
42250
42482
  },
@@ -42259,13 +42491,19 @@ var VxeTreeComponent = defineVxeComponent({
42259
42491
  handleContextmenuEvent(evnt, node);
42260
42492
  }
42261
42493
  };
42494
+ if (tipMode === 'tooltip') {
42495
+ itemOns.onMouseenter = (evnt) => {
42496
+ handleNodeMouseenterEvent(evnt, node);
42497
+ };
42498
+ itemOns.onMouseleave = handleNodeMouseleaveEvent;
42499
+ }
42262
42500
  // 拖拽行事件
42263
42501
  if (drag && transform) {
42264
- itemOn.onDragstart = handleNodeDragDragstartEvent;
42265
- itemOn.onDragend = handleNodeDragDragendEvent;
42266
- itemOn.onDragover = handleNodeDragDragoverEvent;
42502
+ itemOns.onDragstart = handleNodeDragDragstartEvent;
42503
+ itemOns.onDragend = handleNodeDragDragendEvent;
42504
+ itemOns.onDragover = handleNodeDragDragoverEvent;
42267
42505
  }
42268
- return h('div', Object.assign({ key: nodeid, class: ['vxe-tree--node-wrapper', `node--level-${nLevel}`], nodeid }, itemOn), [
42506
+ return h('div', Object.assign({ key: nodeid, class: ['vxe-tree--node-wrapper', `node--level-${nLevel}`], nodeid, title: tipMode === 'title' ? nodeTitle : '' }, itemOns), [
42269
42507
  h('div', {
42270
42508
  class: ['vxe-tree--node-item', {
42271
42509
  'is--current': currentNode && nodeid === getNodeId(currentNode),
@@ -42311,8 +42549,12 @@ var VxeTreeComponent = defineVxeComponent({
42311
42549
  class: 'vxe-tree--node-item-inner'
42312
42550
  }, [
42313
42551
  h('div', {
42314
- class: 'vxe-tree--node-item-title'
42315
- }, titleSlot ? getSlotVNs(titleSlot(nParams)) : `${nodeTitle}`),
42552
+ class: 'vxe-tree--node-item-wrapper'
42553
+ }, [
42554
+ h('span', {
42555
+ class: 'vxe-tree--node-item-title'
42556
+ }, titleSlot ? getSlotVNs(titleSlot(nParams)) : nodeTitle)
42557
+ ]),
42316
42558
  extraSlot
42317
42559
  ? h('div', {
42318
42560
  class: 'vxe-tree--node-item-extra'
@@ -42398,27 +42640,29 @@ var VxeTreeComponent = defineVxeComponent({
42398
42640
  };
42399
42641
  const renderVN = () => {
42400
42642
  const { loading, trigger, showLine } = props;
42401
- const { bodyHeight, topSpaceHeight, treeList } = reactData;
42643
+ const { bodyHeight, topSpaceHeight, treeList, tooltipStore } = reactData;
42402
42644
  const vSize = computeSize.value;
42403
42645
  const radioOpts = computeRadioOpts.value;
42404
42646
  const checkboxOpts = computeCheckboxOpts.value;
42405
42647
  const loadingOpts = computeLoadingOpts.value;
42406
- const isRowHover = computeIsRowHover.value;
42648
+ const isNodeHover = computeIsNodeHover.value;
42407
42649
  const treeStyle = computeTreeStyle.value;
42408
42650
  const dragOpts = computeDragOpts.value;
42651
+ const tooltipOpts = computeTooltipOpts.value;
42409
42652
  const loadingSlot = slots.loading;
42410
42653
  const headerSlot = slots.header;
42411
42654
  const footerSlot = slots.footer;
42655
+ const tooltipSlot = slots.tooltip;
42412
42656
  const teOns = {};
42413
42657
  if (dragOpts.isCrossTreeDrag && !treeList.length) {
42414
- teOns.onDragover = $xeTree.handleCrossTreeNodeDragInsertEvent;
42658
+ teOns.onDragover = $xeTree.handleCrossTreeNodeDragoverEmptyEvent;
42415
42659
  }
42416
42660
  return h('div', Object.assign({ ref: refElem, class: ['vxe-tree', {
42417
42661
  [`size--${vSize}`]: vSize,
42418
42662
  'show--line': showLine,
42419
42663
  'checkbox--highlight': checkboxOpts.highlight,
42420
42664
  'radio--highlight': radioOpts.highlight,
42421
- 'node--hover': isRowHover,
42665
+ 'node--hover': isNodeHover,
42422
42666
  'node--trigger': trigger === 'node',
42423
42667
  'is--loading': loading
42424
42668
  }] }, teOns), [
@@ -42458,6 +42702,35 @@ var VxeTreeComponent = defineVxeComponent({
42458
42702
  * 拖拽提示
42459
42703
  */
42460
42704
  renderDragTip(),
42705
+ /**
42706
+ * 工具提示
42707
+ */
42708
+ tooltipOpts.mode === 'tooltip'
42709
+ ? h(VxeTooltip, {
42710
+ ref: refTooltip,
42711
+ theme: tooltipOpts.theme,
42712
+ enterable: tooltipOpts.enterable,
42713
+ enterDelay: tooltipOpts.enterDelay,
42714
+ leaveDelay: tooltipOpts.leaveDelay,
42715
+ useHtml: tooltipOpts.useHtml,
42716
+ width: tooltipOpts.width,
42717
+ height: tooltipOpts.height,
42718
+ minWidth: tooltipOpts.minWidth,
42719
+ minHeight: tooltipOpts.minHeight,
42720
+ maxWidth: tooltipOpts.maxWidth,
42721
+ maxHeight: tooltipOpts.maxHeight,
42722
+ placement: tooltipOpts.placement,
42723
+ defaultPlacement: tooltipOpts.defaultPlacement,
42724
+ popupClassName: tooltipOpts.popupClassName
42725
+ }, tooltipSlot
42726
+ ? {
42727
+ content: () => {
42728
+ const { node } = tooltipStore;
42729
+ return tooltipSlot({ node, $tree: $xeTree });
42730
+ }
42731
+ }
42732
+ : undefined)
42733
+ : renderEmptyElement($xeTree),
42461
42734
  /**
42462
42735
  * 加载中
42463
42736
  */
@@ -42470,7 +42743,7 @@ var VxeTreeComponent = defineVxeComponent({
42470
42743
  ? {
42471
42744
  default: () => loadingSlot({ $tree: $xeTree })
42472
42745
  }
42473
- : {})
42746
+ : undefined)
42474
42747
  ]);
42475
42748
  };
42476
42749
  const dataFlag = ref(0);
@@ -42522,8 +42795,11 @@ var VxeTreeComponent = defineVxeComponent({
42522
42795
  recalculate();
42523
42796
  });
42524
42797
  onMounted(() => {
42525
- const { transform, drag, menuConfig } = props;
42798
+ const { transform, drag, menuConfig, showOverflow } = props;
42526
42799
  const dragOpts = computeDragOpts.value;
42800
+ if (!showOverflow) {
42801
+ errLog$2('vxe.error.errProp', ['show-overflow=false', 'show-overflow=true']);
42802
+ }
42527
42803
  if (drag && !transform) {
42528
42804
  errLog$2('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true']);
42529
42805
  }