vxe-pc-ui 4.15.13 → 4.15.15

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 (333) hide show
  1. package/dist/all.esm.js +709 -140
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/button/style.css +42 -72
  5. package/es/button/style.min.css +1 -1
  6. package/es/cascader/style.css +29 -33
  7. package/es/cascader/style.min.css +1 -1
  8. package/es/checkbox/src/button.js +3 -1
  9. package/es/checkbox/src/group.js +6 -1
  10. package/es/checkbox/style.css +22 -28
  11. package/es/checkbox/style.min.css +1 -1
  12. package/es/checkbox-button/style.css +151 -8
  13. package/es/checkbox-button/style.min.css +1 -1
  14. package/es/context-menu/style.css +14 -13
  15. package/es/context-menu/style.min.css +1 -1
  16. package/es/date-picker/src/date-picker.js +1 -1
  17. package/es/form/style.css +45 -95
  18. package/es/form/style.min.css +1 -1
  19. package/es/icon/style.css +1 -1
  20. package/es/icon-picker/src/icon-picker.js +145 -46
  21. package/es/icon-picker/style.css +49 -23
  22. package/es/icon-picker/style.min.css +1 -1
  23. package/es/language/ar-EG.js +3 -0
  24. package/es/language/de-DE.js +3 -0
  25. package/es/language/en-US.js +3 -0
  26. package/es/language/es-ES.js +3 -0
  27. package/es/language/fr-FR.js +3 -0
  28. package/es/language/hu-HU.js +3 -0
  29. package/es/language/hy-AM.js +3 -0
  30. package/es/language/id-ID.js +3 -0
  31. package/es/language/it-IT.js +3 -0
  32. package/es/language/ja-JP.js +3 -0
  33. package/es/language/ko-KR.js +3 -0
  34. package/es/language/ms-MY.js +3 -0
  35. package/es/language/nb-NO.js +3 -0
  36. package/es/language/pt-BR.js +3 -0
  37. package/es/language/ru-RU.js +3 -0
  38. package/es/language/th-TH.js +3 -0
  39. package/es/language/ug-CN.js +3 -0
  40. package/es/language/uk-UA.js +3 -0
  41. package/es/language/uz-UZ.js +3 -0
  42. package/es/language/vi-VN.js +3 -0
  43. package/es/language/zh-CHT.js +3 -0
  44. package/es/language/zh-CN.js +3 -0
  45. package/es/list/src/list.js +14 -1
  46. package/es/list/style.css +26 -28
  47. package/es/list/style.min.css +1 -1
  48. package/es/menu/style.css +22 -29
  49. package/es/menu/style.min.css +1 -1
  50. package/es/notice-bar/style.css +14 -10
  51. package/es/notice-bar/style.min.css +1 -1
  52. package/es/radio/src/button.js +3 -1
  53. package/es/radio/src/group.js +6 -1
  54. package/es/radio/style.css +22 -30
  55. package/es/radio/style.min.css +1 -1
  56. package/es/radio-button/style.css +151 -8
  57. package/es/radio-button/style.min.css +1 -1
  58. package/es/select/style.css +42 -59
  59. package/es/select/style.min.css +1 -1
  60. package/es/style.css +1 -1
  61. package/es/style.min.css +1 -1
  62. package/es/tree/src/tree.js +441 -18
  63. package/es/tree/src/util.js +15 -0
  64. package/es/tree/style.css +26 -25
  65. package/es/tree/style.min.css +1 -1
  66. package/es/tree-select/style.css +27 -31
  67. package/es/tree-select/style.min.css +1 -1
  68. package/es/ui/index.js +5 -2
  69. package/es/ui/src/log.js +1 -1
  70. package/es/upload/style.css +30 -41
  71. package/es/upload/style.min.css +1 -1
  72. package/es/vxe-button/style.css +42 -72
  73. package/es/vxe-button/style.min.css +1 -1
  74. package/es/vxe-cascader/style.css +29 -33
  75. package/es/vxe-cascader/style.min.css +1 -1
  76. package/es/vxe-checkbox/style.css +22 -28
  77. package/es/vxe-checkbox/style.min.css +1 -1
  78. package/es/vxe-checkbox-button/style.css +151 -8
  79. package/es/vxe-checkbox-button/style.min.css +1 -1
  80. package/es/vxe-context-menu/style.css +14 -13
  81. package/es/vxe-context-menu/style.min.css +1 -1
  82. package/es/vxe-form/style.css +45 -95
  83. package/es/vxe-form/style.min.css +1 -1
  84. package/es/vxe-icon-picker/style.css +49 -23
  85. package/es/vxe-icon-picker/style.min.css +1 -1
  86. package/es/vxe-list/style.css +26 -28
  87. package/es/vxe-list/style.min.css +1 -1
  88. package/es/vxe-menu/style.css +22 -29
  89. package/es/vxe-menu/style.min.css +1 -1
  90. package/es/vxe-notice-bar/style.css +14 -10
  91. package/es/vxe-notice-bar/style.min.css +1 -1
  92. package/es/vxe-radio/style.css +22 -30
  93. package/es/vxe-radio/style.min.css +1 -1
  94. package/es/vxe-radio-button/style.css +151 -8
  95. package/es/vxe-radio-button/style.min.css +1 -1
  96. package/es/vxe-select/style.css +42 -59
  97. package/es/vxe-select/style.min.css +1 -1
  98. package/es/vxe-tree/style.css +26 -25
  99. package/es/vxe-tree/style.min.css +1 -1
  100. package/es/vxe-tree-select/style.css +27 -31
  101. package/es/vxe-tree-select/style.min.css +1 -1
  102. package/es/vxe-upload/style.css +30 -41
  103. package/es/vxe-upload/style.min.css +1 -1
  104. package/lib/button/style/style.css +42 -72
  105. package/lib/button/style/style.min.css +1 -1
  106. package/lib/cascader/style/style.css +29 -33
  107. package/lib/cascader/style/style.min.css +1 -1
  108. package/lib/checkbox/src/button.js +3 -1
  109. package/lib/checkbox/src/button.min.js +1 -1
  110. package/lib/checkbox/src/group.js +6 -0
  111. package/lib/checkbox/src/group.min.js +1 -1
  112. package/lib/checkbox/style/style.css +22 -28
  113. package/lib/checkbox/style/style.min.css +1 -1
  114. package/lib/checkbox-button/style/style.css +151 -8
  115. package/lib/checkbox-button/style/style.min.css +1 -1
  116. package/lib/context-menu/style/style.css +14 -13
  117. package/lib/context-menu/style/style.min.css +1 -1
  118. package/lib/date-picker/src/date-picker.js +1 -1
  119. package/lib/date-picker/src/date-picker.min.js +1 -1
  120. package/lib/form/style/style.css +45 -95
  121. package/lib/form/style/style.min.css +1 -1
  122. package/lib/icon/style/style.css +1 -1
  123. package/lib/icon/style/style.min.css +1 -1
  124. package/lib/icon-picker/src/icon-picker.js +143 -29
  125. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  126. package/lib/icon-picker/style/style.css +49 -23
  127. package/lib/icon-picker/style/style.min.css +1 -1
  128. package/lib/index.umd.js +732 -50
  129. package/lib/index.umd.min.js +1 -1
  130. package/lib/language/ar-EG.js +3 -0
  131. package/lib/language/ar-EG.min.js +1 -1
  132. package/lib/language/ar-EG.umd.js +3 -0
  133. package/lib/language/de-DE.js +3 -0
  134. package/lib/language/de-DE.min.js +1 -1
  135. package/lib/language/de-DE.umd.js +3 -0
  136. package/lib/language/en-US.js +3 -0
  137. package/lib/language/en-US.min.js +1 -1
  138. package/lib/language/en-US.umd.js +3 -0
  139. package/lib/language/es-ES.js +3 -0
  140. package/lib/language/es-ES.min.js +1 -1
  141. package/lib/language/es-ES.umd.js +3 -0
  142. package/lib/language/fr-FR.js +3 -0
  143. package/lib/language/fr-FR.min.js +1 -1
  144. package/lib/language/fr-FR.umd.js +3 -0
  145. package/lib/language/hu-HU.js +3 -0
  146. package/lib/language/hu-HU.min.js +1 -1
  147. package/lib/language/hu-HU.umd.js +3 -0
  148. package/lib/language/hy-AM.js +3 -0
  149. package/lib/language/hy-AM.min.js +1 -1
  150. package/lib/language/hy-AM.umd.js +3 -0
  151. package/lib/language/id-ID.js +3 -0
  152. package/lib/language/id-ID.min.js +1 -1
  153. package/lib/language/id-ID.umd.js +3 -0
  154. package/lib/language/it-IT.js +3 -0
  155. package/lib/language/it-IT.min.js +1 -1
  156. package/lib/language/it-IT.umd.js +3 -0
  157. package/lib/language/ja-JP.js +3 -0
  158. package/lib/language/ja-JP.min.js +1 -1
  159. package/lib/language/ja-JP.umd.js +3 -0
  160. package/lib/language/ko-KR.js +3 -0
  161. package/lib/language/ko-KR.min.js +1 -1
  162. package/lib/language/ko-KR.umd.js +3 -0
  163. package/lib/language/ms-MY.js +3 -0
  164. package/lib/language/ms-MY.min.js +1 -1
  165. package/lib/language/ms-MY.umd.js +3 -0
  166. package/lib/language/nb-NO.js +3 -0
  167. package/lib/language/nb-NO.min.js +1 -1
  168. package/lib/language/nb-NO.umd.js +3 -0
  169. package/lib/language/pt-BR.js +3 -0
  170. package/lib/language/pt-BR.min.js +1 -1
  171. package/lib/language/pt-BR.umd.js +3 -0
  172. package/lib/language/ru-RU.js +3 -0
  173. package/lib/language/ru-RU.min.js +1 -1
  174. package/lib/language/ru-RU.umd.js +3 -0
  175. package/lib/language/th-TH.js +3 -0
  176. package/lib/language/th-TH.min.js +1 -1
  177. package/lib/language/th-TH.umd.js +3 -0
  178. package/lib/language/ug-CN.js +3 -0
  179. package/lib/language/ug-CN.min.js +1 -1
  180. package/lib/language/ug-CN.umd.js +3 -0
  181. package/lib/language/uk-UA.js +3 -0
  182. package/lib/language/uk-UA.min.js +1 -1
  183. package/lib/language/uk-UA.umd.js +3 -0
  184. package/lib/language/uz-UZ.js +3 -0
  185. package/lib/language/uz-UZ.min.js +1 -1
  186. package/lib/language/uz-UZ.umd.js +3 -0
  187. package/lib/language/vi-VN.js +3 -0
  188. package/lib/language/vi-VN.min.js +1 -1
  189. package/lib/language/vi-VN.umd.js +3 -0
  190. package/lib/language/zh-CHT.js +3 -0
  191. package/lib/language/zh-CHT.min.js +1 -1
  192. package/lib/language/zh-CHT.umd.js +3 -0
  193. package/lib/language/zh-CN.js +3 -0
  194. package/lib/language/zh-CN.min.js +1 -1
  195. package/lib/language/zh-CN.umd.js +3 -0
  196. package/lib/list/src/list.js +19 -1
  197. package/lib/list/src/list.min.js +1 -1
  198. package/lib/list/style/style.css +26 -28
  199. package/lib/list/style/style.min.css +1 -1
  200. package/lib/menu/style/style.css +22 -29
  201. package/lib/menu/style/style.min.css +1 -1
  202. package/lib/notice-bar/style/style.css +14 -10
  203. package/lib/notice-bar/style/style.min.css +1 -1
  204. package/lib/radio/src/button.js +3 -1
  205. package/lib/radio/src/button.min.js +1 -1
  206. package/lib/radio/src/group.js +7 -1
  207. package/lib/radio/src/group.min.js +1 -1
  208. package/lib/radio/style/style.css +22 -30
  209. package/lib/radio/style/style.min.css +1 -1
  210. package/lib/radio-button/style/style.css +151 -8
  211. package/lib/radio-button/style/style.min.css +1 -1
  212. package/lib/select/style/style.css +42 -59
  213. package/lib/select/style/style.min.css +1 -1
  214. package/lib/style.css +1 -1
  215. package/lib/style.min.css +1 -1
  216. package/lib/tree/src/tree.js +525 -14
  217. package/lib/tree/src/tree.min.js +1 -1
  218. package/lib/tree/src/util.js +16 -0
  219. package/lib/tree/src/util.min.js +1 -1
  220. package/lib/tree/style/style.css +26 -25
  221. package/lib/tree/style/style.min.css +1 -1
  222. package/lib/tree-select/style/style.css +27 -31
  223. package/lib/tree-select/style/style.min.css +1 -1
  224. package/lib/ui/index.js +5 -2
  225. package/lib/ui/index.min.js +1 -1
  226. package/lib/ui/src/log.js +1 -1
  227. package/lib/ui/src/log.min.js +1 -1
  228. package/lib/upload/style/style.css +30 -41
  229. package/lib/upload/style/style.min.css +1 -1
  230. package/lib/vxe-button/style/style.css +42 -72
  231. package/lib/vxe-button/style/style.min.css +1 -1
  232. package/lib/vxe-cascader/style/style.css +29 -33
  233. package/lib/vxe-cascader/style/style.min.css +1 -1
  234. package/lib/vxe-checkbox/style/style.css +22 -28
  235. package/lib/vxe-checkbox/style/style.min.css +1 -1
  236. package/lib/vxe-checkbox-button/style/style.css +151 -8
  237. package/lib/vxe-checkbox-button/style/style.min.css +1 -1
  238. package/lib/vxe-context-menu/style/style.css +14 -13
  239. package/lib/vxe-context-menu/style/style.min.css +1 -1
  240. package/lib/vxe-form/style/style.css +45 -95
  241. package/lib/vxe-form/style/style.min.css +1 -1
  242. package/lib/vxe-icon-picker/style/style.css +49 -23
  243. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  244. package/lib/vxe-list/style/style.css +26 -28
  245. package/lib/vxe-list/style/style.min.css +1 -1
  246. package/lib/vxe-menu/style/style.css +22 -29
  247. package/lib/vxe-menu/style/style.min.css +1 -1
  248. package/lib/vxe-notice-bar/style/style.css +14 -10
  249. package/lib/vxe-notice-bar/style/style.min.css +1 -1
  250. package/lib/vxe-radio/style/style.css +22 -30
  251. package/lib/vxe-radio/style/style.min.css +1 -1
  252. package/lib/vxe-radio-button/style/style.css +151 -8
  253. package/lib/vxe-radio-button/style/style.min.css +1 -1
  254. package/lib/vxe-select/style/style.css +42 -59
  255. package/lib/vxe-select/style/style.min.css +1 -1
  256. package/lib/vxe-tree/style/style.css +26 -25
  257. package/lib/vxe-tree/style/style.min.css +1 -1
  258. package/lib/vxe-tree-select/style/style.css +27 -31
  259. package/lib/vxe-tree-select/style/style.min.css +1 -1
  260. package/lib/vxe-upload/style/style.css +30 -41
  261. package/lib/vxe-upload/style/style.min.css +1 -1
  262. package/package.json +1 -1
  263. package/packages/checkbox/src/button.ts +3 -1
  264. package/packages/checkbox/src/group.ts +6 -1
  265. package/packages/date-picker/src/date-picker.ts +1 -1
  266. package/packages/icon-picker/src/icon-picker.ts +157 -48
  267. package/packages/language/ar-EG.ts +3 -0
  268. package/packages/language/de-DE.ts +3 -0
  269. package/packages/language/en-US.ts +3 -0
  270. package/packages/language/es-ES.ts +3 -0
  271. package/packages/language/fr-FR.ts +3 -0
  272. package/packages/language/hu-HU.ts +3 -0
  273. package/packages/language/hy-AM.ts +3 -0
  274. package/packages/language/id-ID.ts +3 -0
  275. package/packages/language/it-IT.ts +3 -0
  276. package/packages/language/ja-JP.ts +3 -0
  277. package/packages/language/ko-KR.ts +3 -0
  278. package/packages/language/ms-MY.ts +3 -0
  279. package/packages/language/nb-NO.ts +3 -0
  280. package/packages/language/pt-BR.ts +3 -0
  281. package/packages/language/ru-RU.ts +3 -0
  282. package/packages/language/th-TH.ts +3 -0
  283. package/packages/language/ug-CN.ts +3 -0
  284. package/packages/language/uk-UA.ts +3 -0
  285. package/packages/language/uz-UZ.ts +3 -0
  286. package/packages/language/vi-VN.ts +3 -0
  287. package/packages/language/zh-CHT.ts +3 -0
  288. package/packages/language/zh-CN.ts +3 -0
  289. package/packages/list/src/list.ts +14 -1
  290. package/packages/radio/src/button.ts +3 -1
  291. package/packages/radio/src/group.ts +6 -1
  292. package/packages/tree/src/tree.ts +443 -14
  293. package/packages/tree/src/util.ts +17 -1
  294. package/packages/ui/index.ts +4 -1
  295. package/styles/components/button.scss +56 -137
  296. package/styles/components/cascader.scss +25 -27
  297. package/styles/components/checkbox-button.scss +65 -13
  298. package/styles/components/checkbox.scss +22 -24
  299. package/styles/components/context-menu.scss +15 -13
  300. package/styles/components/form.scss +57 -134
  301. package/styles/components/icon-picker.scss +56 -27
  302. package/styles/components/link.scss +1 -1
  303. package/styles/components/list.scss +24 -26
  304. package/styles/components/menu.scss +23 -25
  305. package/styles/components/notice-bar.scss +15 -13
  306. package/styles/components/radio-button.scss +65 -13
  307. package/styles/components/radio.scss +22 -23
  308. package/styles/components/select.scss +36 -62
  309. package/styles/components/tree-select.scss +26 -27
  310. package/styles/components/tree.scss +16 -14
  311. package/styles/components/upload.scss +28 -30
  312. package/styles/helpers/baseMixin.scss +2 -2
  313. package/styles/helpers/themeStatus.scss +58 -0
  314. package/styles/theme/base.scss +11 -3
  315. package/types/all.d.ts +205 -0
  316. package/types/components/checkbox-group.d.ts +3 -1
  317. package/types/components/checkbox.d.ts +1 -1
  318. package/types/components/icon-picker.d.ts +28 -4
  319. package/types/components/list.d.ts +2 -2
  320. package/types/components/radio-group.d.ts +3 -1
  321. package/types/components/tree.d.ts +36 -0
  322. /package/es/icon/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
  323. /package/es/icon/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
  324. /package/es/icon/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
  325. /package/es/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
  326. /package/es/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
  327. /package/es/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
  328. /package/lib/icon/style/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
  329. /package/lib/icon/style/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
  330. /package/lib/icon/style/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
  331. /package/lib/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
  332. /package/lib/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
  333. /package/lib/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { ref, h, reactive, computed, watch, onBeforeUnmount, nextTick, onMounted, provide } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import { VxeUI, createEvent, useSize, globalEvents, globalResize, renderEmptyElement } from '../../ui';
4
- import { calcTreeLine } from './util';
4
+ import { calcTreeLine, getItemCacheObj } from './util';
5
5
  import { createComponentLog } from '../../ui/src/log';
6
6
  import { getCrossTreeDragNodeInfo } from './store';
7
7
  import XEUtils from 'xe-utils';
@@ -10,7 +10,7 @@ import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, get
10
10
  import { isEnableConf, enModelValue, deModelValue } from '../../ui/src/utils';
11
11
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
12
12
  import VxeLoadingComponent from '../../loading';
13
- const { errLog } = createComponentLog('tree');
13
+ const { warnLog, errLog } = createComponentLog('tree');
14
14
  const { menus, getConfig, getI18n, getIcon } = VxeUI;
15
15
  /**
16
16
  * 生成节点的唯一主键
@@ -39,6 +39,8 @@ function createInternalData() {
39
39
  offsetSize: 0,
40
40
  rowHeight: 0
41
41
  },
42
+ removeRowMaps: {},
43
+ insertRowMaps: {},
42
44
  // prevDragNode: null,
43
45
  // prevDragToChild: false,
44
46
  // prevDragPos: ''
@@ -60,14 +62,13 @@ function createReactData() {
60
62
  treeList: [],
61
63
  updateExpandedFlag: 1,
62
64
  updateCheckboxFlag: 1,
65
+ insertRowFlag: 1,
66
+ removeRowFlag: 1,
63
67
  dragNode: null,
64
68
  dragTipText: ''
65
69
  };
66
70
  }
67
- // let crossTreeDragNodeObj: {
68
- // $oldTree: VxeTreeConstructor & VxeTreePrivateMethods
69
- // $newTree: (VxeTreeConstructor & VxeTreePrivateMethods) | null
70
- // } | null = null
71
+ let crossTreeDragNodeObj = null;
71
72
  export default defineVxeComponent({
72
73
  name: 'VxeTree',
73
74
  props: {
@@ -204,6 +205,8 @@ export default defineVxeComponent({
204
205
  'node-dragstart',
205
206
  'node-dragover',
206
207
  'node-dragend',
208
+ 'node-remove-dragend',
209
+ 'node-insert-dragend',
207
210
  'node-expand',
208
211
  'node-menu',
209
212
  'menu-click'
@@ -1331,6 +1334,149 @@ export default defineVxeComponent({
1331
1334
  }
1332
1335
  recalculate();
1333
1336
  };
1337
+ const insertTreeNode = (newRecords, isAppend) => {
1338
+ const { treeFullData, nodeMaps } = internalData;
1339
+ const keyField = computeKeyField.value;
1340
+ const parentField = computeParentField.value;
1341
+ const childrenField = computeChildrenField.value;
1342
+ const mapChildrenField = computeMapChildrenField.value;
1343
+ const funcName = isAppend ? 'push' : 'unshift';
1344
+ newRecords.forEach((item) => {
1345
+ const parentRowId = item[parentField];
1346
+ const nodeid = getNodeId(item);
1347
+ const matchObj = parentRowId ? XEUtils.findTree(treeFullData, (item) => parentRowId === item[keyField], { children: mapChildrenField }) : null;
1348
+ const itemRest = getItemCacheObj(item);
1349
+ if (matchObj) {
1350
+ const { item: parentItem } = matchObj;
1351
+ const parentRest = nodeMaps[getNodeId(parentItem)];
1352
+ const parentLevel = parentRest ? parentRest.level : 0;
1353
+ let pChilds = parentItem[childrenField];
1354
+ let pMapChilds = parentItem[mapChildrenField];
1355
+ if (!XEUtils.isArray(pChilds)) {
1356
+ pChilds = parentItem[childrenField] = [];
1357
+ }
1358
+ if (!XEUtils.isArray(pMapChilds)) {
1359
+ pMapChilds = parentItem[mapChildrenField] = [];
1360
+ }
1361
+ itemRest.parent = parentItem;
1362
+ itemRest.items = pChilds;
1363
+ itemRest.level = parentLevel;
1364
+ pChilds[funcName](item);
1365
+ pMapChilds[funcName](item);
1366
+ }
1367
+ else {
1368
+ if (parentRowId) {
1369
+ warnLog('vxe.error.unableInsert');
1370
+ }
1371
+ treeFullData[funcName](item);
1372
+ }
1373
+ nodeMaps[nodeid] = itemRest;
1374
+ });
1375
+ };
1376
+ const handleInsertNodeAt = (records, targetNodeOrNodeid, isInsertNextNode) => {
1377
+ const { transform } = props;
1378
+ const { treeFullData, nodeMaps } = internalData;
1379
+ const keyField = computeKeyField.value;
1380
+ const parentField = computeParentField.value;
1381
+ const childrenField = computeChildrenField.value;
1382
+ const mapChildrenField = computeMapChildrenField.value;
1383
+ if (!transform) {
1384
+ errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'transform']);
1385
+ return Promise.resolve({ node: null, nodes: [] });
1386
+ }
1387
+ if (!XEUtils.isArray(records)) {
1388
+ records = [records];
1389
+ }
1390
+ let targetNode = targetNodeOrNodeid;
1391
+ if (XEUtils.isString(targetNodeOrNodeid) || XEUtils.isNumber(targetNodeOrNodeid)) {
1392
+ const nodeRest = nodeMaps[targetNodeOrNodeid];
1393
+ if (nodeRest) {
1394
+ targetNode = nodeRest.item;
1395
+ }
1396
+ }
1397
+ if (!records.length) {
1398
+ return Promise.resolve({ node: null, nodes: [] });
1399
+ }
1400
+ const newRecords = records.map(record => XEUtils.assign({ [mapChildrenField]: [], [childrenField]: [] }, record));
1401
+ const treeRecords = XEUtils.toArrayTree(newRecords, { key: keyField, parentKey: parentField, children: childrenField });
1402
+ if (XEUtils.eqNull(targetNode)) {
1403
+ insertTreeNode(newRecords, false);
1404
+ }
1405
+ else {
1406
+ if (targetNode === -1) {
1407
+ insertTreeNode(newRecords, true);
1408
+ }
1409
+ else {
1410
+ const matchMapObj = XEUtils.findTree(treeFullData, item => targetNode[keyField] === item[keyField], { children: mapChildrenField });
1411
+ if (matchMapObj) {
1412
+ const { parent: parentNode } = matchMapObj;
1413
+ const parentMapChilds = parentNode ? parentNode[mapChildrenField] : treeFullData;
1414
+ const parentRest = nodeMaps[getNodeId(parentNode)];
1415
+ const parentLevel = parentRest ? parentRest.level : 0;
1416
+ treeRecords.forEach((row, i) => {
1417
+ if (parentNode) {
1418
+ if (row[parentField] !== parentNode[keyField]) {
1419
+ errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, `${parentField}=${parentNode[keyField]}`]);
1420
+ row[parentField] = parentNode[keyField];
1421
+ }
1422
+ }
1423
+ else {
1424
+ if (row[parentField] !== null) {
1425
+ if (!XEUtils.eqNull(row[parentField])) {
1426
+ errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, 'null']);
1427
+ }
1428
+ row[parentField] = null;
1429
+ }
1430
+ }
1431
+ let targetIndex = matchMapObj.index + i;
1432
+ if (isInsertNextNode) {
1433
+ targetIndex = targetIndex + 1;
1434
+ }
1435
+ parentMapChilds.splice(targetIndex, 0, row);
1436
+ });
1437
+ XEUtils.eachTree(treeRecords, (item) => {
1438
+ const nodeid = getNodeId(item);
1439
+ const nodeRest = getItemCacheObj(item);
1440
+ nodeRest.level = parentLevel;
1441
+ if (item[childrenField]) {
1442
+ item[mapChildrenField] = item[childrenField];
1443
+ }
1444
+ nodeMaps[nodeid] = nodeRest;
1445
+ }, { children: childrenField });
1446
+ // 源
1447
+ if (parentNode) {
1448
+ const matchObj = XEUtils.findTree(treeFullData, item => targetNode[keyField] === item[keyField], { children: childrenField });
1449
+ if (matchObj) {
1450
+ const parentChilds = matchObj.items;
1451
+ let targetIndex = matchObj.index;
1452
+ if (isInsertNextNode) {
1453
+ targetIndex = targetIndex + 1;
1454
+ }
1455
+ parentChilds.splice(targetIndex, 0, ...treeRecords);
1456
+ }
1457
+ }
1458
+ }
1459
+ else {
1460
+ warnLog('vxe.error.unableInsert');
1461
+ insertTreeNode(newRecords, true);
1462
+ }
1463
+ }
1464
+ }
1465
+ reactData.insertRowFlag++;
1466
+ cacheNodeMap();
1467
+ handleData(true);
1468
+ updateAfterDataIndex();
1469
+ updateCheckboxStatus();
1470
+ if (reactData.scrollYLoad) {
1471
+ updateYSpace();
1472
+ }
1473
+ return nextTick().then(() => {
1474
+ return {
1475
+ node: newRecords.length ? newRecords[newRecords.length - 1] : null,
1476
+ nodes: newRecords
1477
+ };
1478
+ });
1479
+ };
1334
1480
  const treeMethods = {
1335
1481
  dispatchEvent,
1336
1482
  getNodeId,
@@ -1734,7 +1880,91 @@ export default defineVxeComponent({
1734
1880
  }
1735
1881
  return recalculate();
1736
1882
  },
1737
- clearScroll
1883
+ clearScroll,
1884
+ insert(records) {
1885
+ return handleInsertNodeAt(records, null);
1886
+ },
1887
+ insertAt(records, targetNodeOrNodeid) {
1888
+ return handleInsertNodeAt(records, targetNodeOrNodeid);
1889
+ },
1890
+ insertNextAt(records, targetNodeOrNodeid) {
1891
+ return handleInsertNodeAt(records, targetNodeOrNodeid, true);
1892
+ },
1893
+ remove(nodes) {
1894
+ const { transform } = props;
1895
+ const { treeFullData } = internalData;
1896
+ const childrenField = computeChildrenField.value;
1897
+ const mapChildrenField = computeMapChildrenField.value;
1898
+ if (!transform) {
1899
+ errLog('vxe.error.reqSupportProp', ['remove()', 'transform']);
1900
+ return Promise.resolve({ node: null, nodes: [] });
1901
+ }
1902
+ let delList = [];
1903
+ if (!nodes) {
1904
+ nodes = treeFullData;
1905
+ }
1906
+ else if (!XEUtils.isArray(nodes)) {
1907
+ nodes = [nodes];
1908
+ }
1909
+ if (!nodes.length) {
1910
+ return Promise.resolve({ node: null, nodes: [] });
1911
+ }
1912
+ // 从数据源中移除
1913
+ if (treeFullData === nodes) {
1914
+ nodes = delList = treeFullData.slice(0);
1915
+ internalData.treeFullData = [];
1916
+ }
1917
+ else {
1918
+ nodes.forEach((item) => {
1919
+ const nodeid = getNodeId(item);
1920
+ const matchMapObj = XEUtils.findTree(treeFullData, item => nodeid === getNodeId(item), { children: mapChildrenField });
1921
+ if (matchMapObj) {
1922
+ const rItems = matchMapObj.items.splice(matchMapObj.index, 1);
1923
+ delList.push(rItems[0]);
1924
+ }
1925
+ const matchObj = XEUtils.findTree(treeFullData, item => nodeid === getNodeId(item), { children: childrenField });
1926
+ if (matchObj) {
1927
+ const rItems = matchObj.items.splice(matchObj.index, 1);
1928
+ delList.push(rItems[0]);
1929
+ }
1930
+ });
1931
+ }
1932
+ reactData.removeRowFlag++;
1933
+ reactData.insertRowFlag++;
1934
+ cacheNodeMap();
1935
+ handleData(true);
1936
+ updateAfterDataIndex();
1937
+ updateCheckboxStatus();
1938
+ if (reactData.scrollYLoad) {
1939
+ updateYSpace();
1940
+ }
1941
+ return nextTick().then(() => {
1942
+ return recalculate();
1943
+ }).then(() => {
1944
+ return { node: delList.length ? delList[delList.length - 1] : null, nodes: delList };
1945
+ });
1946
+ },
1947
+ getInsertRecords() {
1948
+ const { insertRowMaps } = internalData;
1949
+ const insertRecords = [];
1950
+ XEUtils.each(insertRowMaps, (row) => {
1951
+ insertRecords.push(row);
1952
+ });
1953
+ return insertRecords;
1954
+ },
1955
+ getRemoveRecords() {
1956
+ const { removeRowMaps } = internalData;
1957
+ const removeRecords = [];
1958
+ XEUtils.each(removeRowMaps, (row) => {
1959
+ removeRecords.push(row);
1960
+ });
1961
+ return removeRecords;
1962
+ }
1963
+ };
1964
+ const handleNodeDragEndClearStatus = () => {
1965
+ clearNodeDragData();
1966
+ clearCrossTreeDragStatus();
1967
+ recalculate();
1738
1968
  };
1739
1969
  const clearNodeDropOrigin = () => {
1740
1970
  const el = refElem.value;
@@ -1785,7 +2015,7 @@ export default defineVxeComponent({
1785
2015
  }
1786
2016
  };
1787
2017
  const clearCrossTreeDragStatus = () => {
1788
- // crossTreeDragNodeObj = null
2018
+ crossTreeDragNodeObj = null;
1789
2019
  crossTreeDragNodeInfo.node = null;
1790
2020
  };
1791
2021
  const clearDragStatus = () => {
@@ -2150,6 +2380,18 @@ export default defineVxeComponent({
2150
2380
  const { dragNode } = reactData;
2151
2381
  const { nodeMaps, prevDragNode, prevDragPos, prevDragToChild } = internalData;
2152
2382
  const hasChildField = computeHasChildField.value;
2383
+ const dragConfig = computeDragOpts.value;
2384
+ const { isCrossDrag, isCrossTreeDrag } = dragConfig;
2385
+ // 跨树拖拽
2386
+ if (isCrossTreeDrag && crossTreeDragNodeObj) {
2387
+ const { $newTree } = crossTreeDragNodeObj;
2388
+ if ($newTree && $newTree.xID !== $xeTree.xID) {
2389
+ if (isCrossDrag) {
2390
+ $newTree.handleCrossTreeNodeDragInsertEvent(evnt);
2391
+ }
2392
+ return;
2393
+ }
2394
+ }
2153
2395
  if (lazy && prevDragToChild) {
2154
2396
  // 懒加载
2155
2397
  const newNodeid = getNodeId(prevDragNode);
@@ -2229,17 +2471,196 @@ export default defineVxeComponent({
2229
2471
  /**
2230
2472
  * 处理跨树拖拽完成
2231
2473
  */
2232
- handleCrossTreeNodeDragFinishEvent() {
2474
+ handleCrossTreeNodeDragFinishEvent(evnt) {
2475
+ const { treeList } = reactData;
2476
+ const { nodeMaps } = internalData;
2477
+ const dragOpts = computeDragOpts.value;
2478
+ const { animation, isCrossTreeDrag } = dragOpts;
2479
+ const mapChildrenField = computeMapChildrenField.value;
2480
+ const el = refElem.value;
2481
+ if (!el) {
2482
+ return;
2483
+ }
2484
+ if (isCrossTreeDrag && crossTreeDragNodeObj && crossTreeDragNodeInfo) {
2485
+ const { node: dragNode } = crossTreeDragNodeInfo;
2486
+ if (dragNode) {
2487
+ const dragNodeid = getNodeId(dragNode);
2488
+ const dragNodeRest = nodeMaps[dragNodeid];
2489
+ let dragNodeHeight = 0;
2490
+ let rsIndex = -1;
2491
+ if (dragNodeRest) {
2492
+ if (animation) {
2493
+ const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`);
2494
+ const targetItemEl = oldItemEl;
2495
+ if (targetItemEl) {
2496
+ dragNodeHeight = targetItemEl.offsetHeight;
2497
+ }
2498
+ }
2499
+ rsIndex = dragNodeRest.$index;
2500
+ }
2501
+ const dragRangeList = rsIndex > -1 && rsIndex < treeList.length - 1 ? treeList.slice(rsIndex + 1) : [];
2502
+ const dragList = XEUtils.toTreeArray([dragNode], {
2503
+ updated: true,
2504
+ children: mapChildrenField
2505
+ });
2506
+ $xeTree.remove(dragList).then(() => {
2507
+ if (animation && dragNodeHeight && dragRangeList.length) {
2508
+ const wrapperEl = el;
2509
+ const dtClss = [];
2510
+ dragRangeList.forEach(item => {
2511
+ const nodeid = getNodeId(item);
2512
+ dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
2513
+ });
2514
+ const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
2515
+ moveRowAnimateToTb(dtTrList, dragNodeHeight);
2516
+ }
2517
+ });
2518
+ dispatchEvent('node-remove-dragend', {
2519
+ node: dragNode
2520
+ }, evnt);
2521
+ handleNodeDragEndClearStatus();
2522
+ }
2523
+ }
2233
2524
  },
2234
2525
  /**
2235
2526
  * 处理跨树拖至新的空树
2236
2527
  */
2237
- handleCrossTreeNodeDragInsertEvent() {
2528
+ handleCrossTreeNodeDragoverEmptyEvent(evnt) {
2529
+ const { treeList } = reactData;
2530
+ const dragOpts = computeDragOpts.value;
2531
+ const { isCrossTreeDrag } = dragOpts;
2532
+ if (isCrossTreeDrag && crossTreeDragNodeObj && !treeList.length) {
2533
+ const { $oldTree, $newTree } = crossTreeDragNodeObj;
2534
+ if ($oldTree) {
2535
+ const oldTreeReactData = $oldTree;
2536
+ if ($oldTree.xID !== $xeTree.xID) {
2537
+ if ($newTree && $newTree.xID !== $xeTree.xID) {
2538
+ $newTree.hideCrossTreeNodeDropClearStatus();
2539
+ }
2540
+ evnt.preventDefault();
2541
+ $oldTree.hideCrossTreeNodeDropClearStatus();
2542
+ crossTreeDragNodeObj.$newTree = $xeTree;
2543
+ internalData.prevDragNode = null;
2544
+ reactData.dragTipText = oldTreeReactData.dragTipText;
2545
+ showDropTip(evnt, evnt.currentTarget, true, '');
2546
+ }
2547
+ }
2548
+ }
2238
2549
  },
2239
2550
  /**
2240
2551
  * 处理跨树拖插入
2241
2552
  */
2242
- handleCrossTreeNodeDragoverEmptyEvent() {
2553
+ handleCrossTreeNodeDragInsertEvent(evnt) {
2554
+ const { prevDragNode, prevDragPos, prevDragToChild } = internalData;
2555
+ const dragOpts = computeDragOpts.value;
2556
+ const { animation, isSelfToChildDrag, isCrossTreeDrag, dragEndMethod, dragToChildMethod } = dragOpts;
2557
+ const parentField = computeParentField.value;
2558
+ const mapChildrenField = computeMapChildrenField.value;
2559
+ const childrenField = computeChildrenField.value;
2560
+ // 跨表拖拽
2561
+ if (isCrossTreeDrag && crossTreeDragNodeObj && crossTreeDragNodeInfo) {
2562
+ const { node: oldNode } = crossTreeDragNodeInfo;
2563
+ const { $oldTree } = crossTreeDragNodeObj;
2564
+ const el = refElem.value;
2565
+ if (!el) {
2566
+ return;
2567
+ }
2568
+ if ($oldTree && oldNode) {
2569
+ const dragNode = oldNode;
2570
+ let dragOffsetIndex = -1;
2571
+ if (prevDragNode) {
2572
+ dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
2573
+ }
2574
+ const dragParams = {
2575
+ oldNode: dragNode,
2576
+ newNode: prevDragNode,
2577
+ dragNode,
2578
+ dragPos: prevDragPos,
2579
+ dragToChild: !!prevDragToChild,
2580
+ offsetIndex: dragOffsetIndex
2581
+ };
2582
+ const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
2583
+ const errRest = {
2584
+ status: false
2585
+ };
2586
+ Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
2587
+ if (!status) {
2588
+ if ($oldTree) {
2589
+ if ($oldTree.xID !== $xeTree.xID) {
2590
+ $oldTree.handleCrossTreeNodeDragCancelEvent(evnt);
2591
+ }
2592
+ }
2593
+ handleNodeDragEndClearStatus();
2594
+ return errRest;
2595
+ }
2596
+ let insertRest = Promise.resolve();
2597
+ const dragList = XEUtils.toTreeArray([dragNode], {
2598
+ updated: true,
2599
+ children: mapChildrenField
2600
+ });
2601
+ $oldTree.handleCrossTreeNodeDragFinishEvent(evnt);
2602
+ if (prevDragNode) {
2603
+ dragNode[parentField] = prevDragNode[parentField];
2604
+ }
2605
+ else {
2606
+ dragNode[parentField] = null;
2607
+ }
2608
+ dragList.forEach(row => {
2609
+ row[childrenField] = undefined;
2610
+ row[mapChildrenField] = undefined;
2611
+ });
2612
+ if (prevDragNode) {
2613
+ if (prevDragPos === 'bottom') {
2614
+ insertRest = $xeTree.insertNextAt(dragList, prevDragNode);
2615
+ }
2616
+ else {
2617
+ insertRest = $xeTree.insertAt(dragList, prevDragNode);
2618
+ }
2619
+ }
2620
+ else {
2621
+ insertRest = $xeTree.insert(dragList);
2622
+ }
2623
+ $xeTree.dispatchEvent('node-insert-dragend', {
2624
+ oldNode,
2625
+ newNode: prevDragNode,
2626
+ dragNode,
2627
+ dragPos: prevDragPos,
2628
+ dragToChild: isDragToChildFlag,
2629
+ offsetIndex: dragOffsetIndex
2630
+ }, evnt);
2631
+ clearNodeDragData();
2632
+ insertRest.then(() => {
2633
+ const { treeList } = reactData;
2634
+ const { nodeMaps } = internalData;
2635
+ const oldNodeid = getNodeId(dragNode);
2636
+ const oldNodeRest = nodeMaps[oldNodeid];
2637
+ let dragNodeHeight = 0;
2638
+ let rsIndex = -1;
2639
+ if (oldNodeRest) {
2640
+ if (animation) {
2641
+ const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${oldNodeid}"]`);
2642
+ const targetItemEl = oldItemEl;
2643
+ if (targetItemEl) {
2644
+ dragNodeHeight = targetItemEl.offsetHeight;
2645
+ }
2646
+ }
2647
+ rsIndex = oldNodeRest.$index;
2648
+ }
2649
+ const dragRangeList = rsIndex > -1 ? treeList.slice(rsIndex) : [];
2650
+ if (animation && dragNodeHeight && dragRangeList.length) {
2651
+ const wrapperEl = el;
2652
+ const dtClss = [];
2653
+ dragRangeList.forEach(item => {
2654
+ const nodeid = getNodeId(item);
2655
+ dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
2656
+ });
2657
+ const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
2658
+ moveRowAnimateToTb(dtTrList, -dragNodeHeight);
2659
+ }
2660
+ });
2661
+ });
2662
+ }
2663
+ }
2243
2664
  },
2244
2665
  hideCrossTreeNodeDropClearStatus() {
2245
2666
  hideDropTip();
@@ -2537,12 +2958,15 @@ export default defineVxeComponent({
2537
2958
  const loadingOpts = computeLoadingOpts.value;
2538
2959
  const isRowHover = computeIsRowHover.value;
2539
2960
  const treeStyle = computeTreeStyle.value;
2961
+ const dragOpts = computeDragOpts.value;
2540
2962
  const loadingSlot = slots.loading;
2541
2963
  const headerSlot = slots.header;
2542
2964
  const footerSlot = slots.footer;
2543
- return h('div', {
2544
- ref: refElem,
2545
- class: ['vxe-tree', {
2965
+ const teOns = {};
2966
+ if (dragOpts.isCrossTreeDrag && !treeList.length) {
2967
+ teOns.onDragover = $xeTree.handleCrossTreeNodeDragInsertEvent;
2968
+ }
2969
+ return h('div', Object.assign({ ref: refElem, class: ['vxe-tree', {
2546
2970
  [`size--${vSize}`]: vSize,
2547
2971
  'show--line': showLine,
2548
2972
  'checkbox--highlight': checkboxOpts.highlight,
@@ -2550,8 +2974,7 @@ export default defineVxeComponent({
2550
2974
  'node--hover': isRowHover,
2551
2975
  'node--trigger': trigger === 'node',
2552
2976
  'is--loading': loading
2553
- }]
2554
- }, [
2977
+ }] }, teOns), [
2555
2978
  headerSlot
2556
2979
  ? h('div', {
2557
2980
  ref: refHeaderWrapperElem,
@@ -2657,8 +3080,8 @@ export default defineVxeComponent({
2657
3080
  if (drag && !transform) {
2658
3081
  errLog('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true']);
2659
3082
  }
2660
- if (dragOpts.isCrossTreeDrag) {
2661
- errLog('vxe.error.notProp', ['drag-config.isCrossTreeDrag']);
3083
+ if (dragOpts.isCrossTreeDrag && !dragOpts.isCrossDrag) {
3084
+ errLog('vxe.error.reqSupportProp', ['drag-config.isCrossTreeDrag', 'drag-config.isCrossDrag']);
2662
3085
  }
2663
3086
  // if (valueField) {
2664
3087
  // errLog('vxe.error.delProp', ['value-field', 'value-field'])
@@ -30,3 +30,18 @@ export function calcTreeLine($xeTree, node, prevNode) {
30
30
  }
31
31
  return (rowHeight || 28) * expandSize - (prevNode ? 1 : 12);
32
32
  }
33
+ export function getItemCacheObj(item) {
34
+ return {
35
+ item,
36
+ index: -1,
37
+ $index: -1,
38
+ _index: -1,
39
+ items: [],
40
+ parent: null,
41
+ nodes: [],
42
+ level: 0,
43
+ treeIndex: -1,
44
+ lineCount: 0,
45
+ treeLoaded: false
46
+ };
47
+ }
package/es/tree/style.css CHANGED
@@ -1,6 +1,20 @@
1
1
  @charset "UTF-8";
2
+ .vxe-tree {
3
+ --vxe-ui-tree-current-font-size: var(--vxe-ui-font-size-default);
4
+ }
5
+ .vxe-tree.size--medium {
6
+ --vxe-ui-tree-current-font-size: var(--vxe-ui-font-size-medium);
7
+ }
8
+ .vxe-tree.size--small {
9
+ --vxe-ui-tree-current-font-size: var(--vxe-ui-font-size-small);
10
+ }
11
+ .vxe-tree.size--mini {
12
+ --vxe-ui-tree-current-font-size: var(--vxe-ui-font-size-mini);
13
+ }
14
+
2
15
  .vxe-tree {
3
16
  position: relative;
17
+ font-size: var(--vxe-ui-tree-current-font-size);
4
18
  color: var(--vxe-ui-font-color);
5
19
  font-family: var(--vxe-ui-font-family);
6
20
  }
@@ -66,34 +80,34 @@
66
80
  opacity: 0.3;
67
81
  }
68
82
  .vxe-tree--node-wrapper.node--level-0 > .vxe-tree--node-item {
69
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 0 + var(--vxe-ui-tree-node-root-indent));
83
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 0 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
70
84
  }
71
85
  .vxe-tree--node-wrapper.node--level-1 > .vxe-tree--node-item {
72
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 1 + var(--vxe-ui-tree-node-root-indent));
86
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 1 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
73
87
  }
74
88
  .vxe-tree--node-wrapper.node--level-2 > .vxe-tree--node-item {
75
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 2 + var(--vxe-ui-tree-node-root-indent));
89
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 2 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
76
90
  }
77
91
  .vxe-tree--node-wrapper.node--level-3 > .vxe-tree--node-item {
78
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 3 + var(--vxe-ui-tree-node-root-indent));
92
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 3 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
79
93
  }
80
94
  .vxe-tree--node-wrapper.node--level-4 > .vxe-tree--node-item {
81
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 4 + var(--vxe-ui-tree-node-root-indent));
95
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 4 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
82
96
  }
83
97
  .vxe-tree--node-wrapper.node--level-5 > .vxe-tree--node-item {
84
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 5 + var(--vxe-ui-tree-node-root-indent));
98
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 5 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
85
99
  }
86
100
  .vxe-tree--node-wrapper.node--level-6 > .vxe-tree--node-item {
87
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 6 + var(--vxe-ui-tree-node-root-indent));
101
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 6 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
88
102
  }
89
103
  .vxe-tree--node-wrapper.node--level-7 > .vxe-tree--node-item {
90
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 7 + var(--vxe-ui-tree-node-root-indent));
104
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 7 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
91
105
  }
92
106
  .vxe-tree--node-wrapper.node--level-8 > .vxe-tree--node-item {
93
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 8 + var(--vxe-ui-tree-node-root-indent));
107
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 8 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
94
108
  }
95
109
  .vxe-tree--node-wrapper.node--level-9 > .vxe-tree--node-item {
96
- padding-left: calc(var(--vxe-ui-tree-node-indent) * 9 + var(--vxe-ui-tree-node-root-indent));
110
+ padding-left: calc(var(--vxe-ui-tree-node-indent) * 9 + var(--vxe-ui-tree-node-root-indent) + var(--vxe-ui-tree-node-padding));
97
111
  }
98
112
 
99
113
  /*拖拽行与列*/
@@ -308,7 +322,7 @@
308
322
  color: var(--vxe-ui-input-disabled-color);
309
323
  }
310
324
  .vxe-tree--checkbox-option .vxe-checkbox--label {
311
- padding-left: 0.5em;
325
+ padding-left: 0.4em;
312
326
  vertical-align: middle;
313
327
  }
314
328
 
@@ -350,7 +364,7 @@
350
364
  color: var(--vxe-ui-input-disabled-color);
351
365
  }
352
366
  .vxe-tree--radio-option .vxe-radio--label {
353
- padding-left: 0.5em;
367
+ padding-left: 0.4em;
354
368
  vertical-align: middle;
355
369
  }
356
370
 
@@ -364,17 +378,4 @@
364
378
  .vxe-tree--y-space {
365
379
  width: 0;
366
380
  float: left;
367
- }
368
-
369
- .vxe-tree {
370
- font-size: var(--vxe-ui-font-size-default);
371
- }
372
- .vxe-tree.size--medium {
373
- font-size: var(--vxe-ui-font-size-medium);
374
- }
375
- .vxe-tree.size--small {
376
- font-size: var(--vxe-ui-font-size-small);
377
- }
378
- .vxe-tree.size--mini {
379
- font-size: var(--vxe-ui-font-size-mini);
380
381
  }