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,499 @@
1
+ import { CreateElement } from 'vue'
2
+ import XEUtils from 'xe-utils'
3
+ import { renderer } from '../../ui'
4
+ import { getOnName, getModelEvent, getChangeEvent } from '../../ui/src/vn'
5
+ import { errLog } from '../../ui/src/log'
6
+
7
+ const componentDefaultModelProp = 'value'
8
+
9
+ /**
10
+ * 已废弃
11
+ * @deprecated
12
+ */
13
+ function getOldComponentName (name: string) {
14
+ return `vxe-${name.replace('$', '')}`
15
+ }
16
+
17
+ /**
18
+ * 已废弃
19
+ * @deprecated
20
+ */
21
+ function getOldComponent ({ name }: any) {
22
+ return getOldComponentName(name)
23
+ }
24
+
25
+ function getDefaultComponent ({ name }: any) {
26
+ return name
27
+ }
28
+
29
+ function getNativeAttrs (renderOpts: any) {
30
+ let { name, attrs } = renderOpts
31
+ if (name === 'input') {
32
+ attrs = Object.assign({ type: 'text' }, attrs)
33
+ }
34
+ return attrs
35
+ }
36
+
37
+ function getComponentFormItemProps (renderOpts: any, params: any, value: any, defaultProps?: any) {
38
+ return XEUtils.assign({}, defaultProps, renderOpts.props, { [componentDefaultModelProp]: value })
39
+ }
40
+
41
+ /**
42
+ * 原生事件处理
43
+ * @param renderOpts
44
+ * @param params
45
+ * @param modelFunc
46
+ * @param changeFunc
47
+ */
48
+ function getElementOns (renderOpts: any, params: any, modelFunc?: any, changeFunc?: any) {
49
+ const { events } = renderOpts
50
+ const modelEvent = getModelEvent(renderOpts.name)
51
+ const changeEvent = getChangeEvent(renderOpts.name)
52
+ const isSameEvent = changeEvent === modelEvent
53
+ const ons: any = {}
54
+ if (events) {
55
+ XEUtils.objectEach(events, (func, key: any) => {
56
+ ons[getOnName(key)] = function (...args: any[]) {
57
+ func(params, ...args)
58
+ }
59
+ })
60
+ }
61
+ if (modelFunc) {
62
+ ons[getOnName(modelEvent)] = function (targetEvnt: any) {
63
+ modelFunc(targetEvnt)
64
+ if (isSameEvent && changeFunc) {
65
+ changeFunc(targetEvnt)
66
+ }
67
+ if (events && events[modelEvent]) {
68
+ events[modelEvent](params, targetEvnt)
69
+ }
70
+ }
71
+ }
72
+ if (!isSameEvent && changeFunc) {
73
+ ons[getOnName(changeEvent)] = function (...args: any[]) {
74
+ changeFunc(...args)
75
+ if (events && events[changeEvent]) {
76
+ events[changeEvent](params, ...args)
77
+ }
78
+ }
79
+ }
80
+ return ons
81
+ }
82
+
83
+ /**
84
+ * 组件事件处理
85
+ * @param renderOpts
86
+ * @param params
87
+ * @param modelFunc
88
+ * @param changeFunc
89
+ */
90
+ function getComponentOns (renderOpts: any, params: any, modelFunc?: any, changeFunc?: any) {
91
+ const { events } = renderOpts
92
+ const modelEvent = getModelEvent(renderOpts.name)
93
+ const changeEvent = getChangeEvent(renderOpts.name)
94
+ const ons: any = {}
95
+ XEUtils.objectEach(events, (func, key: any) => {
96
+ ons[getOnName(key)] = function (...args: any[]) {
97
+ if (process.env.VUE_APP_VXE_ENV === 'development') {
98
+ if (!XEUtils.isFunction(func)) {
99
+ errLog('vxe.error.errFunc', [func])
100
+ }
101
+ }
102
+ func(params, ...args)
103
+ }
104
+ })
105
+ if (modelFunc) {
106
+ ons[getOnName(modelEvent)] = function (targetEvnt: any) {
107
+ modelFunc(targetEvnt)
108
+ if (events && events[modelEvent]) {
109
+ events[modelEvent](params, targetEvnt)
110
+ }
111
+ }
112
+ }
113
+ if (changeFunc) {
114
+ ons[getOnName(changeEvent)] = function (...args: any[]) {
115
+ changeFunc(...args)
116
+ if (events && events[changeEvent]) {
117
+ events[changeEvent](params, ...args)
118
+ }
119
+ }
120
+ }
121
+ return ons
122
+ }
123
+
124
+ function getItemOns (renderOpts: any, params: any) {
125
+ const { $form, data, field } = params
126
+ return getComponentOns(renderOpts, params, (value: any) => {
127
+ // 处理 model 值双向绑定
128
+ XEUtils.set(data, field, value)
129
+ }, () => {
130
+ // 处理 change 事件相关逻辑
131
+ $form.updateStatus(params)
132
+ })
133
+ }
134
+
135
+ function getNativeItemOns (renderOpts: any, params: any) {
136
+ const { $form, data, field } = params
137
+ return getElementOns(renderOpts, params, (evnt: any) => {
138
+ // 处理 model 值双向绑定
139
+ const itemValue = evnt.target.value
140
+ XEUtils.set(data, field, itemValue)
141
+ }, () => {
142
+ // 处理 change 事件相关逻辑
143
+ $form.updateStatus(params)
144
+ })
145
+ }
146
+
147
+ function renderNativeOptgroup (h: CreateElement, renderOpts: any, params: any, renderOptionsMethods: any) {
148
+ const { optionGroups, optionGroupProps = {} } = renderOpts
149
+ const groupOptions = optionGroupProps.options || 'options'
150
+ const groupLabel = optionGroupProps.label || 'label'
151
+ return optionGroups.map((group: any, gIndex: any) => {
152
+ return h('optgroup', {
153
+ key: gIndex,
154
+ attrs: {
155
+ label: group[groupLabel]
156
+ }
157
+ }, renderOptionsMethods(group[groupOptions], renderOpts, params))
158
+ })
159
+ }
160
+
161
+ /**
162
+ * 渲染表单-项
163
+ * 用于渲染原生的标签
164
+ */
165
+ function nativeItemRender (h: CreateElement, renderOpts: any, params: any) {
166
+ const { data, field } = params
167
+ const { name } = renderOpts
168
+ const attrs = getNativeAttrs(renderOpts)
169
+ const itemValue = XEUtils.get(data, field)
170
+ return [
171
+ h(name, {
172
+ class: `vxe-default-${name}`,
173
+ attrs,
174
+ domProps: {
175
+ value: attrs && name === 'input' && (attrs.type === 'submit' || attrs.type === 'reset') ? null : itemValue
176
+ },
177
+ on: getNativeItemOns(renderOpts, params)
178
+ })
179
+ ]
180
+ }
181
+
182
+ function defaultItemRender (h: CreateElement, renderOpts: any, params: any) {
183
+ const { data, field } = params
184
+ const itemValue = XEUtils.get(data, field)
185
+ return [
186
+ h(getDefaultComponent(renderOpts), {
187
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
188
+ on: getItemOns(renderOpts, params)
189
+ })
190
+ ]
191
+ }
192
+
193
+ /**
194
+ * 已废弃
195
+ * @deprecated
196
+ */
197
+ function oldItemRender (h: CreateElement, renderOpts: any, params: any) {
198
+ const { data, field } = params
199
+ const itemValue = XEUtils.get(data, field)
200
+ return [
201
+ h(getOldComponent(renderOpts), {
202
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
203
+ on: getItemOns(renderOpts, params)
204
+ })
205
+ ]
206
+ }
207
+
208
+ /**
209
+ * 已废弃
210
+ * @deprecated
211
+ */
212
+ function oldButtonItemRender (h: CreateElement, renderOpts: any, params: any) {
213
+ return [
214
+ h('vxe-button', {
215
+ props: getComponentFormItemProps(renderOpts, params, null),
216
+ on: getComponentOns(renderOpts, params)
217
+ })
218
+ ]
219
+ }
220
+
221
+ /**
222
+ * 已废弃
223
+ * @deprecated
224
+ */
225
+ function oldButtonsItemRender (h: CreateElement, renderOpts: any, params: any) {
226
+ return renderOpts.children.map((childRenderOpts: any) => oldButtonItemRender(h, childRenderOpts, params)[0])
227
+ }
228
+
229
+ /**
230
+ * 渲染原生的 select 标签
231
+ */
232
+ function renderNativeFormOptions (h: CreateElement, options: any, renderOpts: any, params: any) {
233
+ const { data, field } = params
234
+ const { optionProps = {} } = renderOpts
235
+ const labelProp = optionProps.label || 'label'
236
+ const valueProp = optionProps.value || 'value'
237
+ const disabledProp = optionProps.disabled || 'disabled'
238
+ const cellValue = XEUtils.get(data, field)
239
+ return options.map((item: any, oIndex: any) => {
240
+ return h('option', {
241
+ key: oIndex,
242
+ props: {
243
+ value: item[valueProp],
244
+ disabled: item[disabledProp],
245
+ /* eslint-disable eqeqeq */
246
+ selected: item[valueProp] == cellValue
247
+ }
248
+ }, item[labelProp])
249
+ })
250
+ }
251
+
252
+ /**
253
+ * 渲染表单-项
254
+ */
255
+ function defaultFormItemRender (h: CreateElement, renderOpts: any, params: any) {
256
+ const { data, field } = params
257
+ const itemValue = XEUtils.get(data, field)
258
+ return [
259
+ h(getDefaultComponent(renderOpts), {
260
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
261
+ on: getItemOns(renderOpts, params)
262
+ })
263
+ ]
264
+ }
265
+
266
+ function formItemRadioAndCheckboxRender (h: CreateElement, renderOpts: any, params: any) {
267
+ const { options, optionProps } = renderOpts
268
+ const { data, field } = params
269
+ const itemValue = XEUtils.get(data, field)
270
+ return [
271
+ h(getDefaultComponent(renderOpts), {
272
+ props: {
273
+ options,
274
+ optionProps,
275
+ ...getComponentFormItemProps(renderOpts, params, itemValue)
276
+ },
277
+ on: getItemOns(renderOpts, params)
278
+ })
279
+ ]
280
+ }
281
+
282
+ /**
283
+ * 已废弃
284
+ * @deprecated
285
+ */
286
+ function oldFormItemRadioAndCheckboxRender (h: CreateElement, renderOpts: any, params: any) {
287
+ const { name, options, optionProps = {} } = renderOpts
288
+ const { data, field } = params
289
+ const labelProp = optionProps.label || 'label'
290
+ const valueProp = optionProps.value || 'value'
291
+ const disabledProp = optionProps.disabled || 'disabled'
292
+ const itemValue = XEUtils.get(data, field)
293
+ const compName = getOldComponentName(name)
294
+ // 如果是分组
295
+ if (options) {
296
+ return [
297
+ h(`${compName}-group`, {
298
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
299
+ on: getItemOns(renderOpts, params),
300
+ scopedSlots: {
301
+ default: () => {
302
+ return options.map((item: any, index: any) => {
303
+ return h(compName, {
304
+ key: index,
305
+ props: {
306
+ label: item[valueProp],
307
+ content: item[labelProp],
308
+ disabled: item[disabledProp]
309
+ }
310
+ })
311
+ })
312
+ }
313
+ }
314
+ })
315
+ ]
316
+ }
317
+ return [
318
+ h(compName, {
319
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
320
+ on: getItemOns(renderOpts, params)
321
+ })
322
+ ]
323
+ }
324
+
325
+ /**
326
+ * 表单 - 渲染器
327
+ */
328
+ renderer.mixin({
329
+ input: {
330
+ renderItemContent: nativeItemRender
331
+ },
332
+ textarea: {
333
+ renderItemContent: nativeItemRender
334
+ },
335
+ select: {
336
+ renderItemContent (h: CreateElement, renderOpts: any, params: any) {
337
+ return [
338
+ h('select', {
339
+ class: 'vxe-default-select',
340
+ attrs: {
341
+ ...getNativeAttrs(renderOpts)
342
+ },
343
+ on: getNativeItemOns(renderOpts, params)
344
+ },
345
+ renderOpts.optionGroups ? renderNativeOptgroup(h, renderOpts, params, renderNativeFormOptions) : renderNativeFormOptions(h, renderOpts.options, renderOpts, params))
346
+ ]
347
+ }
348
+ },
349
+ VxeInput: {
350
+ renderItemContent: defaultItemRender
351
+ },
352
+ VxeNumberInput: {
353
+ renderItemContent: defaultItemRender
354
+ },
355
+ VxePasswordInput: {
356
+ renderItemContent: defaultItemRender
357
+ },
358
+ VxeTextarea: {
359
+ renderItemContent: defaultItemRender
360
+ },
361
+ VxeDatePicker: {
362
+ renderItemContent: defaultItemRender
363
+ },
364
+ VxeButton: {
365
+ renderItemContent: defaultFormItemRender
366
+ },
367
+ VxeButtonGroup: {
368
+ renderItemContent (h: CreateElement, renderOpts, params) {
369
+ const { options } = renderOpts
370
+ const { data, field } = params
371
+ const itemValue = XEUtils.get(data, field)
372
+ return [
373
+ h(getDefaultComponent(renderOpts), {
374
+ props: {
375
+ options,
376
+ ...getComponentFormItemProps(renderOpts, params, itemValue)
377
+ },
378
+ on: getItemOns(renderOpts, params)
379
+ })
380
+ ]
381
+ }
382
+ },
383
+ VxeSelect: {
384
+ renderItemContent (h: CreateElement, renderOpts, params) {
385
+ const { data, field } = params
386
+ const { options, optionProps, optionGroups, optionGroupProps } = renderOpts
387
+ const itemValue = XEUtils.get(data, field)
388
+ return [
389
+ h(getDefaultComponent(renderOpts), {
390
+ props: getComponentFormItemProps(renderOpts, params, itemValue, { options, optionProps, optionGroups, optionGroupProps }),
391
+ on: getItemOns(renderOpts, params)
392
+ })
393
+ ]
394
+ }
395
+ },
396
+ VxeTreeSelect: {
397
+ renderItemContent (h: CreateElement, renderOpts: any, params: any) {
398
+ const { data, field } = params
399
+ const { options, optionProps } = renderOpts
400
+ const itemValue = XEUtils.get(data, field)
401
+ return [
402
+ h(getDefaultComponent(renderOpts), {
403
+ props: getComponentFormItemProps(renderOpts, params, itemValue, { options, optionProps }),
404
+ on: getItemOns(renderOpts, params)
405
+ })
406
+ ]
407
+ }
408
+ },
409
+ VxeIconPicker: {
410
+ renderItemContent: defaultFormItemRender
411
+ },
412
+ VxeRadio: {
413
+ renderItemContent: defaultFormItemRender
414
+ },
415
+ VxeRadioGroup: {
416
+ renderItemContent: formItemRadioAndCheckboxRender
417
+ },
418
+ VxeCheckbox: {
419
+ renderItemContent: defaultFormItemRender
420
+ },
421
+ VxeCheckboxGroup: {
422
+ renderItemContent: formItemRadioAndCheckboxRender
423
+ },
424
+ VxeSwitch: {
425
+ renderItemContent: defaultItemRender
426
+ },
427
+ VxeImage: {
428
+ renderItemContent (h: CreateElement, renderOpts, params) {
429
+ const { data, field } = params
430
+ const { props } = renderOpts
431
+ const itemValue = XEUtils.get(data, field)
432
+ return [
433
+ h(getDefaultComponent(renderOpts), {
434
+ props: {
435
+ ...props,
436
+ src: itemValue
437
+ },
438
+ on: getItemOns(renderOpts, params)
439
+ })
440
+ ]
441
+ }
442
+ },
443
+ VxeImageGroup: {
444
+ renderItemContent (h: CreateElement, renderOpts, params) {
445
+ const { data, field } = params
446
+ const { props } = renderOpts
447
+ const itemValue = XEUtils.get(data, field)
448
+ return [
449
+ h(getDefaultComponent(renderOpts), {
450
+ props: {
451
+ ...props,
452
+ urlList: itemValue
453
+ },
454
+ on: getItemOns(renderOpts, params)
455
+ })
456
+ ]
457
+ }
458
+ },
459
+ VxeUpload: {
460
+ renderItemContent: defaultItemRender
461
+ },
462
+
463
+ // 以下已废弃
464
+ $input: {
465
+ renderItemContent: oldItemRender
466
+ },
467
+ $textarea: {
468
+ renderItemContent: oldItemRender
469
+ },
470
+ $button: {
471
+ renderItemContent: oldButtonItemRender
472
+ },
473
+ $buttons: {
474
+ renderItemContent: oldButtonsItemRender
475
+ },
476
+ $select: {
477
+ renderItemContent (h: CreateElement, renderOpts, params) {
478
+ const { data, field } = params
479
+ const { options, optionProps, optionGroups, optionGroupProps } = renderOpts
480
+ const itemValue = XEUtils.get(data, field)
481
+ return [
482
+ h(getOldComponent(renderOpts), {
483
+ props: getComponentFormItemProps(renderOpts, params, itemValue, { options, optionProps, optionGroups, optionGroupProps }),
484
+ on: getItemOns(renderOpts, params)
485
+ })
486
+ ]
487
+ }
488
+ },
489
+ $radio: {
490
+ renderItemContent: oldFormItemRadioAndCheckboxRender
491
+ },
492
+ $checkbox: {
493
+ renderItemContent: oldFormItemRadioAndCheckboxRender
494
+ },
495
+ $switch: {
496
+ renderItemContent: oldItemRender
497
+ }
498
+ // 以上已废弃
499
+ })
@@ -0,0 +1,219 @@
1
+ import { PropType, CreateElement, VNode } from 'vue'
2
+ import { defineVxeComponent } from '../../ui/src/comp'
3
+ import XEUtils from 'xe-utils'
4
+ import { getIcon, getI18n, renderer, renderEmptyElement, globalMixins } from '../../ui'
5
+ import { getFuncText, isEnableConf } from '../../ui/src/utils'
6
+ import { getSlotVNs } from '../../ui/src/vn'
7
+ import { renderTitle } from './render'
8
+ import { isActiveItem } from './util'
9
+
10
+ import type { VxeFormConstructor, VxeFormDefines, VxeFormPrivateMethods, VxeComponentSlotType, VxeComponentSizeType } from '../../../types'
11
+
12
+ const VxeFormConfigItem = defineVxeComponent({
13
+ name: 'VxeFormConfigItem',
14
+ mixins: [
15
+ globalMixins.sizeMixin
16
+ ],
17
+ props: {
18
+ itemConfig: Object as PropType<VxeFormDefines.ItemInfo>
19
+ },
20
+ inject: {
21
+ $xeForm: {
22
+ default: null
23
+ }
24
+ },
25
+ provide () {
26
+ const xeFormItemInfo = this
27
+ return {
28
+ xeFormItemInfo,
29
+ $xeFormGather: null
30
+ }
31
+ },
32
+ computed: {
33
+ ...({} as {
34
+ computeSize(): VxeComponentSizeType
35
+ $xeForm(): VxeFormConstructor & VxeFormPrivateMethods
36
+ })
37
+ },
38
+ methods: {
39
+ renderVN (h: CreateElement): VNode {
40
+ const $xeFormConfigItem = this
41
+ const props = $xeFormConfigItem
42
+ const $xeForm = $xeFormConfigItem.$xeForm
43
+
44
+ const formProps = $xeForm
45
+ const formReactData = $xeForm.reactData
46
+ const { data, rules, readonly, disabled, span: allSpan, align: allAlign, titleBold: allTitleBold, titleAlign: allTitleAlign, titleWidth: allTitleWidth, titleColon: allTitleColon, titleAsterisk: allTitleAsterisk, titleOverflow: allTitleOverflow, vertical: allVertical, padding: allPadding } = formProps
47
+ const item = props.itemConfig as VxeFormDefines.ItemInfo
48
+ const { collapseAll } = formReactData
49
+ const validOpts = $xeForm.computeValidOpts
50
+ const { slots, title, visible, folding, field, collapseNode, itemRender, showError, errRule, className, titleOverflow, vertical, padding, children, showTitle, contentClassName, contentStyle, titleClassName, titleStyle } = item
51
+ const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null
52
+ const itemClassName = compConf ? (compConf.formItemClassName || compConf.itemClassName) : ''
53
+ const itemStyle = compConf ? (compConf.formItemStyle || compConf.itemStyle) : null
54
+ const itemContentClassName = compConf ? (compConf.formItemContentClassName || compConf.itemContentClassName) : ''
55
+ const itemContentStyle = compConf ? (compConf.formItemContentStyle || compConf.itemContentStyle) : null
56
+ const itemTitleClassName = compConf ? (compConf.formItemTitleClassName || compConf.itemTitleClassName) : ''
57
+ const itemTitleStyle = compConf ? (compConf.formItemTitleStyle || compConf.itemTitleStyle) : null
58
+ const defaultSlot = slots ? slots.default : null
59
+ const titleSlot = slots ? slots.title : null
60
+ const span = item.span || allSpan
61
+ const align = item.align || allAlign
62
+ const itemPadding = XEUtils.eqNull(padding) ? allPadding : padding
63
+ const itemVertical = XEUtils.eqNull(vertical) ? allVertical : vertical
64
+ const titleBold = XEUtils.eqNull(item.titleBold) ? allTitleBold : item.titleBold
65
+ const titleAlign = XEUtils.eqNull(item.titleAlign) ? allTitleAlign : item.titleAlign
66
+ const titleWidth = itemVertical ? null : (XEUtils.eqNull(item.titleWidth) ? allTitleWidth : item.titleWidth)
67
+ const titleColon = XEUtils.eqNull(item.titleColon) ? allTitleColon : item.titleColon
68
+ const titleAsterisk = XEUtils.eqNull(item.titleAsterisk) ? allTitleAsterisk : item.titleAsterisk
69
+ const itemOverflow = XEUtils.eqNull(titleOverflow) ? allTitleOverflow : titleOverflow
70
+ const ovEllipsis = itemOverflow === 'ellipsis'
71
+ const ovTitle = itemOverflow === 'title'
72
+ const ovTooltip = itemOverflow === true || itemOverflow === 'tooltip'
73
+ const hasEllipsis = ovTitle || ovTooltip || ovEllipsis
74
+ const params = { data, disabled, readonly, field, property: field, item, $form: $xeForm, $grid: $xeForm.xegrid }
75
+ if (visible === false) {
76
+ return renderEmptyElement($xeFormConfigItem)
77
+ }
78
+ let isRequired = false
79
+ let isValid = false
80
+ if (!readonly && rules) {
81
+ const itemRules = rules[field]
82
+ if (itemRules && itemRules.length) {
83
+ isValid = true
84
+ isRequired = itemRules.some((rule) => rule.required)
85
+ }
86
+ }
87
+ // 如果为项集合
88
+ const isGather = children && children.length > 0
89
+ if (isGather) {
90
+ const childVNs = children.map((childItem, index) => {
91
+ return h(VxeFormConfigItem, {
92
+ key: index,
93
+ props: {
94
+ itemConfig: childItem
95
+ }
96
+ })
97
+ })
98
+ return childVNs.length
99
+ ? h('div', {
100
+ class: ['vxe-form--gather vxe-form--item-row', item.id, span ? `vxe-form--item-col_${span} is--span` : '', className ? (XEUtils.isFunction(className) ? className(params) : className) : '']
101
+ }, childVNs)
102
+ : renderEmptyElement($xeFormConfigItem)
103
+ }
104
+ let contentVNs: VxeComponentSlotType[] = []
105
+ const rftContent = compConf ? (compConf.renderFormItemContent || compConf.renderItemContent) : null
106
+ if (defaultSlot) {
107
+ contentVNs = $xeForm.callSlot(defaultSlot, params)
108
+ } else if (rftContent) {
109
+ contentVNs = getSlotVNs(rftContent(h, itemRender, params))
110
+ } else if (field) {
111
+ contentVNs = [XEUtils.toValueString(XEUtils.get(data, field))]
112
+ }
113
+ if (collapseNode) {
114
+ contentVNs.push(
115
+ h('div', {
116
+ class: 'vxe-form--item-trigger-node',
117
+ on: {
118
+ click: $xeForm.toggleCollapseEvent
119
+ }
120
+ }, [
121
+ h('span', {
122
+ class: 'vxe-form--item-trigger-text'
123
+ }, collapseAll ? getI18n('vxe.form.unfolding') : getI18n('vxe.form.folding')),
124
+ h('i', {
125
+ class: ['vxe-form--item-trigger-icon', collapseAll ? getIcon().FORM_FOLDING : getIcon().FORM_UNFOLDING]
126
+ })
127
+ ])
128
+ )
129
+ }
130
+ if (errRule && validOpts.showMessage) {
131
+ contentVNs.push(
132
+ h('div', {
133
+ class: 'vxe-form--item-valid',
134
+ style: errRule.maxWidth
135
+ ? {
136
+ width: `${errRule.maxWidth}px`
137
+ }
138
+ : {}
139
+ }, errRule.content)
140
+ )
141
+ }
142
+ const ons: any = ovTooltip
143
+ ? {
144
+ mouseenter (evnt: MouseEvent) {
145
+ $xeForm.triggerTitleTipEvent(evnt, params)
146
+ },
147
+ mouseleave: $xeForm.handleTitleTipLeaveEvent
148
+ }
149
+ : {}
150
+ return h('div', {
151
+ class: [
152
+ 'vxe-form--item',
153
+ item.id,
154
+ span ? `vxe-form--item-col_${span} is--span` : '',
155
+ className ? (XEUtils.isFunction(className) ? className(params) : className) : '',
156
+ itemClassName ? (XEUtils.isFunction(itemClassName) ? itemClassName(params) : itemClassName) : '',
157
+ {
158
+ 'is--title': title,
159
+ 'is--colon': titleColon,
160
+ 'is--bold': titleBold,
161
+ 'is--padding': itemPadding,
162
+ 'is--vertical': itemVertical,
163
+ 'is--asterisk': titleAsterisk,
164
+ 'is--valid': isValid,
165
+ 'is--required': isRequired,
166
+ 'is--hidden': folding && collapseAll,
167
+ 'is--active': isActiveItem($xeForm, item),
168
+ 'is--error': showError
169
+ }
170
+ ],
171
+ style: XEUtils.isFunction(itemStyle) ? itemStyle(params) : (itemStyle || {})
172
+ }, [
173
+ h('div', {
174
+ class: 'vxe-form--item-inner'
175
+ }, [
176
+ (showTitle !== false) && (title || titleSlot)
177
+ ? h('div', {
178
+ class: [
179
+ 'vxe-form--item-title',
180
+ titleAlign ? `align--${titleAlign}` : '',
181
+ hasEllipsis ? 'is--ellipsis' : '',
182
+ itemTitleClassName ? (XEUtils.isFunction(itemTitleClassName) ? itemTitleClassName(params) : itemTitleClassName) : '',
183
+ titleClassName ? (XEUtils.isFunction(titleClassName) ? titleClassName(params) : titleClassName) : ''
184
+ ],
185
+ style: Object.assign(
186
+ {},
187
+ XEUtils.isFunction(itemTitleStyle) ? itemTitleStyle(params) : itemTitleStyle,
188
+ XEUtils.isFunction(titleStyle) ? titleStyle(params) : titleStyle,
189
+ titleWidth
190
+ ? {
191
+ width: isNaN(titleWidth as number) ? titleWidth : `${titleWidth}px`
192
+ }
193
+ : null
194
+ ),
195
+ attrs: {
196
+ title: ovTitle ? getFuncText(title) : null
197
+ },
198
+ on: ons
199
+ }, renderTitle(h, $xeFormConfigItem as any, $xeForm, item))
200
+ : null,
201
+ h('div', {
202
+ class: [
203
+ 'vxe-form--item-content',
204
+ align ? `align--${align}` : '',
205
+ itemContentClassName ? (XEUtils.isFunction(itemContentClassName) ? itemContentClassName(params) : itemContentClassName) : '',
206
+ contentClassName ? (XEUtils.isFunction(contentClassName) ? contentClassName(params) : contentClassName) : ''
207
+ ],
208
+ style: Object.assign({}, XEUtils.isFunction(itemContentStyle) ? itemContentStyle(params) : itemContentStyle, XEUtils.isFunction(contentStyle) ? contentStyle(params) : contentStyle)
209
+ }, contentVNs)
210
+ ])
211
+ ])
212
+ }
213
+ },
214
+ render (this: any, h) {
215
+ return this.renderVN(h)
216
+ }
217
+ })
218
+
219
+ export default VxeFormConfigItem