vxe-pc-ui 4.1.19 → 4.1.21

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 (259) hide show
  1. package/README.md +83 -2
  2. package/es/anchor/src/anchor-link.js +1 -1
  3. package/es/anchor/src/anchor.js +1 -1
  4. package/es/breadcrumb/src/breadcrumb.js +1 -1
  5. package/es/button/src/button-group.js +4 -1
  6. package/es/button/src/button.js +2 -1
  7. package/es/calendar/src/calendar.js +64 -32
  8. package/es/card/src/card.js +4 -3
  9. package/es/carousel/src/carousel-item.js +13 -3
  10. package/es/carousel/src/carousel.js +16 -8
  11. package/es/checkbox/src/checkbox.js +30 -14
  12. package/es/checkbox/src/group.js +17 -8
  13. package/es/collapse-pane/index.js +1 -1
  14. package/es/countdown/src/countdown.js +17 -8
  15. package/es/date-picker/src/date-picker.js +148 -69
  16. package/es/drawer/src/drawer.js +86 -46
  17. package/es/form/render/index.js +1 -2
  18. package/es/form/src/form-config-item.js +4 -3
  19. package/es/form/src/form-gather.js +5 -3
  20. package/es/form/src/form-item.js +15 -10
  21. package/es/form/src/form.js +11 -8
  22. package/es/form/src/render.js +2 -1
  23. package/es/form/src/util.js +2 -1
  24. package/es/icon/src/icon.js +3 -0
  25. package/es/icon/style.css +1 -1
  26. package/es/icon-picker/src/icon-picker.js +24 -11
  27. package/es/image/src/group.js +4 -1
  28. package/es/image/src/preview.js +1 -1
  29. package/es/input/src/input.js +131 -66
  30. package/es/layout-aside/src/layout-aside.js +1 -1
  31. package/es/list/src/list.js +7 -5
  32. package/es/list-design/src/list-design.js +1 -1
  33. package/es/list-design/src/list-view.js +1 -1
  34. package/es/loading/src/loading.js +4 -1
  35. package/es/menu/src/menu.js +4 -3
  36. package/es/number-input/src/number-input.js +100 -77
  37. package/es/pager/src/pager.js +85 -45
  38. package/es/password-input/src/password-input.js +2 -2
  39. package/es/print/src/page-break.js +11 -2
  40. package/es/print/src/print.js +6 -4
  41. package/es/pulldown/src/pulldown.js +19 -13
  42. package/es/radio/src/button.js +2 -2
  43. package/es/radio/src/group.js +8 -4
  44. package/es/row/src/row.js +1 -1
  45. package/es/select/src/optgroup.js +19 -10
  46. package/es/select/src/option.js +17 -9
  47. package/es/select/src/select.js +64 -41
  48. package/es/select/src/util.js +2 -2
  49. package/es/style.css +1 -1
  50. package/es/style.min.css +1 -1
  51. package/es/tabs/src/tab-pane.js +13 -3
  52. package/es/tabs/src/tabs.js +57 -47
  53. package/es/textarea/src/textarea.js +28 -10
  54. package/es/tooltip/src/tooltip.js +107 -78
  55. package/es/tree/src/tree.js +6 -3
  56. package/es/tree-select/src/tree-select.js +18 -10
  57. package/es/ui/index.js +1 -7
  58. package/es/ui/src/log.js +1 -1
  59. package/es/upload/src/upload.js +5 -5
  60. package/lib/anchor/src/anchor-link.js +1 -1
  61. package/lib/anchor/src/anchor-link.min.js +1 -1
  62. package/lib/anchor/src/anchor.js +1 -1
  63. package/lib/anchor/src/anchor.min.js +1 -1
  64. package/lib/breadcrumb/src/breadcrumb.js +1 -1
  65. package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
  66. package/lib/button/src/button-group.js +4 -1
  67. package/lib/button/src/button-group.min.js +1 -1
  68. package/lib/button/src/button.js +2 -1
  69. package/lib/button/src/button.min.js +1 -1
  70. package/lib/calendar/src/calendar.js +42 -24
  71. package/lib/calendar/src/calendar.min.js +1 -1
  72. package/lib/card/src/card.js +6 -5
  73. package/lib/card/src/card.min.js +1 -1
  74. package/lib/carousel/src/carousel-item.js +16 -3
  75. package/lib/carousel/src/carousel-item.min.js +1 -1
  76. package/lib/carousel/src/carousel.js +18 -8
  77. package/lib/carousel/src/carousel.min.js +1 -1
  78. package/lib/checkbox/src/checkbox.js +16 -12
  79. package/lib/checkbox/src/checkbox.min.js +1 -1
  80. package/lib/checkbox/src/group.js +10 -7
  81. package/lib/checkbox/src/group.min.js +1 -1
  82. package/lib/collapse-pane/index.js +1 -1
  83. package/lib/collapse-pane/index.min.js +1 -1
  84. package/lib/countdown/src/countdown.js +15 -7
  85. package/lib/countdown/src/countdown.min.js +1 -1
  86. package/lib/date-picker/src/date-picker.js +124 -62
  87. package/lib/date-picker/src/date-picker.min.js +1 -1
  88. package/lib/drawer/src/drawer.js +15 -30
  89. package/lib/drawer/src/drawer.min.js +1 -1
  90. package/lib/form/render/index.js +1 -4
  91. package/lib/form/render/index.min.js +1 -1
  92. package/lib/form/src/form-config-item.js +4 -5
  93. package/lib/form/src/form-config-item.min.js +1 -1
  94. package/lib/form/src/form-gather.js +11 -9
  95. package/lib/form/src/form-gather.min.js +1 -1
  96. package/lib/form/src/form-item.js +11 -12
  97. package/lib/form/src/form-item.min.js +1 -1
  98. package/lib/form/src/form.js +7 -7
  99. package/lib/form/src/form.min.js +1 -1
  100. package/lib/form/src/render.js +2 -1
  101. package/lib/form/src/util.js +2 -1
  102. package/lib/icon/src/icon.js +3 -0
  103. package/lib/icon/src/icon.min.js +1 -1
  104. package/lib/icon/style/style.css +1 -1
  105. package/lib/icon/style/style.min.css +1 -1
  106. package/lib/icon-picker/src/icon-picker.js +22 -12
  107. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  108. package/lib/image/src/group.js +4 -1
  109. package/lib/image/src/group.min.js +1 -1
  110. package/lib/image/src/preview.js +1 -1
  111. package/lib/image/src/preview.min.js +1 -1
  112. package/lib/index.umd.js +884 -649
  113. package/lib/index.umd.min.js +1 -1
  114. package/lib/input/src/input.js +79 -51
  115. package/lib/input/src/input.min.js +1 -1
  116. package/lib/layout-aside/src/layout-aside.js +1 -1
  117. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  118. package/lib/list/src/list.js +9 -5
  119. package/lib/list/src/list.min.js +1 -1
  120. package/lib/list-design/src/list-design.js +1 -1
  121. package/lib/list-design/src/list-design.min.js +1 -1
  122. package/lib/list-design/src/list-view.js +1 -1
  123. package/lib/list-design/src/list-view.min.js +1 -1
  124. package/lib/loading/src/loading.js +4 -1
  125. package/lib/loading/src/loading.min.js +1 -1
  126. package/lib/menu/src/menu.js +4 -3
  127. package/lib/menu/src/menu.min.js +1 -1
  128. package/lib/number-input/src/number-input.js +67 -69
  129. package/lib/number-input/src/number-input.min.js +1 -1
  130. package/lib/pager/src/pager.js +40 -39
  131. package/lib/pager/src/pager.min.js +1 -1
  132. package/lib/password-input/src/password-input.js +2 -2
  133. package/lib/print/src/page-break.js +14 -2
  134. package/lib/print/src/page-break.min.js +1 -1
  135. package/lib/print/src/print.js +8 -6
  136. package/lib/print/src/print.min.js +1 -1
  137. package/lib/pulldown/src/pulldown.js +19 -13
  138. package/lib/pulldown/src/pulldown.min.js +1 -1
  139. package/lib/radio/src/button.js +2 -2
  140. package/lib/radio/src/group.js +8 -4
  141. package/lib/radio/src/group.min.js +1 -1
  142. package/lib/row/src/row.js +1 -1
  143. package/lib/row/src/row.min.js +1 -1
  144. package/lib/select/src/optgroup.js +12 -9
  145. package/lib/select/src/optgroup.min.js +1 -1
  146. package/lib/select/src/option.js +9 -7
  147. package/lib/select/src/option.min.js +1 -1
  148. package/lib/select/src/select.js +52 -41
  149. package/lib/select/src/select.min.js +1 -1
  150. package/lib/select/src/util.js +2 -2
  151. package/lib/select/src/util.min.js +1 -1
  152. package/lib/style.css +1 -1
  153. package/lib/style.min.css +1 -1
  154. package/lib/tabs/src/tab-pane.js +16 -3
  155. package/lib/tabs/src/tab-pane.min.js +1 -1
  156. package/lib/tabs/src/tabs.js +62 -50
  157. package/lib/tabs/src/tabs.min.js +1 -1
  158. package/lib/textarea/src/textarea.js +4 -4
  159. package/lib/tooltip/src/tooltip.js +96 -88
  160. package/lib/tooltip/src/tooltip.min.js +1 -1
  161. package/lib/tree/src/tree.js +2 -2
  162. package/lib/tree/src/tree.min.js +1 -1
  163. package/lib/tree-select/src/tree-select.js +13 -8
  164. package/lib/tree-select/src/tree-select.min.js +1 -1
  165. package/lib/ui/index.js +3 -10
  166. package/lib/ui/index.min.js +1 -1
  167. package/lib/ui/src/log.js +1 -1
  168. package/lib/ui/src/log.min.js +1 -1
  169. package/lib/upload/src/upload.js +5 -5
  170. package/lib/upload/src/upload.min.js +1 -1
  171. package/package.json +2 -2
  172. package/packages/anchor/src/anchor-link.ts +2 -2
  173. package/packages/anchor/src/anchor.ts +2 -2
  174. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  175. package/packages/button/src/button-group.ts +4 -1
  176. package/packages/button/src/button.ts +6 -5
  177. package/packages/calendar/src/calendar.ts +67 -35
  178. package/packages/card/src/card.ts +6 -4
  179. package/packages/carousel/src/carousel-item.ts +19 -4
  180. package/packages/carousel/src/carousel.ts +19 -11
  181. package/packages/checkbox/src/checkbox.ts +34 -15
  182. package/packages/checkbox/src/group.ts +22 -10
  183. package/packages/collapse-pane/index.ts +1 -1
  184. package/packages/countdown/src/countdown.ts +20 -11
  185. package/packages/date-picker/src/date-picker.ts +160 -80
  186. package/packages/drawer/src/drawer.ts +91 -50
  187. package/packages/form/render/index.ts +1 -3
  188. package/packages/form/src/form-config-item.ts +4 -3
  189. package/packages/form/src/form-gather.ts +5 -3
  190. package/packages/form/src/form-item.ts +15 -10
  191. package/packages/form/src/form.ts +12 -10
  192. package/packages/form/src/render.ts +2 -1
  193. package/packages/form/src/util.ts +2 -1
  194. package/packages/icon/src/icon.ts +3 -0
  195. package/packages/icon-picker/src/icon-picker.ts +31 -17
  196. package/packages/image/src/group.ts +4 -1
  197. package/packages/image/src/preview.ts +2 -2
  198. package/packages/input/src/input.ts +138 -75
  199. package/packages/layout-aside/src/layout-aside.ts +2 -2
  200. package/packages/list/src/list.ts +12 -11
  201. package/packages/list-design/src/list-design.ts +2 -2
  202. package/packages/list-design/src/list-view.ts +2 -2
  203. package/packages/loading/src/loading.ts +5 -2
  204. package/packages/menu/src/menu.ts +5 -4
  205. package/packages/number-input/src/number-input.ts +102 -79
  206. package/packages/pager/src/pager.ts +91 -50
  207. package/packages/password-input/src/password-input.ts +2 -2
  208. package/packages/print/src/page-break.ts +18 -4
  209. package/packages/print/src/print.ts +10 -5
  210. package/packages/pulldown/src/pulldown.ts +28 -22
  211. package/packages/radio/src/button.ts +2 -2
  212. package/packages/radio/src/group.ts +9 -5
  213. package/packages/row/src/row.ts +2 -2
  214. package/packages/select/src/optgroup.ts +22 -13
  215. package/packages/select/src/option.ts +18 -10
  216. package/packages/select/src/select.ts +79 -52
  217. package/packages/select/src/util.ts +3 -3
  218. package/packages/tabs/src/tab-pane.ts +20 -5
  219. package/packages/tabs/src/tabs.ts +59 -49
  220. package/packages/textarea/src/textarea.ts +28 -10
  221. package/packages/tooltip/src/tooltip.ts +118 -84
  222. package/packages/tree/src/tree.ts +7 -4
  223. package/packages/tree-select/src/tree-select.ts +25 -16
  224. package/packages/ui/index.ts +0 -7
  225. package/packages/upload/src/upload.ts +6 -6
  226. package/types/components/calendar.d.ts +6 -0
  227. package/types/components/carousel.d.ts +5 -0
  228. package/types/components/countdown.d.ts +4 -0
  229. package/types/components/date-picker.d.ts +23 -5
  230. package/types/components/drawer.d.ts +0 -1
  231. package/types/components/form.d.ts +4 -2
  232. package/types/components/icon-picker.d.ts +4 -0
  233. package/types/components/input.d.ts +9 -1
  234. package/types/components/list.d.ts +1 -0
  235. package/types/components/number-input.d.ts +6 -2
  236. package/types/components/optgroup.d.ts +10 -4
  237. package/types/components/pulldown.d.ts +5 -1
  238. package/types/components/select.d.ts +4 -0
  239. package/types/components/tabs.d.ts +4 -0
  240. package/types/components/toolbar.d.ts +5 -0
  241. package/types/components/tooltip.d.ts +4 -0
  242. package/types/components/tree-select.d.ts +4 -0
  243. package/types/ui/index.d.ts +0 -22
  244. /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  245. /package/es/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  246. /package/es/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  247. /package/es/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  248. /package/es/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  249. /package/es/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  250. /package/es/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  251. /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  252. /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
  253. /package/lib/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  254. /package/lib/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  255. /package/lib/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  256. /package/lib/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  257. /package/lib/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  258. /package/lib/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  259. /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
@@ -7,16 +7,25 @@ import { toStringTimeDate, getDateQuarter } from '../../date-picker/src/util'
7
7
  import { handleNumber, toFloatValueFixed } from '../../number-input/src/util'
8
8
  import { getSlotVNs } from '../..//ui/src/vn'
9
9
 
10
- import type { VxeInputConstructor, VxeInputEmits, InputReactData, InputMethods, VxeInputPropTypes, InputPrivateRef, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, VxeTableConstructor, VxeTablePrivateMethods, VxeModalConstructor, VxeModalMethods, VxeDatePickerDefines } from '../../../types'
10
+ import type { VxeInputConstructor, VxeInputEmits, InputReactData, InputMethods, ValueOf, InputInternalData, VxeInputPropTypes, InputPrivateRef, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, VxeTableConstructor, VxeTablePrivateMethods, VxeDrawerConstructor, VxeDrawerMethods, VxeModalConstructor, VxeModalMethods, VxeDatePickerDefines } from '../../../types'
11
11
 
12
12
  export default defineComponent({
13
13
  name: 'VxeInput',
14
14
  props: {
15
15
  modelValue: [String, Number, Date] as PropType<VxeInputPropTypes.ModelValue>,
16
- immediate: { type: Boolean as PropType<VxeInputPropTypes.Immediate>, default: true },
16
+ immediate: {
17
+ type: Boolean as PropType<VxeInputPropTypes.Immediate>,
18
+ default: true
19
+ },
17
20
  name: String as PropType<VxeInputPropTypes.Name>,
18
- type: { type: String as PropType<VxeInputPropTypes.Type>, default: 'text' },
19
- clearable: { type: Boolean as PropType<VxeInputPropTypes.Clearable>, default: () => getConfig().input.clearable },
21
+ type: {
22
+ type: String as PropType<VxeInputPropTypes.Type>,
23
+ default: 'text'
24
+ },
25
+ clearable: {
26
+ type: Boolean as PropType<VxeInputPropTypes.Clearable>,
27
+ default: () => getConfig().input.clearable
28
+ },
20
29
  readonly: {
21
30
  type: Boolean as PropType<VxeInputPropTypes.Readonly>,
22
31
  default: null
@@ -27,11 +36,17 @@ export default defineComponent({
27
36
  },
28
37
  placeholder: String as PropType<VxeInputPropTypes.Placeholder>,
29
38
  maxLength: [String, Number] as PropType<VxeInputPropTypes.MaxLength>,
30
- autoComplete: { type: String as PropType<VxeInputPropTypes.AutoComplete>, default: 'off' },
39
+ autoComplete: {
40
+ type: String as PropType<VxeInputPropTypes.AutoComplete>,
41
+ default: 'off'
42
+ },
31
43
  align: String as PropType<VxeInputPropTypes.Align>,
32
44
  form: String as PropType<VxeInputPropTypes.Form>,
33
45
  className: String as PropType<VxeInputPropTypes.ClassName>,
34
- size: { type: String as PropType<VxeInputPropTypes.Size>, default: () => getConfig().input.size || getConfig().size },
46
+ size: {
47
+ type: String as PropType<VxeInputPropTypes.Size>,
48
+ default: () => getConfig().input.size || getConfig().size
49
+ },
35
50
  multiple: Boolean as PropType<VxeInputPropTypes.Multiple>,
36
51
 
37
52
  // text
@@ -39,33 +54,69 @@ export default defineComponent({
39
54
  countMethod: Function as PropType<VxeInputPropTypes.CountMethod>,
40
55
 
41
56
  // number、integer、float
42
- min: { type: [String, Number] as PropType<VxeInputPropTypes.Min>, default: null },
43
- max: { type: [String, Number] as PropType<VxeInputPropTypes.Max>, default: null },
57
+ min: {
58
+ type: [String, Number] as PropType<VxeInputPropTypes.Min>,
59
+ default: null
60
+ },
61
+ max: {
62
+ type: [String, Number] as PropType<VxeInputPropTypes.Max>,
63
+ default: null
64
+ },
44
65
  step: [String, Number] as PropType<VxeInputPropTypes.Step>,
45
- exponential: { type: Boolean as PropType<VxeInputPropTypes.Exponential>, default: () => getConfig().input.exponential },
66
+ exponential: {
67
+ type: Boolean as PropType<VxeInputPropTypes.Exponential>,
68
+ default: () => getConfig().input.exponential
69
+ },
46
70
 
47
71
  // number、integer、float、password
48
- controls: { type: Boolean as PropType<VxeInputPropTypes.Controls>, default: () => getConfig().input.controls },
72
+ controls: {
73
+ type: Boolean as PropType<VxeInputPropTypes.Controls>,
74
+ default: () => getConfig().input.controls
75
+ },
49
76
 
50
77
  // float
51
- digits: { type: [String, Number] as PropType<VxeInputPropTypes.Digits>, default: () => getConfig().input.digits },
78
+ digits: {
79
+ type: [String, Number] as PropType<VxeInputPropTypes.Digits>,
80
+ default: () => getConfig().input.digits
81
+ },
52
82
 
53
83
  // date、week、month、quarter、year
54
- startDate: { type: [String, Number, Date] as PropType<VxeInputPropTypes.MinDate>, default: () => getConfig().input.startDate },
55
- endDate: { type: [String, Number, Date] as PropType<VxeInputPropTypes.MaxDate>, default: () => getConfig().input.endDate },
84
+ startDate: {
85
+ type: [String, Number, Date] as PropType<VxeInputPropTypes.MinDate>,
86
+ default: () => getConfig().input.startDate
87
+ },
88
+ endDate: {
89
+ type: [String, Number, Date] as PropType<VxeInputPropTypes.MaxDate>,
90
+ default: () => getConfig().input.endDate
91
+ },
56
92
  minDate: [String, Number, Date] as PropType<VxeInputPropTypes.MinDate>,
57
93
  maxDate: [String, Number, Date] as PropType<VxeInputPropTypes.MaxDate>,
58
94
  // 已废弃 startWeek,被 startDay 替换
59
95
  startWeek: Number as PropType<VxeInputPropTypes.StartDay>,
60
- startDay: { type: [String, Number] as PropType<VxeInputPropTypes.StartDay>, default: () => getConfig().input.startDay },
96
+ startDay: {
97
+ type: [String, Number] as PropType<VxeInputPropTypes.StartDay>,
98
+ default: () => getConfig().input.startDay
99
+ },
61
100
  labelFormat: String as PropType<VxeInputPropTypes.LabelFormat>,
62
101
  valueFormat: String as PropType<VxeInputPropTypes.ValueFormat>,
63
- editable: { type: Boolean as PropType<VxeInputPropTypes.Editable>, default: true },
64
- festivalMethod: { type: Function as PropType<VxeInputPropTypes.FestivalMethod>, default: () => getConfig().input.festivalMethod },
65
- disabledMethod: { type: Function as PropType<VxeInputPropTypes.DisabledMethod>, default: () => getConfig().input.disabledMethod },
102
+ editable: {
103
+ type: Boolean as PropType<VxeInputPropTypes.Editable>,
104
+ default: true
105
+ },
106
+ festivalMethod: {
107
+ type: Function as PropType<VxeInputPropTypes.FestivalMethod>,
108
+ default: () => getConfig().input.festivalMethod
109
+ },
110
+ disabledMethod: {
111
+ type: Function as PropType<VxeInputPropTypes.DisabledMethod>,
112
+ default: () => getConfig().input.disabledMethod
113
+ },
66
114
 
67
115
  // week
68
- selectDay: { type: [String, Number] as PropType<VxeInputPropTypes.SelectDay>, default: () => getConfig().input.selectDay },
116
+ selectDay: {
117
+ type: [String, Number] as PropType<VxeInputPropTypes.SelectDay>,
118
+ default: () => getConfig().input.selectDay
119
+ },
69
120
 
70
121
  prefixIcon: String as PropType<VxeInputPropTypes.PrefixIcon>,
71
122
  suffixIcon: String as PropType<VxeInputPropTypes.SuffixIcon>,
@@ -104,26 +155,23 @@ export default defineComponent({
104
155
  setup (props, context) {
105
156
  const { slots, emit } = context
106
157
 
107
- const $xeModal = inject<VxeModalConstructor & VxeModalMethods | null>('$xeModal', null)
108
- const $xeTable = inject<VxeTableConstructor & VxeTablePrivateMethods | null>('$xeTable', null)
109
- const $xeForm = inject<VxeFormConstructor & VxeFormPrivateMethods | null>('$xeForm', null)
158
+ const $xeModal = inject<(VxeModalConstructor & VxeModalMethods) | null>('$xeModal', null)
159
+ const $xeDrawer = inject<(VxeDrawerConstructor & VxeDrawerMethods) | null>('$xeDrawer', null)
160
+ const $xeTable = inject<(VxeTableConstructor & VxeTablePrivateMethods) | null>('$xeTable', null)
161
+ const $xeForm = inject<(VxeFormConstructor & VxeFormPrivateMethods)| null>('$xeForm', null)
110
162
  const formItemInfo = inject<VxeFormDefines.ProvideItemInfo | null>('xeFormItemInfo', null)
111
163
 
112
164
  const xID = XEUtils.uniqueId()
113
165
 
114
166
  const { computeSize } = useSize(props)
115
167
 
116
- const yearSize = 12
117
- const monthSize = 20
118
- const quarterSize = 8
119
-
120
168
  const reactData = reactive<InputReactData>({
121
169
  initialized: false,
122
170
  panelIndex: 0,
123
171
  showPwd: false,
124
172
  visiblePanel: false,
125
173
  isAniVisible: false,
126
- panelStyle: null,
174
+ panelStyle: {},
127
175
  panelPlacement: '',
128
176
  isActivated: false,
129
177
  inputValue: props.modelValue,
@@ -135,6 +183,14 @@ export default defineComponent({
135
183
  currentDate: null
136
184
  })
137
185
 
186
+ const internalData: InputInternalData = {
187
+ yearSize: 12,
188
+ monthSize: 20,
189
+ quarterSize: 8,
190
+ hpTimeout: undefined,
191
+ dnTimeout: undefined
192
+ }
193
+
138
194
  const refElem = ref() as Ref<HTMLDivElement>
139
195
  const refInputTarget = ref() as Ref<HTMLInputElement>
140
196
  const refInputPanel = ref() as Ref<HTMLDivElement>
@@ -151,6 +207,7 @@ export default defineComponent({
151
207
  props,
152
208
  context,
153
209
  reactData,
210
+ internalData,
154
211
  getRefMaps: () => refMaps
155
212
  } as unknown as VxeInputConstructor
156
213
 
@@ -171,7 +228,7 @@ export default defineComponent({
171
228
  if (XEUtils.isBoolean(globalTransfer)) {
172
229
  return globalTransfer
173
230
  }
174
- if ($xeTable || $xeModal || $xeForm) {
231
+ if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
175
232
  return true
176
233
  }
177
234
  }
@@ -372,11 +429,12 @@ export default defineComponent({
372
429
  if (isDatePickerType) {
373
430
  return labelFormat || dateValueFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`)
374
431
  }
375
- return null
432
+ return ''
376
433
  })
377
434
 
378
435
  const computeYearList = computed(() => {
379
436
  const { selectMonth, currentDate } = reactData
437
+ const { yearSize } = internalData
380
438
  const years: VxeDatePickerDefines.DateYearItem[] = []
381
439
  if (selectMonth && currentDate) {
382
440
  const currFullYear = currentDate.getFullYear()
@@ -474,6 +532,7 @@ export default defineComponent({
474
532
 
475
533
  const computeQuarterList = computed(() => {
476
534
  const { selectMonth, currentDate } = reactData
535
+ const { quarterSize } = internalData
477
536
  const quarters: VxeDatePickerDefines.DateQuarterItem[] = []
478
537
  if (selectMonth && currentDate) {
479
538
  const currFullYear = currentDate.getFullYear()
@@ -505,6 +564,7 @@ export default defineComponent({
505
564
 
506
565
  const computeMonthList = computed(() => {
507
566
  const { selectMonth, currentDate } = reactData
567
+ const { monthSize } = internalData
508
568
  const months: VxeDatePickerDefines.DateMonthItem[] = []
509
569
  if (selectMonth && currentDate) {
510
570
  const currFullYear = currentDate.getFullYear()
@@ -662,13 +722,6 @@ export default defineComponent({
662
722
  return getI18n('vxe.base.pleaseInput')
663
723
  })
664
724
 
665
- const computeInpMaxlength = computed(() => {
666
- const isNumType = computeIsNumType.value
667
- const inpMaxLength = computeInpMaxLength.value
668
- // 数值最大长度限制 16 位,包含小数
669
- return isNumType && !XEUtils.toNumber(inpMaxLength) ? 16 : inpMaxLength
670
- })
671
-
672
725
  const computeInpImmediate = computed(() => {
673
726
  const { type, immediate } = props
674
727
  return immediate || !(type === 'text' || type === 'number' || type === 'integer' || type === 'float')
@@ -710,13 +763,13 @@ export default defineComponent({
710
763
 
711
764
  const getNumberValue = (val: any) => {
712
765
  const { type, exponential } = props
713
- const inpMaxlength = computeInpMaxlength.value
766
+ const inpMaxLength = computeInpMaxLength.value
714
767
  const digitsValue = computeDigitsValue.value
715
768
  const restVal = (type === 'float' ? toFloatValueFixed(val, digitsValue) : XEUtils.toValueString(val))
716
769
  if (exponential && (val === restVal || XEUtils.toValueString(val).toLowerCase() === XEUtils.toNumber(restVal).toExponential())) {
717
770
  return val
718
771
  }
719
- return restVal.slice(0, inpMaxlength)
772
+ return restVal.slice(0, inpMaxLength)
720
773
  }
721
774
 
722
775
  const triggerEvent = (evnt: Event & { type: 'input' | 'change' | 'keydown' | 'keyup' | 'wheel' | 'click' | 'focus' | 'blur' }) => {
@@ -724,7 +777,7 @@ export default defineComponent({
724
777
  inputMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt)
725
778
  }
726
779
 
727
- const emitModel = (value: string, evnt: Event | { type: string }) => {
780
+ const handleChange = (value: string, evnt: Event | { type: string }) => {
728
781
  reactData.inputValue = value
729
782
  emit('update:modelValue', value)
730
783
  inputMethods.dispatchEvent('input', { value }, evnt as any)
@@ -743,7 +796,7 @@ export default defineComponent({
743
796
  reactData.inputValue = value
744
797
  if (!isDatePickerType) {
745
798
  if (inpImmediate) {
746
- emitModel(value, evnt)
799
+ handleChange(value, evnt)
747
800
  } else {
748
801
  inputMethods.dispatchEvent('input', { value }, evnt)
749
802
  }
@@ -780,12 +833,10 @@ export default defineComponent({
780
833
  }
781
834
  }
782
835
 
783
- let hidePanelTimeout: number
784
-
785
836
  const hidePanel = (): Promise<void> => {
786
837
  return new Promise(resolve => {
787
838
  reactData.visiblePanel = false
788
- hidePanelTimeout = window.setTimeout(() => {
839
+ internalData.hpTimeout = window.setTimeout(() => {
789
840
  reactData.isAniVisible = false
790
841
  resolve()
791
842
  }, 350)
@@ -802,7 +853,7 @@ export default defineComponent({
802
853
  if (isNumType || ['text', 'search', 'password'].indexOf(type) > -1) {
803
854
  focus()
804
855
  }
805
- emitModel('', evnt)
856
+ handleChange('', evnt)
806
857
  inputMethods.dispatchEvent('clear', { value }, evnt)
807
858
  }
808
859
 
@@ -872,7 +923,7 @@ export default defineComponent({
872
923
  if (inputValue) {
873
924
  const validValue = toFloatValueFixed(inputValue, digitsValue)
874
925
  if (inputValue !== validValue) {
875
- emitModel(validValue, { type: 'init' })
926
+ handleChange(validValue, { type: 'init' })
876
927
  }
877
928
  }
878
929
  }
@@ -934,19 +985,19 @@ export default defineComponent({
934
985
  datetimeRest.push(item)
935
986
  }
936
987
  })
937
- emitModel(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
988
+ handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
938
989
  } else {
939
990
  // 如果是日期类型
940
991
  if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
941
- emitModel(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' })
992
+ handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' })
942
993
  } else {
943
- emitModel(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' })
994
+ handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' })
944
995
  }
945
996
  }
946
997
  } else {
947
998
  // 如果为单选
948
999
  if (!XEUtils.isEqual(modelValue, inpVal)) {
949
- emitModel(inpVal, { type: 'update' })
1000
+ handleChange(inpVal, { type: 'update' })
950
1001
  }
951
1002
  }
952
1003
  }
@@ -973,7 +1024,7 @@ export default defineComponent({
973
1024
  inpNumVal = inpStringVal
974
1025
  }
975
1026
  }
976
- emitModel(getNumberValue(inpNumVal), { type: 'check' })
1027
+ handleChange(getNumberValue(inpNumVal), { type: 'check' })
977
1028
  }
978
1029
  } else if (isDatePickerType) {
979
1030
  if (inputValue) {
@@ -982,7 +1033,7 @@ export default defineComponent({
982
1033
  if (type === 'time') {
983
1034
  inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat)
984
1035
  if (inputValue !== inpDateVal) {
985
- emitModel(inpDateVal, { type: 'check' })
1036
+ handleChange(inpDateVal, { type: 'check' })
986
1037
  }
987
1038
  reactData.inputValue = inpDateVal
988
1039
  } else {
@@ -1008,7 +1059,7 @@ export default defineComponent({
1008
1059
  dateRevert()
1009
1060
  }
1010
1061
  } else {
1011
- emitModel('', { type: 'check' })
1062
+ handleChange('', { type: 'check' })
1012
1063
  }
1013
1064
  }
1014
1065
  }
@@ -1018,7 +1069,7 @@ export default defineComponent({
1018
1069
  const { inputValue } = reactData
1019
1070
  const inpImmediate = computeInpImmediate.value
1020
1071
  if (!inpImmediate) {
1021
- emitModel(inputValue, evnt)
1072
+ handleChange(inputValue, evnt)
1022
1073
  }
1023
1074
  afterCheckValue()
1024
1075
  if (!reactData.visiblePanel) {
@@ -1063,13 +1114,11 @@ export default defineComponent({
1063
1114
  emitInputEvent(getNumberValue(restNum), evnt as (Event & { type: 'input' }))
1064
1115
  }
1065
1116
 
1066
- let downbumTimeout: number
1067
-
1068
1117
  const numberNextEvent = (evnt: Event) => {
1069
1118
  const isDisabled = computeIsDisabled.value
1070
1119
  const isReadonly = computeIsReadonly.value
1071
1120
  const isDisabledSubtractNumber = computeIsDisabledSubtractNumber.value
1072
- clearTimeout(downbumTimeout)
1121
+ numberStopDown()
1073
1122
  if (!isDisabled && !isReadonly && !isDisabledSubtractNumber) {
1074
1123
  numberChange(false, evnt)
1075
1124
  }
@@ -1077,7 +1126,7 @@ export default defineComponent({
1077
1126
  }
1078
1127
 
1079
1128
  const numberDownNextEvent = (evnt: Event) => {
1080
- downbumTimeout = window.setTimeout(() => {
1129
+ internalData.dnTimeout = window.setTimeout(() => {
1081
1130
  numberNextEvent(evnt)
1082
1131
  numberDownNextEvent(evnt)
1083
1132
  }, 60)
@@ -1087,7 +1136,7 @@ export default defineComponent({
1087
1136
  const isDisabled = computeIsDisabled.value
1088
1137
  const isReadonly = computeIsReadonly.value
1089
1138
  const isDisabledAddNumber = computeIsDisabledAddNumber.value
1090
- clearTimeout(downbumTimeout)
1139
+ numberStopDown()
1091
1140
  if (!isDisabled && !isReadonly && !isDisabledAddNumber) {
1092
1141
  numberChange(true, evnt)
1093
1142
  }
@@ -1139,11 +1188,15 @@ export default defineComponent({
1139
1188
  // 数值
1140
1189
 
1141
1190
  const numberStopDown = () => {
1142
- clearTimeout(downbumTimeout)
1191
+ const { dnTimeout } = internalData
1192
+ if (dnTimeout) {
1193
+ clearTimeout(dnTimeout)
1194
+ internalData.dnTimeout = undefined
1195
+ }
1143
1196
  }
1144
1197
 
1145
1198
  const numberDownPrevEvent = (evnt: Event) => {
1146
- downbumTimeout = window.setTimeout(() => {
1199
+ internalData.dnTimeout = window.setTimeout(() => {
1147
1200
  numberPrevEvent(evnt)
1148
1201
  numberDownPrevEvent(evnt)
1149
1202
  }, 60)
@@ -1158,7 +1211,7 @@ export default defineComponent({
1158
1211
  } else {
1159
1212
  numberNextEvent(evnt)
1160
1213
  }
1161
- downbumTimeout = window.setTimeout(() => {
1214
+ internalData.dnTimeout = window.setTimeout(() => {
1162
1215
  if (isPrevNumber) {
1163
1216
  numberDownPrevEvent(evnt)
1164
1217
  } else {
@@ -1211,6 +1264,7 @@ export default defineComponent({
1211
1264
  const datePrevEvent = (evnt: Event) => {
1212
1265
  const { type } = props
1213
1266
  const { datePanelType, selectMonth } = reactData
1267
+ const { yearSize } = internalData
1214
1268
  const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value
1215
1269
  if (!isDisabledPrevDateBtn) {
1216
1270
  if (type === 'year') {
@@ -1246,6 +1300,7 @@ export default defineComponent({
1246
1300
  const dateNextEvent = (evnt: Event) => {
1247
1301
  const { type } = props
1248
1302
  const { datePanelType, selectMonth } = reactData
1303
+ const { yearSize } = internalData
1249
1304
  const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value
1250
1305
  if (!isDisabledNextDateBtn) {
1251
1306
  if (type === 'year') {
@@ -1424,10 +1479,10 @@ export default defineComponent({
1424
1479
  datetimeRest.push(item)
1425
1480
  }
1426
1481
  })
1427
- emitModel(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
1482
+ handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
1428
1483
  } else {
1429
1484
  // 如果是日期类型
1430
- emitModel(dateMultipleValue.join(','), { type: 'update' })
1485
+ handleChange(dateMultipleValue.join(','), { type: 'update' })
1431
1486
  }
1432
1487
  } else {
1433
1488
  dateChange(dateValue || reactData.currentDate)
@@ -1540,7 +1595,9 @@ export default defineComponent({
1540
1595
  reactData.datetimePanelValue = reactData.datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first')
1541
1596
  nextTick(() => {
1542
1597
  const timeBodyElem = refInputTimeBody.value
1543
- XEUtils.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'), updateTimePos)
1598
+ XEUtils.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'), (elem) => {
1599
+ updateTimePos(elem)
1600
+ })
1544
1601
  })
1545
1602
  }
1546
1603
  }
@@ -1629,13 +1686,17 @@ export default defineComponent({
1629
1686
 
1630
1687
  const showPanel = () => {
1631
1688
  const { visiblePanel } = reactData
1689
+ const { hpTimeout } = internalData
1632
1690
  const isDisabled = computeIsDisabled.value
1633
1691
  const isDatePickerType = computeIsDatePickerType.value
1634
1692
  if (!isDisabled && !visiblePanel) {
1635
1693
  if (!reactData.initialized) {
1636
1694
  reactData.initialized = true
1637
1695
  }
1638
- clearTimeout(hidePanelTimeout)
1696
+ if (hpTimeout) {
1697
+ clearTimeout(hpTimeout)
1698
+ internalData.hpTimeout = undefined
1699
+ }
1639
1700
  reactData.isActivated = true
1640
1701
  reactData.isAniVisible = true
1641
1702
  if (isDatePickerType) {
@@ -1792,13 +1853,13 @@ export default defineComponent({
1792
1853
  }]
1793
1854
  }, extraItem && extraItem.label
1794
1855
  ? [
1795
- h('span', label),
1856
+ h('span', `${label || ''}`),
1796
1857
  h('span', {
1797
1858
  class: ['vxe-input--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
1798
1859
  style: extraItem.style
1799
1860
  }, XEUtils.toValueString(extraItem.label))
1800
1861
  ]
1801
- : label)
1862
+ : [`${label || ''}`])
1802
1863
  ]
1803
1864
  const festivalLabel = festivalItem.label
1804
1865
  if (festivalLabel) {
@@ -1821,7 +1882,7 @@ export default defineComponent({
1821
1882
  }
1822
1883
  return labels
1823
1884
  }
1824
- return label
1885
+ return [`${label || ''}`]
1825
1886
  }
1826
1887
 
1827
1888
  const renderDateDayTable = () => {
@@ -2392,10 +2453,12 @@ export default defineComponent({
2392
2453
  return createCommentVNode()
2393
2454
  }
2394
2455
 
2456
+ const dispatchEvent = (type: ValueOf<VxeInputEmits>, params: Record<string, any>, evnt: Event | null) => {
2457
+ emit(type, createEvent(evnt, { $input: $xeInput }, params))
2458
+ }
2459
+
2395
2460
  inputMethods = {
2396
- dispatchEvent (type, params, evnt) {
2397
- emit(type, createEvent(evnt, { $input: $xeInput }, params))
2398
- },
2461
+ dispatchEvent,
2399
2462
 
2400
2463
  focus () {
2401
2464
  const inputElem = refInputTarget.value
@@ -2437,7 +2500,7 @@ export default defineComponent({
2437
2500
  const isCountError = computeIsCountError.value
2438
2501
  const inputCount = computeInputCount.value
2439
2502
  const inputReadonly = computeInputReadonly.value
2440
- const inpMaxlength = computeInpMaxlength.value
2503
+ const inpMaxLength = computeInpMaxLength.value
2441
2504
  const inputType = computeInputType.value
2442
2505
  const inpPlaceholder = computeInpPlaceholder.value
2443
2506
  const isClearable = computeIsClearable.value
@@ -2471,7 +2534,7 @@ export default defineComponent({
2471
2534
  name,
2472
2535
  type: inputType,
2473
2536
  placeholder: inpPlaceholder,
2474
- maxlength: inpMaxlength,
2537
+ maxlength: inpMaxLength,
2475
2538
  readonly: inputReadonly,
2476
2539
  disabled: isDisabled,
2477
2540
  autocomplete: autoComplete || autocomplete,
@@ -2494,13 +2557,11 @@ export default defineComponent({
2494
2557
  class: ['vxe-input--count', {
2495
2558
  'is--error': isCountError
2496
2559
  }]
2497
- }, countMethod ? `${countMethod({ value: inputValue })}` : `${inputCount}${inpMaxlength ? `/${inpMaxlength}` : ''}`)
2560
+ }, countMethod ? `${countMethod({ value: inputValue })}` : `${inputCount}${inpMaxLength ? `/${inpMaxLength}` : ''}`)
2498
2561
  : createCommentVNode()
2499
2562
  ])
2500
2563
  }
2501
2564
 
2502
- $xeInput.renderVN = renderVN
2503
-
2504
2565
  watch(() => props.modelValue, (val) => {
2505
2566
  reactData.inputValue = val
2506
2567
  changeValue()
@@ -2546,6 +2607,8 @@ export default defineComponent({
2546
2607
 
2547
2608
  initValue()
2548
2609
 
2610
+ $xeInput.renderVN = renderVN
2611
+
2549
2612
  return $xeInput
2550
2613
  },
2551
2614
  render () {
@@ -110,10 +110,10 @@ export default defineComponent({
110
110
  ])
111
111
  }
112
112
 
113
- $xeLayoutAside.renderVN = renderVN
114
-
115
113
  provide('$xeLayoutAside', $xeLayoutAside)
116
114
 
115
+ $xeLayoutAside.renderVN = renderVN
116
+
117
117
  return $xeLayoutAside
118
118
  },
119
119
  render () {
@@ -29,19 +29,16 @@ export default defineComponent({
29
29
 
30
30
  const { computeSize } = useSize(props)
31
31
 
32
- const reactData = reactive({
32
+ const reactData = reactive<ListReactData>({
33
33
  scrollYLoad: false,
34
34
  bodyHeight: 0,
35
35
  rowHeight: 0,
36
36
  topSpaceHeight: 0,
37
37
  items: []
38
- } as ListReactData)
39
-
40
- const refElem = ref() as Ref<HTMLDivElement>
41
- const refVirtualWrapper = ref() as Ref<HTMLDivElement>
42
- const refVirtualBody = ref() as Ref<HTMLDivElement>
38
+ })
43
39
 
44
40
  const internalData: ListInternalData = {
41
+ resizeObserver: undefined,
45
42
  fullData: [],
46
43
  lastScrollLeft: 0,
47
44
  lastScrollTop: 0,
@@ -54,6 +51,10 @@ export default defineComponent({
54
51
  }
55
52
  }
56
53
 
54
+ const refElem = ref() as Ref<HTMLDivElement>
55
+ const refVirtualWrapper = ref() as Ref<HTMLDivElement>
56
+ const refVirtualBody = ref() as Ref<HTMLDivElement>
57
+
57
58
  const refMaps: ListPrivateRef = {
58
59
  refElem
59
60
  }
@@ -157,7 +158,7 @@ export default defineComponent({
157
158
  * @param {Number} scrollLeft 左距离
158
159
  * @param {Number} scrollTop 上距离
159
160
  */
160
- const scrollTo = (scrollLeft: number | null, scrollTop?: number | null): Promise<void> => {
161
+ const scrollTo = (scrollLeft: number | null, scrollTop?: number | null) => {
161
162
  const scrollBodyElem = refVirtualWrapper.value
162
163
  if (XEUtils.isNumber(scrollLeft)) {
163
164
  scrollBodyElem.scrollLeft = scrollLeft
@@ -166,7 +167,7 @@ export default defineComponent({
166
167
  scrollBodyElem.scrollTop = scrollTop
167
168
  }
168
169
  if (reactData.scrollYLoad) {
169
- return new Promise(resolve => {
170
+ return new Promise<void>(resolve => {
170
171
  setTimeout(() => {
171
172
  nextTick(() => {
172
173
  resolve()
@@ -296,21 +297,21 @@ export default defineComponent({
296
297
  recalculate().then(() => refreshScroll())
297
298
  })
298
299
 
299
- let resizeObserver: ResizeObserver
300
-
301
300
  nextTick(() => {
302
301
  globalEvents.on($xeList, 'resize', () => {
303
302
  recalculate()
304
303
  })
305
304
  if (props.autoResize) {
306
305
  const el = refElem.value
307
- resizeObserver = globalResize.create(() => recalculate())
306
+ const resizeObserver = globalResize.create(() => recalculate())
308
307
  resizeObserver.observe(el)
308
+ internalData.resizeObserver = resizeObserver
309
309
  }
310
310
  listMethods.loadData(props.data || [])
311
311
  })
312
312
 
313
313
  onUnmounted(() => {
314
+ const { resizeObserver } = internalData
314
315
  if (resizeObserver) {
315
316
  resizeObserver.disconnect()
316
317
  }
@@ -330,8 +330,6 @@ export default defineComponent({
330
330
  ])
331
331
  }
332
332
 
333
- $xeListDesign.renderVN = renderVN
334
-
335
333
  provide('$xeListDesign', $xeListDesign)
336
334
 
337
335
  watch(() => props.config, (value) => {
@@ -344,6 +342,8 @@ export default defineComponent({
344
342
  loadConfig(props.config)
345
343
  }
346
344
 
345
+ $xeListDesign.renderVN = renderVN
346
+
347
347
  return $xeListDesign
348
348
  },
349
349
  render () {
@@ -455,8 +455,6 @@ export default defineComponent({
455
455
  ])
456
456
  }
457
457
 
458
- $xeListView.renderVN = renderVN
459
-
460
458
  watch(() => props.config, (value) => {
461
459
  loadConfig(value || {})
462
460
  })
@@ -475,6 +473,8 @@ export default defineComponent({
475
473
  })
476
474
  }
477
475
 
476
+ $xeListView.renderVN = renderVN
477
+
478
478
  return $xeListView
479
479
  },
480
480
  render () {