vxe-pc-ui 3.0.1 → 3.0.2

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 (367) hide show
  1. package/README.md +23 -25
  2. package/es/calendar/index.js +12 -0
  3. package/es/calendar/src/calendar.js +1227 -0
  4. package/es/calendar/style.css +247 -0
  5. package/es/calendar/style.min.css +1 -0
  6. package/es/checkbox/src/checkbox.js +6 -1
  7. package/es/checkbox/src/group.js +6 -1
  8. package/es/collapse/index.js +12 -0
  9. package/es/collapse/src/collapse-pane.js +39 -0
  10. package/es/collapse/src/collapse.js +39 -0
  11. package/es/collapse/style.css +0 -0
  12. package/es/collapse/style.min.css +0 -0
  13. package/es/collapse-pane/index.js +12 -0
  14. package/es/collapse-pane/style.css +0 -0
  15. package/es/collapse-pane/style.min.css +0 -0
  16. package/es/components.js +27 -27
  17. package/es/date-picker/src/date-picker.js +17 -13
  18. package/es/drawer/src/drawer.js +17 -12
  19. package/es/form/index.js +13 -0
  20. package/es/form/render/index.js +461 -0
  21. package/es/form/src/form-config-item.js +201 -0
  22. package/es/form/src/form-gather.js +87 -0
  23. package/es/form/src/form-item.js +291 -0
  24. package/es/form/src/form.js +762 -0
  25. package/es/form/src/itemInfo.js +43 -0
  26. package/es/form/src/render.js +78 -0
  27. package/es/form/src/util.js +66 -0
  28. package/es/form/style.css +470 -0
  29. package/es/form/style.min.css +1 -0
  30. package/es/form-gather/index.js +12 -0
  31. package/es/form-gather/style.css +0 -0
  32. package/es/form-gather/style.min.css +0 -0
  33. package/es/form-item/index.js +12 -0
  34. package/es/form-item/style.css +0 -0
  35. package/es/form-item/style.min.css +0 -0
  36. package/es/icon/style.css +1 -1
  37. package/es/icon-picker/src/icon-picker.js +5 -1
  38. package/es/image/src/preview.js +1 -2
  39. package/es/input/src/input.js +19 -15
  40. package/es/list/index.js +12 -0
  41. package/es/list/src/list.js +373 -0
  42. package/es/list/style.css +28 -0
  43. package/es/list/style.min.css +1 -0
  44. package/es/loading/src/loading.js +5 -0
  45. package/es/menu/src/menu.js +6 -2
  46. package/es/modal/src/modal.js +7 -4
  47. package/es/number-input/src/number-input.js +11 -7
  48. package/es/pager/style.css +303 -0
  49. package/es/pager/style.min.css +1 -0
  50. package/es/password-input/src/password-input.js +7 -3
  51. package/es/pulldown/src/pulldown.js +6 -2
  52. package/es/radio/src/button.js +6 -2
  53. package/es/radio/src/group.js +6 -2
  54. package/es/radio/src/radio.js +6 -2
  55. package/es/select/src/select.js +16 -1
  56. package/es/select/src/util.js +2 -1
  57. package/es/style.css +1 -1
  58. package/es/style.min.css +1 -1
  59. package/es/switch/src/switch.js +6 -2
  60. package/es/tabs/src/tabs.js +8 -3
  61. package/es/textarea/src/textarea.js +9 -5
  62. package/es/tooltip/src/tooltip.js +6 -1
  63. package/es/tree/index.js +12 -0
  64. package/es/tree/src/tree.js +1216 -0
  65. package/es/tree/style.css +219 -0
  66. package/es/tree/style.min.css +1 -0
  67. package/es/tree-select/index.js +12 -0
  68. package/es/tree-select/src/tree-select.js +685 -0
  69. package/es/tree-select/style.css +129 -0
  70. package/es/tree-select/style.min.css +1 -0
  71. package/es/ui/index.js +1 -1
  72. package/es/ui/src/log.js +1 -1
  73. package/es/ui/src/vn.js +1 -1
  74. package/es/upload/src/upload.js +9 -5
  75. package/es/vxe-calendar/index.js +3 -0
  76. package/es/vxe-calendar/style.css +247 -0
  77. package/es/vxe-calendar/style.min.css +1 -0
  78. package/es/vxe-collapse/index.js +3 -0
  79. package/es/vxe-collapse/style.css +0 -0
  80. package/es/vxe-collapse/style.min.css +0 -0
  81. package/es/vxe-collapse-pane/index.js +3 -0
  82. package/es/vxe-collapse-pane/style.css +0 -0
  83. package/es/vxe-collapse-pane/style.min.css +0 -0
  84. package/es/vxe-form/index.js +3 -0
  85. package/es/vxe-form/style.css +470 -0
  86. package/es/vxe-form/style.min.css +1 -0
  87. package/es/vxe-form-gather/index.js +3 -0
  88. package/es/vxe-form-gather/style.css +0 -0
  89. package/es/vxe-form-gather/style.min.css +0 -0
  90. package/es/vxe-form-item/index.js +3 -0
  91. package/es/vxe-form-item/style.css +0 -0
  92. package/es/vxe-form-item/style.min.css +0 -0
  93. package/es/vxe-list/index.js +3 -0
  94. package/es/vxe-list/style.css +28 -0
  95. package/es/vxe-list/style.min.css +1 -0
  96. package/es/vxe-pager/index.js +3 -0
  97. package/es/vxe-pager/style.css +303 -0
  98. package/es/vxe-pager/style.min.css +1 -0
  99. package/es/vxe-tree/index.js +3 -0
  100. package/es/vxe-tree/style.css +219 -0
  101. package/es/vxe-tree/style.min.css +1 -0
  102. package/es/vxe-tree-select/index.js +3 -0
  103. package/es/vxe-tree-select/style.css +129 -0
  104. package/es/vxe-tree-select/style.min.css +1 -0
  105. package/lib/calendar/index.js +19 -0
  106. package/lib/calendar/index.min.js +1 -0
  107. package/lib/calendar/src/calendar.js +1286 -0
  108. package/lib/calendar/src/calendar.min.js +1 -0
  109. package/lib/calendar/style/index.js +1 -0
  110. package/lib/calendar/style/style.css +247 -0
  111. package/lib/calendar/style/style.min.css +1 -0
  112. package/lib/checkbox/src/checkbox.js +6 -1
  113. package/lib/checkbox/src/checkbox.min.js +1 -1
  114. package/lib/checkbox/src/group.js +6 -1
  115. package/lib/checkbox/src/group.min.js +1 -1
  116. package/lib/collapse/index.js +19 -0
  117. package/lib/collapse/index.min.js +1 -0
  118. package/lib/collapse/src/collapse-pane.js +48 -0
  119. package/lib/collapse/src/collapse-pane.min.js +1 -0
  120. package/lib/collapse/src/collapse.js +48 -0
  121. package/lib/collapse/src/collapse.min.js +1 -0
  122. package/lib/collapse/style/index.js +1 -0
  123. package/lib/collapse/style/style.css +0 -0
  124. package/lib/collapse/style/style.min.css +0 -0
  125. package/lib/collapse-pane/index.js +19 -0
  126. package/lib/collapse-pane/index.min.js +1 -0
  127. package/lib/collapse-pane/style/index.js +1 -0
  128. package/lib/collapse-pane/style/style.css +0 -0
  129. package/lib/collapse-pane/style/style.min.css +0 -0
  130. package/lib/components.js +114 -39
  131. package/lib/components.min.js +1 -1
  132. package/lib/date-picker/src/date-picker.js +17 -13
  133. package/lib/date-picker/src/date-picker.min.js +1 -1
  134. package/lib/drawer/src/drawer.js +17 -12
  135. package/lib/drawer/src/drawer.min.js +1 -1
  136. package/lib/form/index.js +20 -0
  137. package/lib/form/index.min.js +1 -0
  138. package/lib/form/render/index.js +509 -0
  139. package/lib/form/render/index.min.js +1 -0
  140. package/lib/form/src/form-config-item.js +210 -0
  141. package/lib/form/src/form-config-item.min.js +1 -0
  142. package/lib/form/src/form-gather.js +99 -0
  143. package/lib/form/src/form-gather.min.js +1 -0
  144. package/lib/form/src/form-item.js +299 -0
  145. package/lib/form/src/form-item.min.js +1 -0
  146. package/lib/form/src/form.js +856 -0
  147. package/lib/form/src/form.min.js +1 -0
  148. package/lib/form/src/itemInfo.js +60 -0
  149. package/lib/form/src/itemInfo.min.js +1 -0
  150. package/lib/form/src/render.js +94 -0
  151. package/lib/form/src/render.min.js +1 -0
  152. package/lib/form/src/util.js +93 -0
  153. package/lib/form/src/util.min.js +1 -0
  154. package/lib/form/style/index.js +1 -0
  155. package/lib/form/style/style.css +470 -0
  156. package/lib/form/style/style.min.css +1 -0
  157. package/lib/form-gather/index.js +19 -0
  158. package/lib/form-gather/index.min.js +1 -0
  159. package/lib/form-gather/style/index.js +1 -0
  160. package/lib/form-gather/style/style.css +0 -0
  161. package/lib/form-gather/style/style.min.css +0 -0
  162. package/lib/form-item/index.js +19 -0
  163. package/lib/form-item/index.min.js +1 -0
  164. package/lib/form-item/style/index.js +1 -0
  165. package/lib/form-item/style/style.css +0 -0
  166. package/lib/form-item/style/style.min.css +0 -0
  167. package/lib/icon/style/style.css +1 -1
  168. package/lib/icon/style/style.min.css +1 -1
  169. package/lib/icon-picker/src/icon-picker.js +5 -1
  170. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  171. package/lib/image/src/preview.js +1 -2
  172. package/lib/image/src/preview.min.js +1 -1
  173. package/lib/index.umd.js +11284 -5009
  174. package/lib/index.umd.min.js +1 -1
  175. package/lib/input/src/input.js +19 -15
  176. package/lib/input/src/input.min.js +1 -1
  177. package/lib/list/index.js +19 -0
  178. package/lib/list/index.min.js +1 -0
  179. package/lib/list/src/list.js +415 -0
  180. package/lib/list/src/list.min.js +1 -0
  181. package/lib/list/style/index.js +1 -0
  182. package/lib/list/style/style.css +28 -0
  183. package/lib/list/style/style.min.css +1 -0
  184. package/lib/loading/src/loading.js +5 -0
  185. package/lib/loading/src/loading.min.js +1 -1
  186. package/lib/menu/src/menu.js +6 -2
  187. package/lib/menu/src/menu.min.js +1 -1
  188. package/lib/modal/src/modal.js +7 -4
  189. package/lib/modal/src/modal.min.js +1 -1
  190. package/lib/number-input/src/number-input.js +11 -7
  191. package/lib/number-input/src/number-input.min.js +1 -1
  192. package/lib/pager/style/index.js +1 -0
  193. package/lib/pager/style/style.css +303 -0
  194. package/lib/pager/style/style.min.css +1 -0
  195. package/lib/password-input/src/password-input.js +7 -3
  196. package/lib/password-input/src/password-input.min.js +1 -1
  197. package/lib/pulldown/src/pulldown.js +6 -2
  198. package/lib/pulldown/src/pulldown.min.js +1 -1
  199. package/lib/radio/src/button.js +6 -2
  200. package/lib/radio/src/button.min.js +1 -1
  201. package/lib/radio/src/group.js +6 -2
  202. package/lib/radio/src/group.min.js +1 -1
  203. package/lib/radio/src/radio.js +6 -2
  204. package/lib/radio/src/radio.min.js +1 -1
  205. package/lib/select/src/select.js +16 -1
  206. package/lib/select/src/select.min.js +1 -1
  207. package/lib/select/src/util.js +2 -1
  208. package/lib/style.css +1 -1
  209. package/lib/style.min.css +1 -1
  210. package/lib/switch/src/switch.js +6 -2
  211. package/lib/switch/src/switch.min.js +1 -1
  212. package/lib/tabs/src/tabs.js +8 -3
  213. package/lib/tabs/src/tabs.min.js +1 -1
  214. package/lib/textarea/src/textarea.js +9 -5
  215. package/lib/textarea/src/textarea.min.js +1 -1
  216. package/lib/tooltip/src/tooltip.js +6 -1
  217. package/lib/tooltip/src/tooltip.min.js +1 -1
  218. package/lib/tree/index.js +19 -0
  219. package/lib/tree/index.min.js +1 -0
  220. package/lib/tree/src/tree.js +1324 -0
  221. package/lib/tree/src/tree.min.js +1 -0
  222. package/lib/tree/style/index.js +1 -0
  223. package/lib/tree/style/style.css +219 -0
  224. package/lib/tree/style/style.min.css +1 -0
  225. package/lib/tree-select/index.js +19 -0
  226. package/lib/tree-select/index.min.js +1 -0
  227. package/lib/tree-select/src/tree-select.js +695 -0
  228. package/lib/tree-select/src/tree-select.min.js +1 -0
  229. package/lib/tree-select/style/index.js +1 -0
  230. package/lib/tree-select/style/style.css +129 -0
  231. package/lib/tree-select/style/style.min.css +1 -0
  232. package/lib/ui/index.js +1 -1
  233. package/lib/ui/index.min.js +1 -1
  234. package/lib/ui/src/log.js +1 -1
  235. package/lib/ui/src/log.min.js +1 -1
  236. package/lib/ui/src/vn.js +1 -1
  237. package/lib/ui/src/vn.min.js +1 -1
  238. package/lib/upload/src/upload.js +9 -5
  239. package/lib/upload/src/upload.min.js +1 -1
  240. package/lib/vxe-calendar/index.js +23 -0
  241. package/lib/vxe-calendar/index.min.js +1 -0
  242. package/lib/vxe-calendar/style/index.js +1 -0
  243. package/lib/vxe-calendar/style/style.css +247 -0
  244. package/lib/vxe-calendar/style/style.min.css +1 -0
  245. package/lib/vxe-collapse/index.js +23 -0
  246. package/lib/vxe-collapse/index.min.js +1 -0
  247. package/lib/vxe-collapse/style/index.js +1 -0
  248. package/lib/vxe-collapse/style/style.css +0 -0
  249. package/lib/vxe-collapse/style/style.min.css +0 -0
  250. package/lib/vxe-collapse-pane/index.js +23 -0
  251. package/lib/vxe-collapse-pane/index.min.js +1 -0
  252. package/lib/vxe-collapse-pane/style/index.js +1 -0
  253. package/lib/vxe-collapse-pane/style/style.css +0 -0
  254. package/lib/vxe-collapse-pane/style/style.min.css +0 -0
  255. package/lib/vxe-form/index.js +23 -0
  256. package/lib/vxe-form/index.min.js +1 -0
  257. package/lib/vxe-form/style/index.js +1 -0
  258. package/lib/vxe-form/style/style.css +470 -0
  259. package/lib/vxe-form/style/style.min.css +1 -0
  260. package/lib/vxe-form-gather/index.js +23 -0
  261. package/lib/vxe-form-gather/index.min.js +1 -0
  262. package/lib/vxe-form-gather/style/index.js +1 -0
  263. package/lib/vxe-form-gather/style/style.css +0 -0
  264. package/lib/vxe-form-gather/style/style.min.css +0 -0
  265. package/lib/vxe-form-item/index.js +23 -0
  266. package/lib/vxe-form-item/index.min.js +1 -0
  267. package/lib/vxe-form-item/style/index.js +1 -0
  268. package/lib/vxe-form-item/style/style.css +0 -0
  269. package/lib/vxe-form-item/style/style.min.css +0 -0
  270. package/lib/vxe-list/index.js +23 -0
  271. package/lib/vxe-list/index.min.js +1 -0
  272. package/lib/vxe-list/style/index.js +1 -0
  273. package/lib/vxe-list/style/style.css +28 -0
  274. package/lib/vxe-list/style/style.min.css +1 -0
  275. package/lib/vxe-pager/index.js +23 -0
  276. package/lib/vxe-pager/index.min.js +1 -0
  277. package/lib/vxe-pager/style/index.js +1 -0
  278. package/lib/vxe-pager/style/style.css +303 -0
  279. package/lib/vxe-pager/style/style.min.css +1 -0
  280. package/lib/vxe-tree/index.js +23 -0
  281. package/lib/vxe-tree/index.min.js +1 -0
  282. package/lib/vxe-tree/style/index.js +1 -0
  283. package/lib/vxe-tree/style/style.css +219 -0
  284. package/lib/vxe-tree/style/style.min.css +1 -0
  285. package/lib/vxe-tree-select/index.js +23 -0
  286. package/lib/vxe-tree-select/index.min.js +1 -0
  287. package/lib/vxe-tree-select/style/index.js +1 -0
  288. package/lib/vxe-tree-select/style/style.css +129 -0
  289. package/lib/vxe-tree-select/style/style.min.css +1 -0
  290. package/package.json +1 -1
  291. package/packages/calendar/index.ts +16 -0
  292. package/packages/calendar/src/calendar.ts +1281 -0
  293. package/packages/checkbox/src/checkbox.ts +7 -1
  294. package/packages/checkbox/src/group.ts +8 -2
  295. package/packages/collapse/index.ts +16 -0
  296. package/packages/collapse/src/collapse-pane.ts +47 -0
  297. package/packages/collapse/src/collapse.ts +47 -0
  298. package/packages/collapse-pane/index.ts +16 -0
  299. package/packages/components.ts +27 -27
  300. package/packages/date-picker/src/date-picker.ts +18 -13
  301. package/packages/drawer/src/drawer.ts +18 -12
  302. package/packages/form/index.ts +17 -0
  303. package/packages/form/render/index.ts +499 -0
  304. package/packages/form/src/form-config-item.ts +219 -0
  305. package/packages/form/src/form-gather.ts +104 -0
  306. package/packages/form/src/form-item.ts +322 -0
  307. package/packages/form/src/form.ts +809 -0
  308. package/packages/form/src/itemInfo.ts +47 -0
  309. package/packages/form/src/render.ts +98 -0
  310. package/packages/form/src/util.ts +80 -0
  311. package/packages/form-gather/index.ts +16 -0
  312. package/packages/form-item/index.ts +16 -0
  313. package/packages/icon-picker/src/icon-picker.ts +6 -1
  314. package/packages/image/src/preview.ts +1 -2
  315. package/packages/input/src/input.ts +20 -15
  316. package/packages/layout-footer/src/layout-footer.ts +1 -0
  317. package/packages/list/index.ts +16 -0
  318. package/packages/list/src/list.ts +403 -0
  319. package/packages/loading/src/loading.ts +6 -0
  320. package/packages/menu/src/menu.ts +7 -2
  321. package/packages/modal/src/modal.ts +8 -4
  322. package/packages/number-input/src/number-input.ts +12 -7
  323. package/packages/password-input/src/password-input.ts +8 -3
  324. package/packages/pulldown/src/pulldown.ts +7 -2
  325. package/packages/radio/src/button.ts +7 -2
  326. package/packages/radio/src/group.ts +7 -2
  327. package/packages/radio/src/radio.ts +7 -2
  328. package/packages/select/src/select.ts +17 -1
  329. package/packages/select/src/util.ts +4 -3
  330. package/packages/switch/src/switch.ts +7 -2
  331. package/packages/tabs/src/tabs.ts +9 -3
  332. package/packages/textarea/src/textarea.ts +10 -5
  333. package/packages/tooltip/src/tooltip.ts +7 -1
  334. package/packages/tree/index.ts +16 -0
  335. package/packages/tree/src/tree.ts +1292 -0
  336. package/packages/tree-select/index.ts +16 -0
  337. package/packages/tree-select/src/tree-select.ts +743 -0
  338. package/packages/ui/src/vn.ts +1 -1
  339. package/packages/upload/src/upload.ts +10 -5
  340. package/types/components/calendar.d.ts +6 -0
  341. package/types/components/colgroup.d.ts +1 -0
  342. package/types/components/column.d.ts +1 -0
  343. package/types/components/drawer.d.ts +11 -10
  344. package/types/components/form-item.d.ts +1 -1
  345. package/types/components/form.d.ts +8 -1
  346. package/types/components/list.d.ts +1 -0
  347. package/types/components/table.d.ts +43 -4
  348. package/types/components/toolbar.d.ts +5 -0
  349. package/types/components/tree-select.d.ts +4 -0
  350. package/types/ui/index.d.ts +0 -5
  351. package/types/ui/renderer.d.ts +37 -36
  352. package/types/handles/form-design.d.ts +0 -4
  353. package/types/handles/index.d.ts +0 -3
  354. package/types/handles/list-design.d.ts +0 -4
  355. package/types/handles/table.d.ts +0 -4
  356. /package/es/icon/style/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  357. /package/es/icon/style/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  358. /package/es/icon/style/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
  359. /package/es/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  360. /package/es/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  361. /package/es/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
  362. /package/lib/icon/style/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  363. /package/lib/icon/style/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  364. /package/lib/icon/style/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
  365. /package/lib/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  366. /package/lib/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  367. /package/lib/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
@@ -0,0 +1,1324 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _comp = require("../../ui/src/comp");
8
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
+ var _ui = require("../../ui");
10
+ var _vn = require("../../ui/src/vn");
11
+ var _dom = require("../../ui/src/dom");
12
+ var _loading = _interopRequireDefault(require("../../loading/src/loading"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
15
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ /**
19
+ * 生成节点的唯一主键
20
+ */
21
+ function getNodeUniqueId() {
22
+ return _xeUtils.default.uniqueId('node_');
23
+ }
24
+ var _default2 = exports.default = (0, _comp.defineVxeComponent)({
25
+ name: 'VxeTree',
26
+ mixins: [_ui.globalMixins.sizeMixin],
27
+ props: {
28
+ data: Array,
29
+ height: [String, Number],
30
+ minHeight: {
31
+ type: [String, Number],
32
+ default: function _default() {
33
+ return (0, _ui.getConfig)().tree.minHeight;
34
+ }
35
+ },
36
+ loading: Boolean,
37
+ loadingConfig: Object,
38
+ accordion: {
39
+ type: Boolean,
40
+ default: function _default() {
41
+ return (0, _ui.getConfig)().tree.accordion;
42
+ }
43
+ },
44
+ childrenField: {
45
+ type: String,
46
+ default: function _default() {
47
+ return (0, _ui.getConfig)().tree.childrenField;
48
+ }
49
+ },
50
+ valueField: {
51
+ type: String,
52
+ default: function _default() {
53
+ return (0, _ui.getConfig)().tree.valueField;
54
+ }
55
+ },
56
+ keyField: {
57
+ type: String,
58
+ default: function _default() {
59
+ return (0, _ui.getConfig)().tree.keyField;
60
+ }
61
+ },
62
+ parentField: {
63
+ type: String,
64
+ default: function _default() {
65
+ return (0, _ui.getConfig)().tree.parentField;
66
+ }
67
+ },
68
+ titleField: {
69
+ type: String,
70
+ default: function _default() {
71
+ return (0, _ui.getConfig)().tree.titleField;
72
+ }
73
+ },
74
+ hasChildField: {
75
+ type: String,
76
+ default: function _default() {
77
+ return (0, _ui.getConfig)().tree.hasChildField;
78
+ }
79
+ },
80
+ // mapChildrenField: {
81
+ // type: String as PropType<VxeTreePropTypes.MapChildrenField>,
82
+ // default: () => getConfig().tree.mapChildrenField
83
+ // },
84
+ transform: Boolean,
85
+ // 已废弃
86
+ isCurrent: Boolean,
87
+ // 已废弃
88
+ isHover: Boolean,
89
+ showLine: {
90
+ type: Boolean,
91
+ default: function _default() {
92
+ return (0, _ui.getConfig)().tree.showLine;
93
+ }
94
+ },
95
+ trigger: String,
96
+ indent: {
97
+ type: Number,
98
+ default: function _default() {
99
+ return (0, _ui.getConfig)().tree.indent;
100
+ }
101
+ },
102
+ showRadio: {
103
+ type: Boolean,
104
+ default: function _default() {
105
+ return (0, _ui.getConfig)().tree.showRadio;
106
+ }
107
+ },
108
+ checkNodeKey: {
109
+ type: [String, Number],
110
+ default: function _default() {
111
+ return (0, _ui.getConfig)().tree.checkNodeKey;
112
+ }
113
+ },
114
+ radioConfig: Object,
115
+ showCheckbox: {
116
+ type: Boolean,
117
+ default: function _default() {
118
+ return (0, _ui.getConfig)().tree.showCheckbox;
119
+ }
120
+ },
121
+ checkNodeKeys: {
122
+ type: Array,
123
+ default: function _default() {
124
+ return (0, _ui.getConfig)().tree.checkNodeKeys;
125
+ }
126
+ },
127
+ checkboxConfig: Object,
128
+ nodeConfig: Object,
129
+ lazy: Boolean,
130
+ toggleMethod: Function,
131
+ loadMethod: Function,
132
+ showIcon: {
133
+ type: Boolean,
134
+ default: true
135
+ },
136
+ iconOpen: {
137
+ type: String,
138
+ default: function _default() {
139
+ return (0, _ui.getConfig)().tree.iconOpen;
140
+ }
141
+ },
142
+ iconClose: {
143
+ type: String,
144
+ default: function _default() {
145
+ return (0, _ui.getConfig)().tree.iconClose;
146
+ }
147
+ },
148
+ iconLoaded: {
149
+ type: String,
150
+ default: function _default() {
151
+ return (0, _ui.getConfig)().tree.iconLoaded;
152
+ }
153
+ },
154
+ size: {
155
+ type: String,
156
+ default: function _default() {
157
+ return (0, _ui.getConfig)().tree.size || (0, _ui.getConfig)().size;
158
+ }
159
+ }
160
+ },
161
+ data: function data() {
162
+ var xID = _xeUtils.default.uniqueId();
163
+ var reactData = {
164
+ currentNode: null,
165
+ nodeMaps: {},
166
+ selectRadioKey: null,
167
+ treeList: [],
168
+ treeExpandedMaps: {},
169
+ treeExpandLazyLoadedMaps: {},
170
+ selectCheckboxMaps: {},
171
+ indeterminateCheckboxMaps: {}
172
+ };
173
+ var internalData = {};
174
+ return {
175
+ xID: xID,
176
+ reactData: reactData,
177
+ internalData: internalData
178
+ };
179
+ },
180
+ computed: Object.assign(Object.assign({}, {}), {
181
+ computeTitleField: function computeTitleField() {
182
+ var $xeTree = this;
183
+ var props = $xeTree;
184
+ return props.titleField || 'title';
185
+ },
186
+ computeKeyField: function computeKeyField() {
187
+ var $xeTree = this;
188
+ var props = $xeTree;
189
+ return props.keyField || 'id';
190
+ },
191
+ computeValueField: function computeValueField() {
192
+ var $xeTree = this;
193
+ var props = $xeTree;
194
+ var keyField = $xeTree.computeKeyField;
195
+ return props.valueField || keyField;
196
+ },
197
+ computeParentField: function computeParentField() {
198
+ var $xeTree = this;
199
+ var props = $xeTree;
200
+ return props.parentField || 'parentId';
201
+ },
202
+ computeChildrenField: function computeChildrenField() {
203
+ var $xeTree = this;
204
+ var props = $xeTree;
205
+ return props.childrenField || 'children';
206
+ },
207
+ computeHasChildField: function computeHasChildField() {
208
+ var $xeTree = this;
209
+ var props = $xeTree;
210
+ return props.hasChildField || 'hasChild';
211
+ },
212
+ computeIsRowCurrent: function computeIsRowCurrent() {
213
+ var $xeTree = this;
214
+ var props = $xeTree;
215
+ var nodeOpts = $xeTree.computeNodeOpts;
216
+ var isCurrent = nodeOpts.isCurrent;
217
+ if (_xeUtils.default.isBoolean(isCurrent)) {
218
+ return isCurrent;
219
+ }
220
+ return props.isCurrent;
221
+ },
222
+ computeIsRowHover: function computeIsRowHover() {
223
+ var $xeTree = this;
224
+ var props = $xeTree;
225
+ var nodeOpts = $xeTree.computeNodeOpts;
226
+ var isHover = nodeOpts.isHover;
227
+ if (_xeUtils.default.isBoolean(isHover)) {
228
+ return isHover;
229
+ }
230
+ return props.isHover;
231
+ },
232
+ computeRadioOpts: function computeRadioOpts() {
233
+ var $xeTree = this;
234
+ var props = $xeTree;
235
+ return Object.assign({
236
+ showIcon: true
237
+ }, (0, _ui.getConfig)().tree.radioConfig, props.radioConfig);
238
+ },
239
+ computeCheckboxOpts: function computeCheckboxOpts() {
240
+ var $xeTree = this;
241
+ var props = $xeTree;
242
+ return Object.assign({
243
+ showIcon: true
244
+ }, (0, _ui.getConfig)().tree.checkboxConfig, props.checkboxConfig);
245
+ },
246
+ computeNodeOpts: function computeNodeOpts() {
247
+ var $xeTree = this;
248
+ var props = $xeTree;
249
+ return Object.assign({}, (0, _ui.getConfig)().tree.nodeConfig, props.nodeConfig);
250
+ },
251
+ computeLoadingOpts: function computeLoadingOpts() {
252
+ var $xeTree = this;
253
+ var props = $xeTree;
254
+ return Object.assign({}, (0, _ui.getConfig)().tree.loadingConfig, props.loadingConfig);
255
+ },
256
+ computeTreeStyle: function computeTreeStyle() {
257
+ var $xeTree = this;
258
+ var props = $xeTree;
259
+ var height = props.height,
260
+ minHeight = props.minHeight;
261
+ var stys = {};
262
+ if (height) {
263
+ stys.height = (0, _dom.toCssUnit)(height);
264
+ }
265
+ if (minHeight) {
266
+ stys.minHeight = (0, _dom.toCssUnit)(minHeight);
267
+ }
268
+ return stys;
269
+ }
270
+ }),
271
+ methods: {
272
+ //
273
+ // Method
274
+ //
275
+ dispatchEvent: function dispatchEvent(type, params, evnt) {
276
+ var $xeTree = this;
277
+ $xeTree.$emit(type, (0, _ui.createEvent)(evnt, {
278
+ $tree: $xeTree
279
+ }, params));
280
+ },
281
+ clearRadioNode: function clearRadioNode() {
282
+ var $xeTree = this;
283
+ var reactData = $xeTree.reactData;
284
+ reactData.selectRadioKey = null;
285
+ return $xeTree.$nextTick();
286
+ },
287
+ clearCheckboxNode: function clearCheckboxNode() {
288
+ var $xeTree = this;
289
+ var reactData = $xeTree.reactData;
290
+ reactData.selectCheckboxMaps = {};
291
+ return $xeTree.$nextTick();
292
+ },
293
+ setAllCheckboxNode: function setAllCheckboxNode(checked) {
294
+ var $xeTree = this;
295
+ var reactData = $xeTree.reactData;
296
+ var selectMaps = Object.assign(reactData.selectCheckboxMaps);
297
+ var childrenField = $xeTree.computeChildrenField;
298
+ if (checked) {
299
+ _xeUtils.default.eachTree(reactData.treeList, function (node) {
300
+ var nodeid = $xeTree.getNodeId(node);
301
+ selectMaps[nodeid] = true;
302
+ }, {
303
+ children: childrenField
304
+ });
305
+ }
306
+ reactData.selectCheckboxMaps = selectMaps;
307
+ return $xeTree.$nextTick();
308
+ },
309
+ clearExpandNode: function clearExpandNode() {
310
+ var $xeTree = this;
311
+ return $xeTree.clearAllExpandNode();
312
+ },
313
+ clearAllExpandNode: function clearAllExpandNode() {
314
+ var $xeTree = this;
315
+ var reactData = $xeTree.reactData;
316
+ _xeUtils.default.each(reactData.nodeMaps, function (nodeItem) {
317
+ nodeItem.treeLoaded = false;
318
+ });
319
+ reactData.treeExpandedMaps = {};
320
+ return $xeTree.$nextTick();
321
+ },
322
+ setExpandByNodeId: function setExpandByNodeId(nodeids, expanded) {
323
+ var $xeTree = this;
324
+ var reactData = $xeTree.reactData;
325
+ var expandedMaps = Object.assign(reactData.treeExpandedMaps);
326
+ if (nodeids) {
327
+ if (!_xeUtils.default.isArray(nodeids)) {
328
+ nodeids = [nodeids];
329
+ }
330
+ nodeids.forEach(function (nodeid) {
331
+ $xeTree.handleSetExpand(nodeid, expanded, expandedMaps);
332
+ });
333
+ reactData.treeExpandedMaps = expandedMaps;
334
+ }
335
+ return $xeTree.$nextTick();
336
+ },
337
+ setExpandNode: function setExpandNode(nodes, expanded) {
338
+ var $xeTree = this;
339
+ var reactData = $xeTree.reactData;
340
+ var expandedMaps = Object.assign(reactData.treeExpandedMaps);
341
+ if (nodes) {
342
+ if (!_xeUtils.default.isArray(nodes)) {
343
+ nodes = [nodes];
344
+ }
345
+ nodes.forEach(function (node) {
346
+ var nodeid = $xeTree.getNodeId(node);
347
+ $xeTree.handleSetExpand(nodeid, expanded, expandedMaps);
348
+ });
349
+ reactData.treeExpandedMaps = expandedMaps;
350
+ }
351
+ return $xeTree.$nextTick();
352
+ },
353
+ toggleExpandByNodeId: function toggleExpandByNodeId(nodeids) {
354
+ var $xeTree = this;
355
+ var reactData = $xeTree.reactData;
356
+ var expandedMaps = Object.assign(reactData.treeExpandedMaps);
357
+ if (nodeids) {
358
+ if (!_xeUtils.default.isArray(nodeids)) {
359
+ nodeids = [nodeids];
360
+ }
361
+ nodeids.forEach(function (nodeid) {
362
+ $xeTree.handleSetExpand(nodeid, !expandedMaps[nodeid], expandedMaps);
363
+ });
364
+ reactData.treeExpandedMaps = expandedMaps;
365
+ }
366
+ return $xeTree.$nextTick();
367
+ },
368
+ toggleExpandNode: function toggleExpandNode(nodes) {
369
+ var $xeTree = this;
370
+ var reactData = $xeTree.reactData;
371
+ var expandedMaps = Object.assign(reactData.treeExpandedMaps);
372
+ if (nodes) {
373
+ if (!_xeUtils.default.isArray(nodes)) {
374
+ nodes = [nodes];
375
+ }
376
+ nodes.forEach(function (node) {
377
+ var nodeid = $xeTree.getNodeId(node);
378
+ $xeTree.handleSetExpand(nodeid, !expandedMaps[nodeid], expandedMaps);
379
+ });
380
+ reactData.treeExpandedMaps = expandedMaps;
381
+ }
382
+ return $xeTree.$nextTick();
383
+ },
384
+ setAllExpandNode: function setAllExpandNode() {
385
+ var $xeTree = this;
386
+ var reactData = $xeTree.reactData;
387
+ var expandedMaps = Object.assign(reactData.treeExpandedMaps);
388
+ var childrenField = $xeTree.computeChildrenField;
389
+ _xeUtils.default.eachTree(reactData.treeList, function (node) {
390
+ var nodeid = $xeTree.getNodeId(node);
391
+ expandedMaps[nodeid] = true;
392
+ }, {
393
+ children: childrenField
394
+ });
395
+ reactData.treeExpandedMaps = expandedMaps;
396
+ return $xeTree.$nextTick();
397
+ },
398
+ reloadExpandNode: function reloadExpandNode(node) {
399
+ var $xeTree = this;
400
+ var props = $xeTree;
401
+ var lazy = props.lazy;
402
+ if (lazy) {
403
+ $xeTree.clearExpandLoaded(node);
404
+ return $xeTree.handleAsyncTreeExpandChilds(node);
405
+ }
406
+ return $xeTree.$nextTick();
407
+ },
408
+ clearExpandLoaded: function clearExpandLoaded(node) {
409
+ var $xeTree = this;
410
+ var props = $xeTree;
411
+ var reactData = $xeTree.reactData;
412
+ var lazy = props.lazy;
413
+ var nodeMaps = reactData.nodeMaps;
414
+ if (lazy) {
415
+ var nodeItem = nodeMaps[$xeTree.getNodeId(node)];
416
+ if (nodeItem) {
417
+ nodeItem.treeLoaded = false;
418
+ }
419
+ }
420
+ return $xeTree.$nextTick();
421
+ },
422
+ /**
423
+ * 用于树结构,给行数据加载子节点
424
+ */
425
+ loadChildrenNode: function loadChildrenNode(node, childRecords) {
426
+ var $xeTree = this;
427
+ var props = $xeTree;
428
+ var reactData = $xeTree.reactData;
429
+ var lazy = props.lazy,
430
+ transform = props.transform;
431
+ var nodeMaps = reactData.nodeMaps;
432
+ if (!lazy) {
433
+ return Promise.resolve([]);
434
+ }
435
+ var childrenField = $xeTree.computeChildrenField;
436
+ var parentNodeItem = nodeMaps[$xeTree.getNodeId(node)];
437
+ var parentLevel = parentNodeItem ? parentNodeItem.level : 0;
438
+ var parentNodes = parentNodeItem ? parentNodeItem.nodes : [];
439
+ return $xeTree.createNode(childRecords).then(function (nodeList) {
440
+ _xeUtils.default.eachTree(nodeList, function (childRow, index, items, path, parent, nodes) {
441
+ var itemNodeId = $xeTree.getNodeId(childRow);
442
+ nodeMaps[itemNodeId] = {
443
+ item: node,
444
+ itemIndex: -1,
445
+ items: items,
446
+ parent: parent || parentNodeItem.item,
447
+ nodes: parentNodes.concat(nodes),
448
+ level: parentLevel + nodes.length,
449
+ lineCount: 0,
450
+ treeLoaded: false
451
+ };
452
+ }, {
453
+ children: childrenField
454
+ });
455
+ node[childrenField] = nodeList;
456
+ if (transform) {
457
+ node[childrenField] = nodeList;
458
+ }
459
+ $xeTree.updateNodeLine(node);
460
+ return nodeList;
461
+ });
462
+ },
463
+ getNodeId: function getNodeId(node) {
464
+ var $xeTree = this;
465
+ var valueField = $xeTree.computeValueField;
466
+ var nodeid = _xeUtils.default.get(node, valueField);
467
+ return _xeUtils.default.eqNull(nodeid) ? '' : encodeURIComponent(nodeid);
468
+ },
469
+ isExpandByNode: function isExpandByNode(node) {
470
+ var $xeTree = this;
471
+ var reactData = $xeTree.reactData;
472
+ var treeExpandedMaps = reactData.treeExpandedMaps;
473
+ var nodeid = $xeTree.getNodeId(node);
474
+ return !!treeExpandedMaps[nodeid];
475
+ },
476
+ isCheckedByRadioNodeId: function isCheckedByRadioNodeId(nodeid) {
477
+ var $xeTree = this;
478
+ var reactData = $xeTree.reactData;
479
+ var selectRadioKey = reactData.selectRadioKey;
480
+ return selectRadioKey === nodeid;
481
+ },
482
+ isCheckedByRadioNode: function isCheckedByRadioNode(node) {
483
+ var $xeTree = this;
484
+ return $xeTree.isCheckedByRadioNodeId($xeTree.getNodeId(node));
485
+ },
486
+ isCheckedByCheckboxNodeId: function isCheckedByCheckboxNodeId(nodeid) {
487
+ var $xeTree = this;
488
+ var reactData = $xeTree.reactData;
489
+ var selectCheckboxMaps = reactData.selectCheckboxMaps;
490
+ return !!selectCheckboxMaps[nodeid];
491
+ },
492
+ isCheckedByCheckboxNode: function isCheckedByCheckboxNode(node) {
493
+ var $xeTree = this;
494
+ return $xeTree.isCheckedByCheckboxNodeId($xeTree.getNodeId(node));
495
+ },
496
+ isIndeterminateByCheckboxNodeid: function isIndeterminateByCheckboxNodeid(nodeid) {
497
+ var $xeTree = this;
498
+ var reactData = $xeTree.reactData;
499
+ var indeterminateCheckboxMaps = reactData.indeterminateCheckboxMaps;
500
+ return !!indeterminateCheckboxMaps[nodeid];
501
+ },
502
+ isIndeterminateByCheckboxNode: function isIndeterminateByCheckboxNode(node) {
503
+ var $xeTree = this;
504
+ return $xeTree.isIndeterminateByCheckboxNodeid($xeTree.getNodeId(node));
505
+ },
506
+ emitCheckboxMode: function emitCheckboxMode(value) {
507
+ var $xeTree = this;
508
+ $xeTree.$emit('update:checkNodeKeys', value);
509
+ },
510
+ emitRadioMode: function emitRadioMode(value) {
511
+ var $xeTree = this;
512
+ $xeTree.$emit('update:checkNodeKey', value);
513
+ },
514
+ setRadioNode: function setRadioNode(node, checked) {
515
+ var $xeTree = this;
516
+ var reactData = $xeTree.reactData;
517
+ if (node) {
518
+ reactData.selectRadioKey = checked ? $xeTree.getNodeId(node) : null;
519
+ }
520
+ return $xeTree.$nextTick();
521
+ },
522
+ setCheckboxNode: function setCheckboxNode(nodeList, checked) {
523
+ var $xeTree = this;
524
+ if (nodeList) {
525
+ if (!_xeUtils.default.isArray(nodeList)) {
526
+ nodeList = [nodeList];
527
+ }
528
+ $xeTree.handleCheckedCheckboxNode(nodeList.map(function (item) {
529
+ return $xeTree.getNodeId(item);
530
+ }), checked);
531
+ }
532
+ return $xeTree.$nextTick();
533
+ },
534
+ setCheckboxByNodeId: function setCheckboxByNodeId(nodeIds, checked) {
535
+ var $xeTree = this;
536
+ if (nodeIds) {
537
+ if (!_xeUtils.default.isArray(nodeIds)) {
538
+ nodeIds = [nodeIds];
539
+ }
540
+ $xeTree.handleCheckedCheckboxNode(nodeIds, checked);
541
+ }
542
+ return $xeTree.$nextTick();
543
+ },
544
+ handleCheckedCheckboxNode: function handleCheckedCheckboxNode(nodeIds, checked) {
545
+ var $xeTree = this;
546
+ var reactData = $xeTree.reactData;
547
+ var selectKeyMaps = Object.assign({}, reactData.selectCheckboxMaps);
548
+ nodeIds.forEach(function (key) {
549
+ if (checked) {
550
+ selectKeyMaps[key] = true;
551
+ } else if (selectKeyMaps[key]) {
552
+ delete selectKeyMaps[key];
553
+ }
554
+ });
555
+ reactData.selectCheckboxMaps = selectKeyMaps;
556
+ },
557
+ updateCheckboxChecked: function updateCheckboxChecked(nodeIds) {
558
+ var $xeTree = this;
559
+ var reactData = $xeTree.reactData;
560
+ var selectKeyMaps = {};
561
+ if (nodeIds) {
562
+ nodeIds.forEach(function (key) {
563
+ selectKeyMaps[key] = true;
564
+ });
565
+ }
566
+ reactData.selectCheckboxMaps = selectKeyMaps;
567
+ },
568
+ handleSetExpand: function handleSetExpand(nodeid, expanded, expandedMaps) {
569
+ if (expanded) {
570
+ if (expandedMaps[nodeid]) {
571
+ expandedMaps[nodeid] = true;
572
+ }
573
+ } else {
574
+ if (expandedMaps[nodeid]) {
575
+ delete expandedMaps[nodeid];
576
+ }
577
+ }
578
+ },
579
+ createNode: function createNode(records) {
580
+ var $xeTree = this;
581
+ var valueField = $xeTree.computeValueField;
582
+ return Promise.resolve(records.map(function (obj) {
583
+ var item = Object.assign({}, obj);
584
+ var nodeid = $xeTree.getNodeId(item);
585
+ if (!nodeid) {
586
+ nodeid = getNodeUniqueId();
587
+ _xeUtils.default.set(item, valueField, nodeid);
588
+ }
589
+ return item;
590
+ }));
591
+ },
592
+ cacheNodeMap: function cacheNodeMap() {
593
+ var $xeTree = this;
594
+ var reactData = $xeTree.reactData;
595
+ var treeList = reactData.treeList;
596
+ var valueField = $xeTree.computeValueField;
597
+ var childrenField = $xeTree.computeChildrenField;
598
+ var keyMaps = {};
599
+ _xeUtils.default.eachTree(treeList, function (item, itemIndex, items, path, parent, nodes) {
600
+ var nodeid = $xeTree.getNodeId(item);
601
+ if (!nodeid) {
602
+ nodeid = getNodeUniqueId();
603
+ _xeUtils.default.set(item, valueField, nodeid);
604
+ }
605
+ keyMaps[nodeid] = {
606
+ item: item,
607
+ itemIndex: itemIndex,
608
+ items: items,
609
+ parent: parent,
610
+ nodes: nodes,
611
+ level: nodes.length,
612
+ lineCount: 0,
613
+ treeLoaded: false
614
+ };
615
+ }, {
616
+ children: childrenField
617
+ });
618
+ reactData.nodeMaps = keyMaps;
619
+ },
620
+ updateData: function updateData(list) {
621
+ var $xeTree = this;
622
+ var props = $xeTree;
623
+ var reactData = $xeTree.reactData;
624
+ var transform = props.transform;
625
+ var keyField = $xeTree.computeKeyField;
626
+ var parentField = $xeTree.computeParentField;
627
+ var childrenField = $xeTree.computeChildrenField;
628
+ if (transform) {
629
+ reactData.treeList = _xeUtils.default.toArrayTree(list, {
630
+ key: keyField,
631
+ parentKey: parentField,
632
+ mapChildren: childrenField
633
+ });
634
+ } else {
635
+ reactData.treeList = list ? list.slice(0) : [];
636
+ }
637
+ $xeTree.cacheNodeMap();
638
+ },
639
+ handleCountLine: function handleCountLine(item, isRoot, nodeItem) {
640
+ var $xeTree = this;
641
+ var reactData = $xeTree.reactData;
642
+ var treeExpandedMaps = reactData.treeExpandedMaps;
643
+ var childrenField = $xeTree.computeChildrenField;
644
+ var nodeid = $xeTree.getNodeId(item);
645
+ nodeItem.lineCount++;
646
+ if (treeExpandedMaps[nodeid]) {
647
+ _xeUtils.default.arrayEach(item[childrenField], function (childItem, childIndex, childList) {
648
+ if (!isRoot || childIndex < childList.length - 1) {
649
+ $xeTree.handleCountLine(childItem, false, nodeItem);
650
+ }
651
+ });
652
+ }
653
+ },
654
+ updateNodeLine: function updateNodeLine(node) {
655
+ var $xeTree = this;
656
+ var reactData = $xeTree.reactData;
657
+ var nodeMaps = reactData.nodeMaps;
658
+ if (node) {
659
+ var nodeid = $xeTree.getNodeId(node);
660
+ var nodeItem = nodeMaps[nodeid];
661
+ if (nodeItem) {
662
+ _xeUtils.default.lastArrayEach(nodeItem.nodes, function (childItem) {
663
+ var nodeid = $xeTree.getNodeId(childItem);
664
+ var nodeItem = nodeMaps[nodeid];
665
+ if (nodeItem) {
666
+ nodeItem.lineCount = 0;
667
+ $xeTree.handleCountLine(childItem, true, nodeItem);
668
+ }
669
+ });
670
+ }
671
+ }
672
+ },
673
+ handleNodeClickEvent: function handleNodeClickEvent(evnt, node) {
674
+ var $xeTree = this;
675
+ var props = $xeTree;
676
+ var reactData = $xeTree.reactData;
677
+ var showRadio = props.showRadio,
678
+ showCheckbox = props.showCheckbox,
679
+ trigger = props.trigger;
680
+ var radioOpts = $xeTree.computeRadioOpts;
681
+ var checkboxOpts = $xeTree.computeCheckboxOpts;
682
+ var isRowCurrent = $xeTree.computeIsRowCurrent;
683
+ var triggerCurrent = false;
684
+ var triggerRadio = false;
685
+ var triggerCheckbox = false;
686
+ var triggerExpand = false;
687
+ if (isRowCurrent) {
688
+ triggerCurrent = true;
689
+ $xeTree.changeCurrentEvent(evnt, node);
690
+ } else if (reactData.currentNode) {
691
+ reactData.currentNode = null;
692
+ }
693
+ if (trigger === 'node') {
694
+ triggerExpand = true;
695
+ $xeTree.toggleExpandEvent(evnt, node);
696
+ }
697
+ if (showRadio && radioOpts.trigger === 'node') {
698
+ triggerRadio = true;
699
+ $xeTree.changeRadioEvent(evnt, node);
700
+ }
701
+ if (showCheckbox && checkboxOpts.trigger === 'node') {
702
+ triggerCheckbox = true;
703
+ $xeTree.changeCheckboxEvent(evnt, node);
704
+ }
705
+ $xeTree.dispatchEvent('node-click', {
706
+ node: node,
707
+ triggerCurrent: triggerCurrent,
708
+ triggerRadio: triggerRadio,
709
+ triggerCheckbox: triggerCheckbox,
710
+ triggerExpand: triggerExpand
711
+ }, evnt);
712
+ },
713
+ handleNodeDblclickEvent: function handleNodeDblclickEvent(evnt, node) {
714
+ var $xeTree = this;
715
+ $xeTree.dispatchEvent('node-dblclick', {
716
+ node: node
717
+ }, evnt);
718
+ },
719
+ handleAsyncTreeExpandChilds: function handleAsyncTreeExpandChilds(node) {
720
+ var $xeTree = this;
721
+ var props = $xeTree;
722
+ var reactData = $xeTree.reactData;
723
+ var checkboxOpts = $xeTree.computeCheckboxOpts;
724
+ var loadMethod = props.loadMethod;
725
+ var checkStrictly = checkboxOpts.checkStrictly;
726
+ return new Promise(function (resolve) {
727
+ if (loadMethod) {
728
+ var treeExpandLazyLoadedMaps = reactData.treeExpandLazyLoadedMaps;
729
+ var nodeMaps = reactData.nodeMaps;
730
+ var nodeid = $xeTree.getNodeId(node);
731
+ var nodeItem = nodeMaps[nodeid];
732
+ treeExpandLazyLoadedMaps[nodeid] = true;
733
+ Promise.resolve(loadMethod({
734
+ $tree: $xeTree,
735
+ node: node
736
+ })).then(function (childRecords) {
737
+ nodeItem.treeLoaded = true;
738
+ if (treeExpandLazyLoadedMaps[nodeid]) {
739
+ delete treeExpandLazyLoadedMaps[nodeid];
740
+ }
741
+ if (!_xeUtils.default.isArray(childRecords)) {
742
+ childRecords = [];
743
+ }
744
+ if (childRecords) {
745
+ return $xeTree.loadChildrenNode(node, childRecords).then(function (childRows) {
746
+ var treeExpandedMaps = reactData.treeExpandedMaps;
747
+ if (childRows.length && !treeExpandedMaps[nodeid]) {
748
+ treeExpandedMaps[nodeid] = true;
749
+ }
750
+ // 如果当前节点已选中,则展开后子节点也被选中
751
+ if (!checkStrictly && $xeTree.isCheckedByCheckboxNodeId(nodeid)) {
752
+ $xeTree.handleCheckedCheckboxNode(childRows.map(function (item) {
753
+ return $xeTree.getNodeId(item);
754
+ }), true);
755
+ }
756
+ $xeTree.updateNodeLine(node);
757
+ $xeTree.dispatchEvent('load-success', {
758
+ node: node,
759
+ data: childRecords
760
+ }, new Event('load-success'));
761
+ return $xeTree.$nextTick();
762
+ });
763
+ } else {
764
+ $xeTree.updateNodeLine(node);
765
+ $xeTree.dispatchEvent('load-success', {
766
+ node: node,
767
+ data: childRecords
768
+ }, new Event('load-success'));
769
+ }
770
+ }).catch(function (e) {
771
+ var treeExpandLazyLoadedMaps = reactData.treeExpandLazyLoadedMaps;
772
+ nodeItem.treeLoaded = false;
773
+ if (treeExpandLazyLoadedMaps[nodeid]) {
774
+ delete treeExpandLazyLoadedMaps[nodeid];
775
+ }
776
+ $xeTree.updateNodeLine(node);
777
+ $xeTree.dispatchEvent('load-error', {
778
+ node: node,
779
+ data: e
780
+ }, new Event('load-error'));
781
+ }).finally(function () {
782
+ return $xeTree.$nextTick();
783
+ });
784
+ } else {
785
+ resolve();
786
+ }
787
+ });
788
+ },
789
+ /**
790
+ * 展开与收起树节点
791
+ * @param nodeList
792
+ * @param expanded
793
+ * @returns
794
+ */
795
+ handleBaseTreeExpand: function handleBaseTreeExpand(nodeList, expanded) {
796
+ var $xeTree = this;
797
+ var props = $xeTree;
798
+ var reactData = $xeTree.reactData;
799
+ var lazy = props.lazy,
800
+ accordion = props.accordion,
801
+ toggleMethod = props.toggleMethod;
802
+ var nodeMaps = reactData.nodeMaps,
803
+ treeExpandLazyLoadedMaps = reactData.treeExpandLazyLoadedMaps;
804
+ var tempExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
805
+ var childrenField = $xeTree.computeChildrenField;
806
+ var hasChildField = $xeTree.computeHasChildField;
807
+ var result = [];
808
+ var validNodes = toggleMethod ? nodeList.filter(function (node) {
809
+ return toggleMethod({
810
+ $tree: $xeTree,
811
+ expanded: expanded,
812
+ node: node
813
+ });
814
+ }) : nodeList;
815
+ if (accordion) {
816
+ validNodes = validNodes.length ? [validNodes[validNodes.length - 1]] : [];
817
+ // 同一级只能展开一个
818
+ var nodeid = $xeTree.getNodeId(validNodes[0]);
819
+ var nodeItem = nodeMaps[nodeid];
820
+ if (nodeItem) {
821
+ nodeItem.items.forEach(function (item) {
822
+ var itemNodeId = $xeTree.getNodeId(item);
823
+ if (tempExpandedMaps[itemNodeId]) {
824
+ delete tempExpandedMaps[itemNodeId];
825
+ }
826
+ });
827
+ }
828
+ }
829
+ var expandNodes = [];
830
+ if (expanded) {
831
+ validNodes.forEach(function (item) {
832
+ var itemNodeId = $xeTree.getNodeId(item);
833
+ if (!tempExpandedMaps[itemNodeId]) {
834
+ var _nodeItem = nodeMaps[itemNodeId];
835
+ var isLoad = lazy && item[hasChildField] && !_nodeItem.treeLoaded && !treeExpandLazyLoadedMaps[itemNodeId];
836
+ // 是否使用懒加载
837
+ if (isLoad) {
838
+ result.push($xeTree.handleAsyncTreeExpandChilds(item));
839
+ } else {
840
+ if (item[childrenField] && item[childrenField].length) {
841
+ tempExpandedMaps[itemNodeId] = true;
842
+ expandNodes.push(item);
843
+ }
844
+ }
845
+ }
846
+ });
847
+ } else {
848
+ validNodes.forEach(function (item) {
849
+ var itemNodeId = $xeTree.getNodeId(item);
850
+ if (tempExpandedMaps[itemNodeId]) {
851
+ delete tempExpandedMaps[itemNodeId];
852
+ expandNodes.push(item);
853
+ }
854
+ });
855
+ }
856
+ reactData.treeExpandedMaps = tempExpandedMaps;
857
+ expandNodes.forEach(function (node) {
858
+ $xeTree.updateNodeLine(node);
859
+ });
860
+ return Promise.all(result);
861
+ },
862
+ toggleExpandEvent: function toggleExpandEvent(evnt, node) {
863
+ var $xeTree = this;
864
+ var props = $xeTree;
865
+ var reactData = $xeTree.reactData;
866
+ var lazy = props.lazy;
867
+ var treeExpandedMaps = reactData.treeExpandedMaps,
868
+ treeExpandLazyLoadedMaps = reactData.treeExpandLazyLoadedMaps;
869
+ var nodeid = $xeTree.getNodeId(node);
870
+ var expanded = !treeExpandedMaps[nodeid];
871
+ evnt.stopPropagation();
872
+ if (!lazy || !treeExpandLazyLoadedMaps[nodeid]) {
873
+ $xeTree.handleBaseTreeExpand([node], expanded);
874
+ }
875
+ },
876
+ handleNodeCheckboxStatus: function handleNodeCheckboxStatus(node, selectKeyMaps, indeterminateMaps) {
877
+ var $xeTree = this;
878
+ var childrenField = $xeTree.computeChildrenField;
879
+ var childList = _xeUtils.default.get(node, childrenField);
880
+ var nodeid = $xeTree.getNodeId(node);
881
+ if (childList && childList.length) {
882
+ var checkSome = false;
883
+ var checkSize = 0;
884
+ childList.forEach(function (childNode) {
885
+ var childNodeid = $xeTree.getNodeId(childNode);
886
+ var isChecked = selectKeyMaps[childNodeid];
887
+ if (isChecked || indeterminateMaps[childNodeid]) {
888
+ if (isChecked) {
889
+ checkSize++;
890
+ }
891
+ checkSome = true;
892
+ }
893
+ });
894
+ var checkAll = checkSize === childList.length;
895
+ if (checkAll) {
896
+ if (!selectKeyMaps[nodeid]) {
897
+ selectKeyMaps[nodeid] = true;
898
+ }
899
+ if (indeterminateMaps[nodeid]) {
900
+ delete indeterminateMaps[nodeid];
901
+ }
902
+ } else {
903
+ if (selectKeyMaps[nodeid]) {
904
+ delete selectKeyMaps[nodeid];
905
+ }
906
+ indeterminateMaps[nodeid] = checkSome;
907
+ }
908
+ } else {
909
+ if (indeterminateMaps[nodeid]) {
910
+ delete indeterminateMaps[nodeid];
911
+ }
912
+ }
913
+ },
914
+ updateCheckboxStatus: function updateCheckboxStatus() {
915
+ var $xeTree = this;
916
+ var reactData = $xeTree.reactData;
917
+ var treeList = reactData.treeList;
918
+ var childrenField = $xeTree.computeChildrenField;
919
+ var checkboxOpts = $xeTree.computeCheckboxOpts;
920
+ var checkStrictly = checkboxOpts.checkStrictly;
921
+ if (!checkStrictly) {
922
+ var selectKeyMaps = Object.assign({}, reactData.selectCheckboxMaps);
923
+ var indeterminateMaps = {};
924
+ _xeUtils.default.eachTree(treeList, function (node, index, items, path, parent, nodes) {
925
+ var childList = _xeUtils.default.get(node, childrenField);
926
+ if (!childList || !childList.length) {
927
+ $xeTree.handleNodeCheckboxStatus(node, selectKeyMaps, indeterminateMaps);
928
+ }
929
+ if (index === items.length - 1) {
930
+ for (var len = nodes.length - 2; len >= 0; len--) {
931
+ var parentItem = nodes[len];
932
+ $xeTree.handleNodeCheckboxStatus(parentItem, selectKeyMaps, indeterminateMaps);
933
+ }
934
+ }
935
+ });
936
+ reactData.selectCheckboxMaps = selectKeyMaps;
937
+ reactData.indeterminateCheckboxMaps = indeterminateMaps;
938
+ }
939
+ },
940
+ changeCheckboxEvent: function changeCheckboxEvent(evnt, node) {
941
+ var $xeTree = this;
942
+ var reactData = $xeTree.reactData;
943
+ evnt.preventDefault();
944
+ evnt.stopPropagation();
945
+ var checkboxOpts = $xeTree.computeCheckboxOpts;
946
+ var checkStrictly = checkboxOpts.checkStrictly,
947
+ checkMethod = checkboxOpts.checkMethod;
948
+ var isDisabled = !!checkMethod;
949
+ if (checkMethod) {
950
+ isDisabled = !checkMethod({
951
+ node: node
952
+ });
953
+ }
954
+ if (isDisabled) {
955
+ return;
956
+ }
957
+ var selectKeyMaps = Object.assign({}, reactData.selectCheckboxMaps);
958
+ var childrenField = $xeTree.computeChildrenField;
959
+ var nodeid = $xeTree.getNodeId(node);
960
+ var isChecked = false;
961
+ if (selectKeyMaps[nodeid]) {
962
+ delete selectKeyMaps[nodeid];
963
+ } else {
964
+ isChecked = true;
965
+ selectKeyMaps[nodeid] = isChecked;
966
+ }
967
+ if (!checkStrictly) {
968
+ _xeUtils.default.eachTree(_xeUtils.default.get(node, childrenField), function (childNode) {
969
+ var childNodeid = $xeTree.getNodeId(childNode);
970
+ if (isChecked) {
971
+ if (!selectKeyMaps[childNodeid]) {
972
+ selectKeyMaps[childNodeid] = true;
973
+ }
974
+ } else {
975
+ if (selectKeyMaps[childNodeid]) {
976
+ delete selectKeyMaps[childNodeid];
977
+ }
978
+ }
979
+ }, {
980
+ children: childrenField
981
+ });
982
+ }
983
+ reactData.selectCheckboxMaps = selectKeyMaps;
984
+ $xeTree.updateCheckboxStatus();
985
+ var value = Object.keys(reactData.selectCheckboxMaps);
986
+ $xeTree.emitCheckboxMode(value);
987
+ $xeTree.dispatchEvent('checkbox-change', {
988
+ node: node,
989
+ value: value,
990
+ checked: isChecked
991
+ }, evnt);
992
+ },
993
+ changeCurrentEvent: function changeCurrentEvent(evnt, node) {
994
+ var $xeTree = this;
995
+ var reactData = $xeTree.reactData;
996
+ evnt.preventDefault();
997
+ var nodeOpts = $xeTree.computeNodeOpts;
998
+ var currentMethod = nodeOpts.currentMethod,
999
+ trigger = nodeOpts.trigger;
1000
+ var childrenField = $xeTree.computeChildrenField;
1001
+ var childList = _xeUtils.default.get(node, childrenField);
1002
+ var hasChild = childList && childList.length;
1003
+ var isDisabled = !!currentMethod;
1004
+ if (trigger === 'child') {
1005
+ if (hasChild) {
1006
+ return;
1007
+ }
1008
+ } else if (trigger === 'parent') {
1009
+ if (!hasChild) {
1010
+ return;
1011
+ }
1012
+ }
1013
+ if (currentMethod) {
1014
+ isDisabled = !currentMethod({
1015
+ node: node
1016
+ });
1017
+ }
1018
+ if (isDisabled) {
1019
+ return;
1020
+ }
1021
+ var isChecked = true;
1022
+ reactData.currentNode = node;
1023
+ $xeTree.dispatchEvent('current-change', {
1024
+ node: node,
1025
+ checked: isChecked
1026
+ }, evnt);
1027
+ },
1028
+ changeRadioEvent: function changeRadioEvent(evnt, node) {
1029
+ var $xeTree = this;
1030
+ var reactData = $xeTree.reactData;
1031
+ evnt.preventDefault();
1032
+ evnt.stopPropagation();
1033
+ var radioOpts = $xeTree.computeRadioOpts;
1034
+ var checkMethod = radioOpts.checkMethod;
1035
+ var isDisabled = !!checkMethod;
1036
+ if (checkMethod) {
1037
+ isDisabled = !checkMethod({
1038
+ node: node
1039
+ });
1040
+ }
1041
+ if (isDisabled) {
1042
+ return;
1043
+ }
1044
+ var isChecked = true;
1045
+ var value = $xeTree.getNodeId(node);
1046
+ reactData.selectRadioKey = value;
1047
+ $xeTree.emitRadioMode(value);
1048
+ $xeTree.dispatchEvent('radio-change', {
1049
+ node: node,
1050
+ value: value,
1051
+ checked: isChecked
1052
+ }, evnt);
1053
+ },
1054
+ //
1055
+ // Render
1056
+ //
1057
+ renderRadio: function renderRadio(h, node, nodeid, isChecked) {
1058
+ var $xeTree = this;
1059
+ var props = $xeTree;
1060
+ var showRadio = props.showRadio;
1061
+ var radioOpts = $xeTree.computeRadioOpts;
1062
+ var showIcon = radioOpts.showIcon,
1063
+ checkMethod = radioOpts.checkMethod,
1064
+ visibleMethod = radioOpts.visibleMethod;
1065
+ var isVisible = !visibleMethod || visibleMethod({
1066
+ node: node
1067
+ });
1068
+ var isDisabled = !!checkMethod;
1069
+ if (showRadio && showIcon && isVisible) {
1070
+ if (checkMethod) {
1071
+ isDisabled = !checkMethod({
1072
+ node: node
1073
+ });
1074
+ }
1075
+ return h('div', {
1076
+ class: ['vxe-tree--radio-option', {
1077
+ 'is--checked': isChecked,
1078
+ 'is--disabled': isDisabled
1079
+ }],
1080
+ on: {
1081
+ click: function click(evnt) {
1082
+ if (!isDisabled) {
1083
+ $xeTree.changeRadioEvent(evnt, node);
1084
+ }
1085
+ }
1086
+ }
1087
+ }, [h('span', {
1088
+ class: ['vxe-radio--icon', isChecked ? (0, _ui.getIcon)().RADIO_CHECKED : (0, _ui.getIcon)().RADIO_UNCHECKED]
1089
+ })]);
1090
+ }
1091
+ return (0, _ui.renderEmptyElement)($xeTree);
1092
+ },
1093
+ renderCheckbox: function renderCheckbox(h, node, nodeid, isChecked) {
1094
+ var $xeTree = this;
1095
+ var props = $xeTree;
1096
+ var showCheckbox = props.showCheckbox;
1097
+ var checkboxOpts = $xeTree.computeCheckboxOpts;
1098
+ var showIcon = checkboxOpts.showIcon,
1099
+ checkMethod = checkboxOpts.checkMethod,
1100
+ visibleMethod = checkboxOpts.visibleMethod;
1101
+ var isIndeterminate = $xeTree.isIndeterminateByCheckboxNodeid(nodeid);
1102
+ var isVisible = !visibleMethod || visibleMethod({
1103
+ node: node
1104
+ });
1105
+ var isDisabled = !!checkMethod;
1106
+ if (showCheckbox && showIcon && isVisible) {
1107
+ if (checkMethod) {
1108
+ isDisabled = !checkMethod({
1109
+ node: node
1110
+ });
1111
+ }
1112
+ return h('div', {
1113
+ class: ['vxe-tree--checkbox-option', {
1114
+ 'is--checked': isChecked,
1115
+ 'is--indeterminate': isIndeterminate,
1116
+ 'is--disabled': isDisabled
1117
+ }],
1118
+ on: {
1119
+ click: function click(evnt) {
1120
+ if (!isDisabled) {
1121
+ $xeTree.changeCheckboxEvent(evnt, node);
1122
+ }
1123
+ }
1124
+ }
1125
+ }, [h('span', {
1126
+ class: ['vxe-checkbox--icon', isIndeterminate ? (0, _ui.getIcon)().CHECKBOX_INDETERMINATE : isChecked ? (0, _ui.getIcon)().CHECKBOX_CHECKED : (0, _ui.getIcon)().CHECKBOX_UNCHECKED]
1127
+ })]);
1128
+ }
1129
+ return (0, _ui.renderEmptyElement)($xeTree);
1130
+ },
1131
+ renderNode: function renderNode(h, node) {
1132
+ var $xeTree = this;
1133
+ var props = $xeTree;
1134
+ var slots = $xeTree.$scopedSlots;
1135
+ var reactData = $xeTree.reactData;
1136
+ var lazy = props.lazy,
1137
+ showRadio = props.showRadio,
1138
+ showCheckbox = props.showCheckbox,
1139
+ showLine = props.showLine,
1140
+ indent = props.indent,
1141
+ iconOpen = props.iconOpen,
1142
+ iconClose = props.iconClose,
1143
+ iconLoaded = props.iconLoaded,
1144
+ showIcon = props.showIcon;
1145
+ var nodeMaps = reactData.nodeMaps,
1146
+ treeExpandedMaps = reactData.treeExpandedMaps,
1147
+ currentNode = reactData.currentNode,
1148
+ selectRadioKey = reactData.selectRadioKey,
1149
+ treeExpandLazyLoadedMaps = reactData.treeExpandLazyLoadedMaps;
1150
+ var childrenField = $xeTree.computeChildrenField;
1151
+ var titleField = $xeTree.computeTitleField;
1152
+ var hasChildField = $xeTree.computeHasChildField;
1153
+ var childList = _xeUtils.default.get(node, childrenField);
1154
+ var hasChild = childList && childList.length;
1155
+ var titleSlot = slots.title;
1156
+ var extraSlot = slots.extra;
1157
+ var nodeid = $xeTree.getNodeId(node);
1158
+ var isExpand = treeExpandedMaps[nodeid];
1159
+ var nodeItem = nodeMaps[nodeid];
1160
+ var nodeValue = _xeUtils.default.get(node, titleField);
1161
+ var childVns = [];
1162
+ if (hasChild && treeExpandedMaps[nodeid]) {
1163
+ if (showLine) {
1164
+ childVns.push(h('div', {
1165
+ key: 'line',
1166
+ class: 'vxe-tree--node-child-line',
1167
+ style: {
1168
+ height: "calc(".concat(nodeItem.lineCount, " * var(--vxe-ui-tree-node-height) - var(--vxe-ui-tree-node-height) / 2)"),
1169
+ left: "".concat((nodeItem.level + 1) * (indent || 1), "px")
1170
+ }
1171
+ }));
1172
+ }
1173
+ childList.forEach(function (childItem) {
1174
+ childVns.push($xeTree.renderNode(h, childItem));
1175
+ });
1176
+ }
1177
+ var isRadioChecked = false;
1178
+ if (showRadio) {
1179
+ // eslint-disable-next-line eqeqeq
1180
+ isRadioChecked = nodeid == selectRadioKey;
1181
+ }
1182
+ var isCheckboxChecked = false;
1183
+ if (showCheckbox) {
1184
+ isCheckboxChecked = $xeTree.isCheckedByCheckboxNodeId(nodeid);
1185
+ }
1186
+ var hasLazyChilds = false;
1187
+ var isLazyLoading = false;
1188
+ var isLazyLoaded = false;
1189
+ if (lazy) {
1190
+ isLazyLoading = !!treeExpandLazyLoadedMaps[nodeid];
1191
+ hasLazyChilds = node[hasChildField];
1192
+ isLazyLoaded = !!nodeItem.treeLoaded;
1193
+ }
1194
+ return h('div', {
1195
+ class: ['vxe-tree--node-wrapper', "node--level-".concat(nodeItem.level)],
1196
+ attrs: {
1197
+ nodeid: nodeid
1198
+ }
1199
+ }, [h('div', {
1200
+ class: ['vxe-tree--node-item', {
1201
+ 'is--current': currentNode && nodeid === $xeTree.getNodeId(currentNode),
1202
+ 'is-radio--checked': isRadioChecked,
1203
+ 'is-checkbox--checked': isCheckboxChecked
1204
+ }],
1205
+ style: {
1206
+ paddingLeft: "".concat((nodeItem.level - 1) * (indent || 1), "px")
1207
+ },
1208
+ on: {
1209
+ click: function click(evnt) {
1210
+ $xeTree.handleNodeClickEvent(evnt, node);
1211
+ },
1212
+ dblclick: function dblclick(evnt) {
1213
+ $xeTree.handleNodeDblclickEvent(evnt, node);
1214
+ }
1215
+ }
1216
+ }, [showIcon || showLine ? h('div', {
1217
+ class: 'vxe-tree--node-item-switcher'
1218
+ }, showIcon && (lazy ? isLazyLoaded ? hasChild : hasLazyChilds : hasChild) ? [h('div', {
1219
+ class: 'vxe-tree--node-item-icon',
1220
+ on: {
1221
+ click: function click(evnt) {
1222
+ $xeTree.toggleExpandEvent(evnt, node);
1223
+ }
1224
+ }
1225
+ }, [h('i', {
1226
+ class: isLazyLoading ? iconLoaded || (0, _ui.getIcon)().TREE_NODE_LOADED : isExpand ? iconOpen || (0, _ui.getIcon)().TREE_NODE_OPEN : iconClose || (0, _ui.getIcon)().TREE_NODE_CLOSE
1227
+ })])] : []) : (0, _ui.renderEmptyElement)($xeTree), $xeTree.renderRadio(h, node, nodeid, isRadioChecked), $xeTree.renderCheckbox(h, node, nodeid, isCheckboxChecked), h('div', {
1228
+ class: 'vxe-tree--node-item-inner'
1229
+ }, [h('div', {
1230
+ class: 'vxe-tree--node-item-title'
1231
+ }, titleSlot ? (0, _vn.getSlotVNs)(titleSlot({
1232
+ node: node
1233
+ })) : "".concat(nodeValue)), extraSlot ? h('div', {
1234
+ class: 'vxe-tree--node-item-extra'
1235
+ }, (0, _vn.getSlotVNs)(extraSlot({
1236
+ node: node
1237
+ }))) : (0, _ui.renderEmptyElement)($xeTree)])]), hasChild && treeExpandedMaps[nodeid] ? h('div', {
1238
+ class: 'vxe-tree--node-child-wrapper'
1239
+ }, childVns) : (0, _ui.renderEmptyElement)($xeTree)]);
1240
+ },
1241
+ renderNodeList: function renderNodeList(h) {
1242
+ var $xeTree = this;
1243
+ var reactData = $xeTree.reactData;
1244
+ var treeList = reactData.treeList;
1245
+ return h('div', {
1246
+ class: 'vxe-tree--node-list-wrapper'
1247
+ }, treeList.map(function (node) {
1248
+ return $xeTree.renderNode(h, node);
1249
+ }));
1250
+ },
1251
+ renderVN: function renderVN(h) {
1252
+ var $xeTree = this;
1253
+ var props = $xeTree;
1254
+ var slots = $xeTree.$scopedSlots;
1255
+ var loading = props.loading,
1256
+ trigger = props.trigger,
1257
+ showLine = props.showLine;
1258
+ var vSize = $xeTree.computeSize;
1259
+ var radioOpts = $xeTree.computeRadioOpts;
1260
+ var checkboxOpts = $xeTree.computeCheckboxOpts;
1261
+ var treeStyle = $xeTree.computeTreeStyle;
1262
+ var loadingOpts = $xeTree.computeLoadingOpts;
1263
+ var isRowHover = $xeTree.computeIsRowHover;
1264
+ var loadingSlot = slots.loading;
1265
+ return h('div', {
1266
+ ref: 'refElem',
1267
+ class: ['vxe-tree', _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'show--line', showLine), 'checkbox--highlight', checkboxOpts.highlight), 'radio--highlight', radioOpts.highlight), 'node--hover', isRowHover), 'node--trigger', trigger === 'node'), 'is--loading', loading)],
1268
+ style: treeStyle
1269
+ }, [$xeTree.renderNodeList(h),
1270
+ /**
1271
+ * 加载中
1272
+ */
1273
+ h(_loading.default, {
1274
+ class: 'vxe-tree--loading',
1275
+ props: {
1276
+ value: loading,
1277
+ icon: loadingOpts.icon,
1278
+ text: loadingOpts.text
1279
+ },
1280
+ scopedSlots: loadingSlot ? {
1281
+ default: function _default() {
1282
+ return loadingSlot({
1283
+ $tree: $xeTree
1284
+ });
1285
+ }
1286
+ } : {}
1287
+ })]);
1288
+ }
1289
+ },
1290
+ watch: {
1291
+ data: function data(val) {
1292
+ var $xeTree = this;
1293
+ $xeTree.updateData(val || []);
1294
+ },
1295
+ checkNodeKey: function checkNodeKey(val) {
1296
+ var $xeTree = this;
1297
+ var reactData = $xeTree.reactData;
1298
+ reactData.selectRadioKey = val;
1299
+ },
1300
+ checkNodeKeys: function checkNodeKeys() {
1301
+ var $xeTree = this;
1302
+ var props = $xeTree;
1303
+ $xeTree.updateCheckboxChecked(props.checkNodeKeys || []);
1304
+ }
1305
+ },
1306
+ created: function created() {
1307
+ var $xeTree = this;
1308
+ var props = $xeTree;
1309
+ var reactData = $xeTree.reactData;
1310
+ reactData.selectRadioKey = props.checkNodeKey || null;
1311
+ $xeTree.updateData(props.data || []);
1312
+ $xeTree.updateCheckboxChecked(props.checkNodeKeys || []);
1313
+ },
1314
+ beforeDestroy: function beforeDestroy() {
1315
+ var $xeTree = this;
1316
+ var reactData = $xeTree.reactData;
1317
+ reactData.treeList = [];
1318
+ reactData.treeExpandedMaps = {};
1319
+ reactData.nodeMaps = {};
1320
+ },
1321
+ render: function render(h) {
1322
+ return this.renderVN(h);
1323
+ }
1324
+ });