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
@@ -30,10 +30,8 @@ export default defineComponent({
30
30
  topSpaceHeight: 0,
31
31
  items: []
32
32
  });
33
- const refElem = ref();
34
- const refVirtualWrapper = ref();
35
- const refVirtualBody = ref();
36
33
  const internalData = {
34
+ resizeObserver: undefined,
37
35
  fullData: [],
38
36
  lastScrollLeft: 0,
39
37
  lastScrollTop: 0,
@@ -45,6 +43,9 @@ export default defineComponent({
45
43
  rowHeight: 0
46
44
  }
47
45
  };
46
+ const refElem = ref();
47
+ const refVirtualWrapper = ref();
48
+ const refVirtualBody = ref();
48
49
  const refMaps = {
49
50
  refElem
50
51
  };
@@ -269,19 +270,20 @@ export default defineComponent({
269
270
  onActivated(() => {
270
271
  recalculate().then(() => refreshScroll());
271
272
  });
272
- let resizeObserver;
273
273
  nextTick(() => {
274
274
  globalEvents.on($xeList, 'resize', () => {
275
275
  recalculate();
276
276
  });
277
277
  if (props.autoResize) {
278
278
  const el = refElem.value;
279
- resizeObserver = globalResize.create(() => recalculate());
279
+ const resizeObserver = globalResize.create(() => recalculate());
280
280
  resizeObserver.observe(el);
281
+ internalData.resizeObserver = resizeObserver;
281
282
  }
282
283
  listMethods.loadData(props.data || []);
283
284
  });
284
285
  onUnmounted(() => {
286
+ const { resizeObserver } = internalData;
285
287
  if (resizeObserver) {
286
288
  resizeObserver.disconnect();
287
289
  }
@@ -296,7 +296,6 @@ export default defineComponent({
296
296
  ])
297
297
  ]);
298
298
  };
299
- $xeListDesign.renderVN = renderVN;
300
299
  provide('$xeListDesign', $xeListDesign);
301
300
  watch(() => props.config, (value) => {
302
301
  loadConfig(value || {});
@@ -305,6 +304,7 @@ export default defineComponent({
305
304
  if (props.config) {
306
305
  loadConfig(props.config);
307
306
  }
307
+ $xeListDesign.renderVN = renderVN;
308
308
  return $xeListDesign;
309
309
  },
310
310
  render() {
@@ -414,7 +414,6 @@ export default defineComponent({
414
414
  })
415
415
  ]);
416
416
  };
417
- $xeListView.renderVN = renderVN;
418
417
  watch(() => props.config, (value) => {
419
418
  loadConfig(value || {});
420
419
  });
@@ -429,6 +428,7 @@ export default defineComponent({
429
428
  }
430
429
  });
431
430
  }
431
+ $xeListView.renderVN = renderVN;
432
432
  return $xeListView;
433
433
  },
434
434
  render() {
@@ -114,11 +114,14 @@ export default defineComponent({
114
114
  ])
115
115
  ]);
116
116
  };
117
- $xeLoading.renderVN = renderVN;
118
117
  watch(() => props.modelValue, () => {
119
118
  handleInit();
120
119
  });
121
120
  handleInit();
121
+ $xeLoading.renderVN = renderVN;
122
122
  return $xeLoading;
123
+ },
124
+ render() {
125
+ return this.renderVN();
123
126
  }
124
127
  });
@@ -128,8 +128,9 @@ export default defineComponent({
128
128
  const handleClickMenu = (evnt, item) => {
129
129
  const { routerLink, hasChild } = item;
130
130
  if (routerLink) {
131
- reactData.activeName = item.itemKey;
132
- emit('update:modelValue', item.itemKey);
131
+ const value = item.itemKey;
132
+ reactData.activeName = value;
133
+ emit('update:modelValue', value);
133
134
  }
134
135
  else {
135
136
  if (hasChild) {
@@ -245,7 +246,6 @@ export default defineComponent({
245
246
  })
246
247
  ]);
247
248
  };
248
- $xeMenu.renderVN = renderVN;
249
249
  const optFlag = ref(0);
250
250
  watch(() => props.options ? props.options.length : -1, () => {
251
251
  optFlag.value++;
@@ -270,6 +270,7 @@ export default defineComponent({
270
270
  });
271
271
  updateMenuConfig();
272
272
  updateActiveMenu(true);
273
+ $xeMenu.renderVN = renderVN;
273
274
  return $xeMenu;
274
275
  },
275
276
  render() {
@@ -9,10 +9,19 @@ export default defineComponent({
9
9
  name: 'VxeNumberInput',
10
10
  props: {
11
11
  modelValue: [String, Number],
12
- immediate: { type: Boolean, default: true },
12
+ immediate: {
13
+ type: Boolean,
14
+ default: true
15
+ },
13
16
  name: String,
14
- type: { type: String, default: 'number' },
15
- clearable: { type: Boolean, default: () => getConfig().numberInput.clearable },
17
+ type: {
18
+ type: String,
19
+ default: 'number'
20
+ },
21
+ clearable: {
22
+ type: Boolean,
23
+ default: () => getConfig().numberInput.clearable
24
+ },
16
25
  readonly: {
17
26
  type: Boolean,
18
27
  default: null
@@ -30,17 +39,35 @@ export default defineComponent({
30
39
  align: String,
31
40
  form: String,
32
41
  className: String,
33
- size: { type: String, default: () => getConfig().numberInput.size || getConfig().size },
42
+ size: {
43
+ type: String,
44
+ default: () => getConfig().numberInput.size || getConfig().size
45
+ },
34
46
  multiple: Boolean,
35
47
  // number、integer、float
36
- min: { type: [String, Number], default: null },
37
- max: { type: [String, Number], default: null },
48
+ min: {
49
+ type: [String, Number],
50
+ default: null
51
+ },
52
+ max: {
53
+ type: [String, Number],
54
+ default: null
55
+ },
38
56
  step: [String, Number],
39
- exponential: { type: Boolean, default: () => getConfig().numberInput.exponential },
57
+ exponential: {
58
+ type: Boolean,
59
+ default: () => getConfig().numberInput.exponential
60
+ },
40
61
  // number、integer、float
41
- controls: { type: Boolean, default: () => getConfig().numberInput.controls },
62
+ controls: {
63
+ type: Boolean,
64
+ default: () => getConfig().numberInput.controls
65
+ },
42
66
  // float
43
- digits: { type: [String, Number], default: () => getConfig().numberInput.digits },
67
+ digits: {
68
+ type: [String, Number],
69
+ default: () => getConfig().numberInput.digits
70
+ },
44
71
  prefixIcon: String,
45
72
  suffixIcon: String,
46
73
  // 已废弃
@@ -74,6 +101,9 @@ export default defineComponent({
74
101
  isActivated: false,
75
102
  inputValue: props.modelValue
76
103
  });
104
+ const internalData = {
105
+ dnTimeout: undefined
106
+ };
77
107
  const refElem = ref();
78
108
  const refInputTarget = ref();
79
109
  const refInputPanel = ref();
@@ -86,9 +116,10 @@ export default defineComponent({
86
116
  props,
87
117
  context,
88
118
  reactData,
119
+ internalData,
89
120
  getRefMaps: () => refMaps
90
121
  };
91
- let inputMethods = {};
122
+ let numberInputMethods = {};
92
123
  const computeFormReadonly = computed(() => {
93
124
  const { readonly } = props;
94
125
  if (readonly === null) {
@@ -109,9 +140,6 @@ export default defineComponent({
109
140
  }
110
141
  return disabled;
111
142
  });
112
- const computeIsNumType = computed(() => {
113
- return true;
114
- });
115
143
  const computeDigitsValue = computed(() => {
116
144
  return XEUtils.toInteger(props.digits) || 1;
117
145
  });
@@ -146,7 +174,7 @@ export default defineComponent({
146
174
  }
147
175
  return getI18n('vxe.base.pleaseInput');
148
176
  });
149
- const computeInpMaxlength = computed(() => {
177
+ const computeInpMaxLength = computed(() => {
150
178
  const { maxLength, maxlength } = props;
151
179
  // 数值最大长度限制 16 位,包含小数
152
180
  return XEUtils.toNumber(maxLength || maxlength) || 16;
@@ -158,11 +186,7 @@ export default defineComponent({
158
186
  const computeNumValue = computed(() => {
159
187
  const { type } = props;
160
188
  const { inputValue } = reactData;
161
- const isNumType = computeIsNumType.value;
162
- if (isNumType) {
163
- return type === 'integer' ? XEUtils.toInteger(handleNumber(inputValue)) : XEUtils.toNumber(handleNumber(inputValue));
164
- }
165
- return 0;
189
+ return type === 'integer' ? XEUtils.toInteger(handleNumber(inputValue)) : XEUtils.toNumber(handleNumber(inputValue));
166
190
  });
167
191
  const computeNumLabel = computed(() => {
168
192
  const { inputValue } = reactData;
@@ -171,10 +195,9 @@ export default defineComponent({
171
195
  const computeIsDisabledSubtractNumber = computed(() => {
172
196
  const { min } = props;
173
197
  const { inputValue } = reactData;
174
- const isNumType = computeIsNumType.value;
175
198
  const numValue = computeNumValue.value;
176
199
  // 当有值时再进行判断
177
- if ((inputValue || inputValue === 0) && isNumType && min !== null) {
200
+ if ((inputValue || inputValue === 0) && min !== null) {
178
201
  return numValue <= XEUtils.toNumber(min);
179
202
  }
180
203
  return false;
@@ -182,37 +205,37 @@ export default defineComponent({
182
205
  const computeIsDisabledAddNumber = computed(() => {
183
206
  const { max } = props;
184
207
  const { inputValue } = reactData;
185
- const isNumType = computeIsNumType.value;
186
208
  const numValue = computeNumValue.value;
187
209
  // 当有值时再进行判断
188
- if ((inputValue || inputValue === 0) && isNumType && max !== null) {
210
+ if ((inputValue || inputValue === 0) && max !== null) {
189
211
  return numValue >= XEUtils.toNumber(max);
190
212
  }
191
213
  return false;
192
214
  });
193
215
  const getNumberValue = (val) => {
194
216
  const { type, exponential } = props;
195
- const inpMaxlength = computeInpMaxlength.value;
217
+ const inpMaxLength = computeInpMaxLength.value;
196
218
  const digitsValue = computeDigitsValue.value;
197
219
  const restVal = (type === 'float' ? toFloatValueFixed(val, digitsValue) : XEUtils.toValueString(val));
198
220
  if (exponential && (val === restVal || XEUtils.toValueString(val).toLowerCase() === XEUtils.toNumber(restVal).toExponential())) {
199
221
  return val;
200
222
  }
201
- return restVal.slice(0, inpMaxlength);
223
+ return restVal.slice(0, inpMaxLength);
202
224
  };
203
225
  const triggerEvent = (evnt) => {
204
226
  const { inputValue } = reactData;
205
- inputMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt);
227
+ numberInputMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt);
206
228
  };
207
- const emitModel = (value, inputValue, evnt) => {
229
+ const handleChange = (val, inputValue, evnt) => {
230
+ const value = val ? Number(val) : null;
208
231
  const isChange = Number(value) !== props.modelValue;
209
232
  if (isChange) {
210
233
  reactData.inputValue = inputValue || '';
211
- emit('update:modelValue', value ? Number(value) : null);
234
+ emit('update:modelValue', value);
212
235
  }
213
- inputMethods.dispatchEvent('input', { value }, evnt);
236
+ numberInputMethods.dispatchEvent('input', { value }, evnt);
214
237
  if (isChange) {
215
- inputMethods.dispatchEvent('change', { value }, evnt);
238
+ numberInputMethods.dispatchEvent('change', { value }, evnt);
216
239
  // 自动更新校验状态
217
240
  if ($xeForm && formItemInfo) {
218
241
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
@@ -224,10 +247,10 @@ export default defineComponent({
224
247
  const value = inputValue ? XEUtils.toNumber(inputValue) : null;
225
248
  reactData.inputValue = inputValue;
226
249
  if (inpImmediate) {
227
- emitModel(value, inputValue, evnt);
250
+ handleChange(value, inputValue, evnt);
228
251
  }
229
252
  else {
230
- inputMethods.dispatchEvent('input', { value }, evnt);
253
+ numberInputMethods.dispatchEvent('input', { value }, evnt);
231
254
  }
232
255
  };
233
256
  const inputEvent = (evnt) => {
@@ -249,19 +272,19 @@ export default defineComponent({
249
272
  const isDisabled = computeIsDisabled.value;
250
273
  if (!isDisabled) {
251
274
  const { inputValue } = reactData;
252
- inputMethods.dispatchEvent('prefix-click', { value: inputValue }, evnt);
275
+ numberInputMethods.dispatchEvent('prefix-click', { value: inputValue }, evnt);
253
276
  }
254
277
  };
255
278
  const clearValueEvent = (evnt, value) => {
256
279
  focus();
257
- emitModel(null, '', evnt);
258
- inputMethods.dispatchEvent('clear', { value }, evnt);
280
+ handleChange(null, '', evnt);
281
+ numberInputMethods.dispatchEvent('clear', { value }, evnt);
259
282
  };
260
283
  const clickSuffixEvent = (evnt) => {
261
284
  const isDisabled = computeIsDisabled.value;
262
285
  if (!isDisabled) {
263
286
  const { inputValue } = reactData;
264
- inputMethods.dispatchEvent('suffix-click', { value: inputValue }, evnt);
287
+ numberInputMethods.dispatchEvent('suffix-click', { value: inputValue }, evnt);
265
288
  }
266
289
  };
267
290
  /**
@@ -280,7 +303,7 @@ export default defineComponent({
280
303
  validValue = Number(textValue);
281
304
  }
282
305
  if (inputValue !== validValue) {
283
- emitModel(validValue, textValue, { type: 'init' });
306
+ handleChange(validValue, textValue, { type: 'init' });
284
307
  }
285
308
  }
286
309
  }
@@ -311,7 +334,7 @@ export default defineComponent({
311
334
  }
312
335
  }
313
336
  const inpValue = getNumberValue(inpNumVal);
314
- emitModel(inpValue === null ? null : Number(inpValue), inpValue, { type: 'check' });
337
+ handleChange(inpValue === null ? null : Number(inpValue), inpValue, { type: 'check' });
315
338
  }
316
339
  }
317
340
  };
@@ -320,11 +343,11 @@ export default defineComponent({
320
343
  const inpImmediate = computeInpImmediate.value;
321
344
  const value = inputValue ? Number(inputValue) : null;
322
345
  if (!inpImmediate) {
323
- emitModel(value, `${inputValue || ''}`, evnt);
346
+ handleChange(value, `${inputValue || ''}`, evnt);
324
347
  }
325
348
  afterCheckValue();
326
349
  reactData.isActivated = false;
327
- inputMethods.dispatchEvent('blur', { value }, evnt);
350
+ numberInputMethods.dispatchEvent('blur', { value }, evnt);
328
351
  };
329
352
  // 数值
330
353
  const numberChange = (isPlus, evnt) => {
@@ -345,19 +368,18 @@ export default defineComponent({
345
368
  }
346
369
  emitInputEvent(getNumberValue(restNum), evnt);
347
370
  };
348
- let downbumTimeout;
349
371
  const numberNextEvent = (evnt) => {
350
372
  const isDisabled = computeIsDisabled.value;
351
373
  const formReadonly = computeFormReadonly.value;
352
374
  const isDisabledSubtractNumber = computeIsDisabledSubtractNumber.value;
353
- clearTimeout(downbumTimeout);
375
+ numberStopDown();
354
376
  if (!isDisabled && !formReadonly && !isDisabledSubtractNumber) {
355
377
  numberChange(false, evnt);
356
378
  }
357
- inputMethods.dispatchEvent('next-number', {}, evnt);
379
+ numberInputMethods.dispatchEvent('next-number', {}, evnt);
358
380
  };
359
381
  const numberDownNextEvent = (evnt) => {
360
- downbumTimeout = window.setTimeout(() => {
382
+ internalData.dnTimeout = window.setTimeout(() => {
361
383
  numberNextEvent(evnt);
362
384
  numberDownNextEvent(evnt);
363
385
  }, 60);
@@ -366,11 +388,11 @@ export default defineComponent({
366
388
  const isDisabled = computeIsDisabled.value;
367
389
  const formReadonly = computeFormReadonly.value;
368
390
  const isDisabledAddNumber = computeIsDisabledAddNumber.value;
369
- clearTimeout(downbumTimeout);
391
+ numberStopDown();
370
392
  if (!isDisabled && !formReadonly && !isDisabledAddNumber) {
371
393
  numberChange(true, evnt);
372
394
  }
373
- inputMethods.dispatchEvent('prev-number', {}, evnt);
395
+ numberInputMethods.dispatchEvent('prev-number', {}, evnt);
374
396
  };
375
397
  const numberKeydownEvent = (evnt) => {
376
398
  const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
@@ -387,25 +409,22 @@ export default defineComponent({
387
409
  };
388
410
  const keydownEvent = (evnt) => {
389
411
  const { exponential, controls } = props;
390
- const isNumType = computeIsNumType.value;
391
- if (isNumType) {
392
- const isCtrlKey = evnt.ctrlKey;
393
- const isShiftKey = evnt.shiftKey;
394
- const isAltKey = evnt.altKey;
395
- const keyCode = evnt.keyCode;
396
- const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
397
- const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
398
- const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
399
- if (!isCtrlKey && !isShiftKey && !isAltKey && (globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.SPACEBAR) || ((!exponential || keyCode !== 69) && (keyCode >= 65 && keyCode <= 90)) || (keyCode >= 186 && keyCode <= 188) || keyCode >= 191)) {
400
- evnt.preventDefault();
401
- }
402
- if (isEsc) {
403
- afterCheckValue();
404
- }
405
- else if (isUpArrow || isDwArrow) {
406
- if (controls) {
407
- numberKeydownEvent(evnt);
408
- }
412
+ const isCtrlKey = evnt.ctrlKey;
413
+ const isShiftKey = evnt.shiftKey;
414
+ const isAltKey = evnt.altKey;
415
+ const keyCode = evnt.keyCode;
416
+ const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
417
+ const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
418
+ const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
419
+ if (!isCtrlKey && !isShiftKey && !isAltKey && (globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.SPACEBAR) || ((!exponential || keyCode !== 69) && (keyCode >= 65 && keyCode <= 90)) || (keyCode >= 186 && keyCode <= 188) || keyCode >= 191)) {
420
+ evnt.preventDefault();
421
+ }
422
+ if (isEsc) {
423
+ afterCheckValue();
424
+ }
425
+ else if (isUpArrow || isDwArrow) {
426
+ if (controls) {
427
+ numberKeydownEvent(evnt);
409
428
  }
410
429
  }
411
430
  triggerEvent(evnt);
@@ -415,10 +434,14 @@ export default defineComponent({
415
434
  };
416
435
  // 数值
417
436
  const numberStopDown = () => {
418
- clearTimeout(downbumTimeout);
437
+ const { dnTimeout } = internalData;
438
+ if (dnTimeout) {
439
+ clearTimeout(dnTimeout);
440
+ internalData.dnTimeout = undefined;
441
+ }
419
442
  };
420
443
  const numberDownPrevEvent = (evnt) => {
421
- downbumTimeout = window.setTimeout(() => {
444
+ internalData.dnTimeout = window.setTimeout(() => {
422
445
  numberPrevEvent(evnt);
423
446
  numberDownPrevEvent(evnt);
424
447
  }, 60);
@@ -433,7 +456,7 @@ export default defineComponent({
433
456
  else {
434
457
  numberNextEvent(evnt);
435
458
  }
436
- downbumTimeout = window.setTimeout(() => {
459
+ internalData.dnTimeout = window.setTimeout(() => {
437
460
  if (isPrevNumber) {
438
461
  numberDownPrevEvent(evnt);
439
462
  }
@@ -444,8 +467,7 @@ export default defineComponent({
444
467
  }
445
468
  };
446
469
  const wheelEvent = (evnt) => {
447
- const isNumType = computeIsNumType.value;
448
- if (isNumType && props.controls) {
470
+ if (props.controls) {
449
471
  if (reactData.isActivated) {
450
472
  const delta = evnt.deltaY;
451
473
  if (delta > 0) {
@@ -601,10 +623,11 @@ export default defineComponent({
601
623
  }
602
624
  return createCommentVNode();
603
625
  };
604
- inputMethods = {
605
- dispatchEvent(type, params, evnt) {
606
- emit(type, createEvent(evnt, { $input: $xeNumberInput }, params));
607
- },
626
+ const dispatchEvent = (type, params, evnt) => {
627
+ emit(type, createEvent(evnt, { $numberInput: $xeNumberInput }, params));
628
+ };
629
+ numberInputMethods = {
630
+ dispatchEvent,
608
631
  focus() {
609
632
  const inputElem = refInputTarget.value;
610
633
  reactData.isActivated = true;
@@ -624,7 +647,7 @@ export default defineComponent({
624
647
  return nextTick();
625
648
  }
626
649
  };
627
- Object.assign($xeNumberInput, inputMethods);
650
+ Object.assign($xeNumberInput, numberInputMethods);
628
651
  const renderVN = () => {
629
652
  const { className, controls, type, align, name, autocomplete, autoComplete } = props;
630
653
  const { inputValue, isActivated } = reactData;
@@ -639,7 +662,7 @@ export default defineComponent({
639
662
  }, numLabel);
640
663
  }
641
664
  const inputReadonly = computeInputReadonly.value;
642
- const inpMaxlength = computeInpMaxlength.value;
665
+ const inpMaxLength = computeInpMaxLength.value;
643
666
  const inpPlaceholder = computeInpPlaceholder.value;
644
667
  const isClearable = computeIsClearable.value;
645
668
  const prefix = renderPrefixIcon();
@@ -669,7 +692,7 @@ export default defineComponent({
669
692
  name,
670
693
  type: 'text',
671
694
  placeholder: inpPlaceholder,
672
- maxlength: inpMaxlength,
695
+ maxlength: inpMaxLength,
673
696
  readonly: inputReadonly,
674
697
  disabled: isDisabled,
675
698
  autocomplete: autoComplete || autocomplete,