vxe-pc-ui 4.1.20 → 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 (231) hide show
  1. package/README.md +82 -1
  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/calendar/src/calendar.js +64 -32
  7. package/es/carousel/src/carousel-item.js +13 -3
  8. package/es/carousel/src/carousel.js +16 -8
  9. package/es/checkbox/src/checkbox.js +30 -14
  10. package/es/checkbox/src/group.js +17 -8
  11. package/es/collapse-pane/index.js +1 -1
  12. package/es/countdown/src/countdown.js +1 -1
  13. package/es/date-picker/src/date-picker.js +12 -12
  14. package/es/drawer/src/drawer.js +1 -1
  15. package/es/form/render/index.js +1 -2
  16. package/es/form/src/form-config-item.js +4 -3
  17. package/es/form/src/form-gather.js +5 -3
  18. package/es/form/src/form-item.js +15 -10
  19. package/es/form/src/form.js +11 -8
  20. package/es/form/src/render.js +2 -1
  21. package/es/form/src/util.js +2 -1
  22. package/es/icon/style.css +1 -1
  23. package/es/icon-picker/src/icon-picker.js +22 -10
  24. package/es/image/src/group.js +4 -1
  25. package/es/image/src/preview.js +1 -1
  26. package/es/input/src/input.js +129 -65
  27. package/es/layout-aside/src/layout-aside.js +1 -1
  28. package/es/list/src/list.js +7 -5
  29. package/es/list-design/src/list-design.js +1 -1
  30. package/es/list-design/src/list-view.js +1 -1
  31. package/es/loading/src/loading.js +1 -1
  32. package/es/menu/src/menu.js +1 -1
  33. package/es/number-input/src/number-input.js +6 -6
  34. package/es/pager/src/pager.js +85 -45
  35. package/es/password-input/src/password-input.js +2 -2
  36. package/es/print/src/page-break.js +11 -2
  37. package/es/print/src/print.js +6 -4
  38. package/es/radio/src/group.js +5 -2
  39. package/es/row/src/row.js +1 -1
  40. package/es/select/src/optgroup.js +11 -8
  41. package/es/select/src/option.js +9 -7
  42. package/es/select/src/select.js +32 -29
  43. package/es/select/src/util.js +2 -2
  44. package/es/style.css +1 -1
  45. package/es/style.min.css +1 -1
  46. package/es/tabs/src/tab-pane.js +13 -3
  47. package/es/tabs/src/tabs.js +57 -47
  48. package/es/textarea/src/textarea.js +4 -4
  49. package/es/tooltip/src/tooltip.js +1 -1
  50. package/es/tree/src/tree.js +6 -3
  51. package/es/tree-select/src/tree-select.js +16 -9
  52. package/es/ui/index.js +1 -7
  53. package/es/ui/src/log.js +1 -1
  54. package/es/upload/src/upload.js +5 -5
  55. package/lib/anchor/src/anchor-link.js +1 -1
  56. package/lib/anchor/src/anchor-link.min.js +1 -1
  57. package/lib/anchor/src/anchor.js +1 -1
  58. package/lib/anchor/src/anchor.min.js +1 -1
  59. package/lib/breadcrumb/src/breadcrumb.js +1 -1
  60. package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
  61. package/lib/button/src/button-group.js +4 -1
  62. package/lib/button/src/button-group.min.js +1 -1
  63. package/lib/calendar/src/calendar.js +42 -24
  64. package/lib/calendar/src/calendar.min.js +1 -1
  65. package/lib/carousel/src/carousel-item.js +16 -3
  66. package/lib/carousel/src/carousel-item.min.js +1 -1
  67. package/lib/carousel/src/carousel.js +18 -8
  68. package/lib/carousel/src/carousel.min.js +1 -1
  69. package/lib/checkbox/src/checkbox.js +16 -12
  70. package/lib/checkbox/src/checkbox.min.js +1 -1
  71. package/lib/checkbox/src/group.js +10 -7
  72. package/lib/checkbox/src/group.min.js +1 -1
  73. package/lib/collapse-pane/index.js +1 -1
  74. package/lib/collapse-pane/index.min.js +1 -1
  75. package/lib/countdown/src/countdown.js +1 -1
  76. package/lib/countdown/src/countdown.min.js +1 -1
  77. package/lib/date-picker/src/date-picker.js +12 -12
  78. package/lib/drawer/src/drawer.js +1 -1
  79. package/lib/drawer/src/drawer.min.js +1 -1
  80. package/lib/form/render/index.js +1 -4
  81. package/lib/form/render/index.min.js +1 -1
  82. package/lib/form/src/form-config-item.js +4 -5
  83. package/lib/form/src/form-config-item.min.js +1 -1
  84. package/lib/form/src/form-gather.js +11 -9
  85. package/lib/form/src/form-gather.min.js +1 -1
  86. package/lib/form/src/form-item.js +11 -12
  87. package/lib/form/src/form-item.min.js +1 -1
  88. package/lib/form/src/form.js +7 -7
  89. package/lib/form/src/form.min.js +1 -1
  90. package/lib/form/src/render.js +2 -1
  91. package/lib/form/src/util.js +2 -1
  92. package/lib/icon/style/style.css +1 -1
  93. package/lib/icon/style/style.min.css +1 -1
  94. package/lib/icon-picker/src/icon-picker.js +20 -11
  95. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  96. package/lib/image/src/group.js +4 -1
  97. package/lib/image/src/group.min.js +1 -1
  98. package/lib/image/src/preview.js +1 -1
  99. package/lib/image/src/preview.min.js +1 -1
  100. package/lib/index.umd.js +522 -377
  101. package/lib/index.umd.min.js +1 -1
  102. package/lib/input/src/input.js +77 -50
  103. package/lib/input/src/input.min.js +1 -1
  104. package/lib/layout-aside/src/layout-aside.js +1 -1
  105. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  106. package/lib/list/src/list.js +9 -5
  107. package/lib/list/src/list.min.js +1 -1
  108. package/lib/list-design/src/list-design.js +1 -1
  109. package/lib/list-design/src/list-design.min.js +1 -1
  110. package/lib/list-design/src/list-view.js +1 -1
  111. package/lib/list-design/src/list-view.min.js +1 -1
  112. package/lib/loading/src/loading.js +1 -1
  113. package/lib/loading/src/loading.min.js +1 -1
  114. package/lib/menu/src/menu.js +1 -1
  115. package/lib/menu/src/menu.min.js +1 -1
  116. package/lib/number-input/src/number-input.js +6 -6
  117. package/lib/pager/src/pager.js +40 -39
  118. package/lib/pager/src/pager.min.js +1 -1
  119. package/lib/password-input/src/password-input.js +2 -2
  120. package/lib/print/src/page-break.js +14 -2
  121. package/lib/print/src/page-break.min.js +1 -1
  122. package/lib/print/src/print.js +8 -6
  123. package/lib/print/src/print.min.js +1 -1
  124. package/lib/radio/src/group.js +5 -2
  125. package/lib/radio/src/group.min.js +1 -1
  126. package/lib/row/src/row.js +1 -1
  127. package/lib/row/src/row.min.js +1 -1
  128. package/lib/select/src/optgroup.js +12 -9
  129. package/lib/select/src/optgroup.min.js +1 -1
  130. package/lib/select/src/option.js +9 -7
  131. package/lib/select/src/option.min.js +1 -1
  132. package/lib/select/src/select.js +33 -32
  133. package/lib/select/src/select.min.js +1 -1
  134. package/lib/select/src/util.js +2 -2
  135. package/lib/select/src/util.min.js +1 -1
  136. package/lib/style.css +1 -1
  137. package/lib/style.min.css +1 -1
  138. package/lib/tabs/src/tab-pane.js +16 -3
  139. package/lib/tabs/src/tab-pane.min.js +1 -1
  140. package/lib/tabs/src/tabs.js +62 -50
  141. package/lib/tabs/src/tabs.min.js +1 -1
  142. package/lib/textarea/src/textarea.js +4 -4
  143. package/lib/tooltip/src/tooltip.js +1 -1
  144. package/lib/tooltip/src/tooltip.min.js +1 -1
  145. package/lib/tree/src/tree.js +2 -2
  146. package/lib/tree/src/tree.min.js +1 -1
  147. package/lib/tree-select/src/tree-select.js +11 -7
  148. package/lib/tree-select/src/tree-select.min.js +1 -1
  149. package/lib/ui/index.js +3 -10
  150. package/lib/ui/index.min.js +1 -1
  151. package/lib/ui/src/log.js +1 -1
  152. package/lib/ui/src/log.min.js +1 -1
  153. package/lib/upload/src/upload.js +5 -5
  154. package/lib/upload/src/upload.min.js +1 -1
  155. package/package.json +2 -2
  156. package/packages/anchor/src/anchor-link.ts +2 -2
  157. package/packages/anchor/src/anchor.ts +2 -2
  158. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  159. package/packages/button/src/button-group.ts +4 -1
  160. package/packages/calendar/src/calendar.ts +67 -35
  161. package/packages/carousel/src/carousel-item.ts +19 -4
  162. package/packages/carousel/src/carousel.ts +19 -11
  163. package/packages/checkbox/src/checkbox.ts +34 -15
  164. package/packages/checkbox/src/group.ts +22 -10
  165. package/packages/collapse-pane/index.ts +1 -1
  166. package/packages/countdown/src/countdown.ts +2 -2
  167. package/packages/date-picker/src/date-picker.ts +12 -12
  168. package/packages/drawer/src/drawer.ts +2 -2
  169. package/packages/form/render/index.ts +1 -3
  170. package/packages/form/src/form-config-item.ts +4 -3
  171. package/packages/form/src/form-gather.ts +5 -3
  172. package/packages/form/src/form-item.ts +15 -10
  173. package/packages/form/src/form.ts +12 -10
  174. package/packages/form/src/render.ts +2 -1
  175. package/packages/form/src/util.ts +2 -1
  176. package/packages/icon-picker/src/icon-picker.ts +26 -13
  177. package/packages/image/src/group.ts +4 -1
  178. package/packages/image/src/preview.ts +2 -2
  179. package/packages/input/src/input.ts +133 -71
  180. package/packages/layout-aside/src/layout-aside.ts +2 -2
  181. package/packages/list/src/list.ts +12 -11
  182. package/packages/list-design/src/list-design.ts +2 -2
  183. package/packages/list-design/src/list-view.ts +2 -2
  184. package/packages/loading/src/loading.ts +2 -2
  185. package/packages/menu/src/menu.ts +2 -2
  186. package/packages/number-input/src/number-input.ts +6 -6
  187. package/packages/pager/src/pager.ts +91 -50
  188. package/packages/password-input/src/password-input.ts +2 -2
  189. package/packages/print/src/page-break.ts +18 -4
  190. package/packages/print/src/print.ts +10 -5
  191. package/packages/radio/src/group.ts +6 -3
  192. package/packages/row/src/row.ts +2 -2
  193. package/packages/select/src/optgroup.ts +16 -13
  194. package/packages/select/src/option.ts +10 -8
  195. package/packages/select/src/select.ts +42 -36
  196. package/packages/select/src/util.ts +3 -3
  197. package/packages/tabs/src/tab-pane.ts +20 -5
  198. package/packages/tabs/src/tabs.ts +59 -49
  199. package/packages/textarea/src/textarea.ts +4 -4
  200. package/packages/tooltip/src/tooltip.ts +2 -2
  201. package/packages/tree/src/tree.ts +7 -4
  202. package/packages/tree-select/src/tree-select.ts +20 -12
  203. package/packages/ui/index.ts +0 -7
  204. package/packages/upload/src/upload.ts +6 -6
  205. package/types/components/calendar.d.ts +6 -0
  206. package/types/components/carousel.d.ts +5 -0
  207. package/types/components/form.d.ts +4 -2
  208. package/types/components/icon-picker.d.ts +4 -0
  209. package/types/components/input.d.ts +9 -1
  210. package/types/components/list.d.ts +1 -0
  211. package/types/components/optgroup.d.ts +10 -4
  212. package/types/components/tabs.d.ts +4 -0
  213. package/types/components/toolbar.d.ts +5 -0
  214. package/types/components/tree-select.d.ts +4 -0
  215. package/types/ui/index.d.ts +0 -22
  216. /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  217. /package/es/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  218. /package/es/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  219. /package/es/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  220. /package/es/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  221. /package/es/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  222. /package/es/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  223. /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  224. /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
  225. /package/lib/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  226. /package/lib/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  227. /package/lib/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  228. /package/lib/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
  229. /package/lib/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
  230. /package/lib/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
  231. /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
@@ -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 () {
@@ -135,14 +135,14 @@ export default defineComponent({
135
135
  ])
136
136
  }
137
137
 
138
- $xeLoading.renderVN = renderVN
139
-
140
138
  watch(() => props.modelValue, () => {
141
139
  handleInit()
142
140
  })
143
141
 
144
142
  handleInit()
145
143
 
144
+ $xeLoading.renderVN = renderVN
145
+
146
146
  return $xeLoading
147
147
  },
148
148
  render () {
@@ -283,8 +283,6 @@ export default defineComponent({
283
283
  ])
284
284
  }
285
285
 
286
- $xeMenu.renderVN = renderVN
287
-
288
286
  const optFlag = ref(0)
289
287
  watch(() => props.options ? props.options.length : -1, () => {
290
288
  optFlag.value++
@@ -314,6 +312,8 @@ export default defineComponent({
314
312
  updateMenuConfig()
315
313
  updateActiveMenu(true)
316
314
 
315
+ $xeMenu.renderVN = renderVN
316
+
317
317
  return $xeMenu
318
318
  },
319
319
  render () {
@@ -258,7 +258,7 @@ export default defineComponent({
258
258
  numberInputMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt)
259
259
  }
260
260
 
261
- const emitModel = (val: number | null, inputValue: string, evnt: Event | { type: string }) => {
261
+ const handleChange = (val: number | null, inputValue: string, evnt: Event | { type: string }) => {
262
262
  const value = val ? Number(val) : null
263
263
  const isChange = Number(value) !== props.modelValue
264
264
  if (isChange) {
@@ -280,7 +280,7 @@ export default defineComponent({
280
280
  const value = inputValue ? XEUtils.toNumber(inputValue) : null
281
281
  reactData.inputValue = inputValue
282
282
  if (inpImmediate) {
283
- emitModel(value, inputValue, evnt)
283
+ handleChange(value, inputValue, evnt)
284
284
  } else {
285
285
  numberInputMethods.dispatchEvent('input', { value }, evnt)
286
286
  }
@@ -314,7 +314,7 @@ export default defineComponent({
314
314
 
315
315
  const clearValueEvent = (evnt: Event, value: VxeNumberInputPropTypes.ModelValue) => {
316
316
  focus()
317
- emitModel(null, '', evnt)
317
+ handleChange(null, '', evnt)
318
318
  numberInputMethods.dispatchEvent('clear', { value }, evnt)
319
319
  }
320
320
 
@@ -342,7 +342,7 @@ export default defineComponent({
342
342
  validValue = Number(textValue)
343
343
  }
344
344
  if (inputValue !== validValue) {
345
- emitModel(validValue, textValue, { type: 'init' })
345
+ handleChange(validValue, textValue, { type: 'init' })
346
346
  }
347
347
  }
348
348
  }
@@ -375,7 +375,7 @@ export default defineComponent({
375
375
  }
376
376
  }
377
377
  const inpValue = getNumberValue(inpNumVal)
378
- emitModel(inpValue === null ? null : Number(inpValue), inpValue, { type: 'check' })
378
+ handleChange(inpValue === null ? null : Number(inpValue), inpValue, { type: 'check' })
379
379
  }
380
380
  }
381
381
  }
@@ -385,7 +385,7 @@ export default defineComponent({
385
385
  const inpImmediate = computeInpImmediate.value
386
386
  const value = inputValue ? Number(inputValue) : null
387
387
  if (!inpImmediate) {
388
- emitModel(value, `${inputValue || ''}`, evnt)
388
+ handleChange(value, `${inputValue || ''}`, evnt)
389
389
  }
390
390
  afterCheckValue()
391
391
  reactData.isActivated = false
@@ -5,39 +5,78 @@ import { errLog } from '../../ui/src/log'
5
5
  import VxeSelectComponent from '../../select/src/select'
6
6
  import VxeInputComponent from '../../input/src/input'
7
7
 
8
- import type { VxePagerPropTypes, VxePagerConstructor, VxePagerEmits, VxeSelectEvents, PagerPrivateRef, PagerMethods, PagerPrivateMethods, VxePagerPrivateMethods, PagerReactData, VxeGridConstructor, VxeGridPrivateMethods, VxeInputEvents } from '../../../types'
8
+ import type { VxePagerPropTypes, VxePagerConstructor, VxePagerEmits, VxeSelectEvents, ValueOf, PagerPrivateRef, PagerMethods, PagerPrivateMethods, VxePagerPrivateMethods, PagerReactData, VxeGridConstructor, VxeGridPrivateMethods, VxeInputEvents } from '../../../types'
9
9
 
10
10
  export default defineComponent({
11
11
  name: 'VxePager',
12
12
  props: {
13
- size: { type: String as PropType<VxePagerPropTypes.Size>, default: () => getConfig().pager.size || getConfig().size },
13
+ size: {
14
+ type: String as PropType<VxePagerPropTypes.Size>,
15
+ default: () => getConfig().pager.size || getConfig().size
16
+ },
14
17
  // 自定义布局
15
- layouts: { type: Array as PropType<VxePagerPropTypes.Layouts>, default: () => getConfig().pager.layouts || ['PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total'] },
18
+ layouts: {
19
+ type: Array as PropType<VxePagerPropTypes.Layouts>,
20
+ default: () => getConfig().pager.layouts || ['PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total']
21
+ },
16
22
  // 当前页
17
- currentPage: { type: Number as PropType<VxePagerPropTypes.CurrentPage>, default: 1 },
23
+ currentPage: {
24
+ type: Number as PropType<VxePagerPropTypes.CurrentPage>,
25
+ default: 1
26
+ },
18
27
  // 加载中
19
28
  loading: Boolean as PropType<VxePagerPropTypes.Loading>,
20
29
  // 每页大小
21
- pageSize: { type: Number as PropType<VxePagerPropTypes.PageSize>, default: () => getConfig().pager.pageSize || 10 },
30
+ pageSize: {
31
+ type: Number as PropType<VxePagerPropTypes.PageSize>,
32
+ default: () => getConfig().pager.pageSize || 10
33
+ },
22
34
  // 总条数
23
35
  total: { type: Number as PropType<VxePagerPropTypes.Total>, default: 0 },
24
36
  // 显示页码按钮的数量
25
- pagerCount: { type: Number as PropType<VxePagerPropTypes.PagerCount>, default: () => getConfig().pager.pagerCount || 7 },
37
+ pagerCount: {
38
+ type: Number as PropType<VxePagerPropTypes.PagerCount>,
39
+ default: () => getConfig().pager.pagerCount || 7
40
+ },
26
41
  // 每页大小选项列表
27
- pageSizes: { type: Array as PropType<VxePagerPropTypes.PageSizes>, default: () => getConfig().pager.pageSizes || [10, 15, 20, 50, 100] },
42
+ pageSizes: {
43
+ type: Array as PropType<VxePagerPropTypes.PageSizes>,
44
+ default: () => getConfig().pager.pageSizes || [10, 15, 20, 50, 100]
45
+ },
28
46
  // 列对其方式
29
- align: { type: String as PropType<VxePagerPropTypes.Align>, default: () => getConfig().pager.align },
47
+ align: {
48
+ type: String as PropType<VxePagerPropTypes.Align>,
49
+ default: () => getConfig().pager.align
50
+ },
30
51
  // 带边框
31
- border: { type: Boolean as PropType<VxePagerPropTypes.Border>, default: () => getConfig().pager.border },
52
+ border: {
53
+ type: Boolean as PropType<VxePagerPropTypes.Border>,
54
+ default: () => getConfig().pager.border
55
+ },
32
56
  // 带背景颜色
33
- background: { type: Boolean as PropType<VxePagerPropTypes.Background>, default: () => getConfig().pager.background },
57
+ background: {
58
+ type: Boolean as PropType<VxePagerPropTypes.Background>,
59
+ default: () => getConfig().pager.background
60
+ },
34
61
  // 配套的样式
35
- perfect: { type: Boolean as PropType<VxePagerPropTypes.Perfect>, default: () => getConfig().pager.perfect },
62
+ perfect: {
63
+ type: Boolean as PropType<VxePagerPropTypes.Perfect>,
64
+ default: () => getConfig().pager.perfect
65
+ },
36
66
  // 当只有一页时隐藏
37
- autoHidden: { type: Boolean as PropType<VxePagerPropTypes.AutoHidden>, default: () => getConfig().pager.autoHidden },
38
- transfer: { type: Boolean as PropType<VxePagerPropTypes.Transfer>, default: () => getConfig().pager.transfer },
67
+ autoHidden: {
68
+ type: Boolean as PropType<VxePagerPropTypes.AutoHidden>,
69
+ default: () => getConfig().pager.autoHidden
70
+ },
71
+ transfer: {
72
+ type: Boolean as PropType<VxePagerPropTypes.Transfer>,
73
+ default: () => getConfig().pager.transfer
74
+ },
39
75
  className: [String, Function] as PropType<VxePagerPropTypes.ClassName>,
40
- pageSizePlacement: { type: String as PropType<VxePagerPropTypes.PageSizePlacement>, default: () => getConfig().pager.pageSizePlacement },
76
+ pageSizePlacement: {
77
+ type: String as PropType<VxePagerPropTypes.PageSizePlacement>,
78
+ default: () => getConfig().pager.pageSizePlacement
79
+ },
41
80
  // 自定义图标
42
81
  iconPrevPage: String as PropType<VxePagerPropTypes.IconPrevPage>,
43
82
  iconJumpPrev: String as PropType<VxePagerPropTypes.IconJumpPrev>,
@@ -71,6 +110,37 @@ export default defineComponent({
71
110
  refElem
72
111
  }
73
112
 
113
+ const computePageCount = computed(() => {
114
+ return getPageCount(props.total, props.pageSize)
115
+ })
116
+
117
+ const computeNumList = computed(() => {
118
+ const { pagerCount } = props
119
+ const pageCount = computePageCount.value
120
+ const len = pageCount > pagerCount ? pagerCount - 2 : pagerCount
121
+ const rest = []
122
+ for (let index = 0; index < len; index++) {
123
+ rest.push(index)
124
+ }
125
+ return rest
126
+ })
127
+
128
+ const computeOffsetNumber = computed(() => {
129
+ return Math.floor((props.pagerCount - 2) / 2)
130
+ })
131
+
132
+ const computeSizeList = computed(() => {
133
+ return props.pageSizes.map((item) => {
134
+ if (XEUtils.isNumber(item)) {
135
+ return {
136
+ value: item,
137
+ label: `${getI18n('vxe.pager.pagesize', [item])}`
138
+ }
139
+ }
140
+ return { value: '', label: '', ...item }
141
+ })
142
+ })
143
+
74
144
  const $xePager = {
75
145
  xID,
76
146
  props,
@@ -85,10 +155,6 @@ export default defineComponent({
85
155
  return Math.max(Math.ceil(total / size), 1)
86
156
  }
87
157
 
88
- const computePageCount = computed(() => {
89
- return getPageCount(props.total, props.pageSize)
90
- })
91
-
92
158
  const jumpPageEvent = (evnt: Event, currentPage: number) => {
93
159
  emit('update:currentPage', currentPage)
94
160
  if (evnt && currentPage !== props.currentPage) {
@@ -115,33 +181,6 @@ export default defineComponent({
115
181
  changeCurrentPage(current, $event)
116
182
  }
117
183
 
118
- const computeNumList = computed(() => {
119
- const { pagerCount } = props
120
- const pageCount = computePageCount.value
121
- const len = pageCount > pagerCount ? pagerCount - 2 : pagerCount
122
- const rest = []
123
- for (let index = 0; index < len; index++) {
124
- rest.push(index)
125
- }
126
- return rest
127
- })
128
-
129
- const computeOffsetNumber = computed(() => {
130
- return Math.floor((props.pagerCount - 2) / 2)
131
- })
132
-
133
- const computeSizeList = computed(() => {
134
- return props.pageSizes.map((item) => {
135
- if (XEUtils.isNumber(item)) {
136
- return {
137
- value: item,
138
- label: `${getI18n('vxe.pager.pagesize', [item])}`
139
- }
140
- }
141
- return { value: '', label: '', ...item }
142
- })
143
- })
144
-
145
184
  const handleHomePage = (evnt?: Event) => {
146
185
  const { currentPage } = props
147
186
  if (currentPage > 1) {
@@ -345,7 +384,7 @@ export default defineComponent({
345
384
  class: 'vxe-pager--num-btn',
346
385
  type: 'button',
347
386
  onClick: (evnt: Event) => jumpPageEvent(evnt, 1)
348
- }, 1),
387
+ }, '1'),
349
388
  renderPrevJump('span')
350
389
  )
351
390
  }
@@ -360,7 +399,7 @@ export default defineComponent({
360
399
  }],
361
400
  type: 'button',
362
401
  onClick: (evnt: Event) => jumpPageEvent(evnt, number)
363
- }, number)
402
+ }, `${number}`)
364
403
  )
365
404
  }
366
405
  })
@@ -456,10 +495,12 @@ export default defineComponent({
456
495
  }, getI18n('vxe.pager.total', [props.total]))
457
496
  }
458
497
 
498
+ const dispatchEvent = (type: ValueOf<VxePagerEmits>, params: Record<string, any>, evnt: Event | null) => {
499
+ emit(type, createEvent(evnt, { $pager: $xePager }, params))
500
+ }
501
+
459
502
  pagerMethods = {
460
- dispatchEvent (type, params, evnt) {
461
- emit(type, createEvent(evnt, { $pager: $xePager }, params))
462
- },
503
+ dispatchEvent,
463
504
  homePage () {
464
505
  handleHomePage()
465
506
  return nextTick()
@@ -118,7 +118,7 @@ export default defineComponent({
118
118
  emitInputEvent(value, evnt)
119
119
  }
120
120
 
121
- const emitModel = (value: string, evnt: Event | { type: string }) => {
121
+ const handleChange = (value: string, evnt: Event | { type: string }) => {
122
122
  reactData.inputValue = value
123
123
  emit('update:modelValue', value)
124
124
  passwordInputMethods.dispatchEvent('input', { value }, evnt as any)
@@ -165,7 +165,7 @@ export default defineComponent({
165
165
 
166
166
  const clearValueEvent = (evnt: Event, value: VxePasswordInputPropTypes.ModelValue) => {
167
167
  focus()
168
- emitModel('', evnt)
168
+ handleChange('', evnt)
169
169
  passwordInputMethods.dispatchEvent('clear', { value }, evnt)
170
170
  }
171
171
 
@@ -1,15 +1,16 @@
1
1
  import { defineComponent, ref, h, reactive, inject, onMounted, onUnmounted, createCommentVNode } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
+ import { createEvent } from '../../ui'
3
4
  import { assemblePageBreak, destroyPageBreak } from './util'
4
5
 
5
- import type { PrintPageBreakReactData, PrintPageBreakPrivateRef, VxePrintPageBreakEmits, VxePrintDefines, VxePrintPageBreakPrivateComputed, VxePrintConstructor, VxePrintPrivateMethods, VxePrintPageBreakConstructor, VxePrintPageBreakPrivateMethods } from '../../../types'
6
+ import type { PrintPageBreakReactData, PrintPageBreakPrivateRef, ValueOf, PrintPageBreakPrivateMethods, PrintPageBreakMethods, VxePrintPageBreakEmits, VxePrintDefines, VxePrintPageBreakPrivateComputed, VxePrintConstructor, VxePrintPrivateMethods, VxePrintPageBreakConstructor, VxePrintPageBreakPrivateMethods } from '../../../types'
6
7
 
7
8
  export default defineComponent({
8
9
  name: 'VxePrintPageBreak',
9
10
  props: {},
10
11
  emits: [] as VxePrintPageBreakEmits,
11
12
  setup (props, context) {
12
- const { slots } = context
13
+ const { slots, emit } = context
13
14
 
14
15
  const xID = XEUtils.uniqueId()
15
16
  const $xePrint = inject<(VxePrintConstructor & VxePrintPrivateMethods) | null>('$xePrint', null)
@@ -41,6 +42,19 @@ export default defineComponent({
41
42
  getComputeMaps: () => computeMaps
42
43
  } as unknown as VxePrintPageBreakConstructor & VxePrintPageBreakPrivateMethods
43
44
 
45
+ const dispatchEvent = (type: ValueOf<VxePrintPageBreakEmits>, params: Record<string, any>, evnt: Event | null) => {
46
+ emit(type, createEvent(evnt, { $print: $xePrint }, params))
47
+ }
48
+
49
+ const printPageBreakMethods: PrintPageBreakMethods = {
50
+ dispatchEvent
51
+ }
52
+
53
+ const printPageBreakPrivateMethods: PrintPageBreakPrivateMethods = {
54
+ }
55
+
56
+ Object.assign($xePrintPageBreak, printPageBreakMethods, printPageBreakPrivateMethods)
57
+
44
58
  if (!$xePrint) {
45
59
  $xePrintPageBreak.renderVN = () => {
46
60
  return createCommentVNode()
@@ -54,8 +68,6 @@ export default defineComponent({
54
68
  })
55
69
  }
56
70
 
57
- $xePrintPageBreak.renderVN = renderVN
58
-
59
71
  onMounted(() => {
60
72
  const elem = refElem.value
61
73
  if ($xePrint && elem) {
@@ -69,6 +81,8 @@ export default defineComponent({
69
81
  }
70
82
  })
71
83
 
84
+ $xePrintPageBreak.renderVN = renderVN
85
+
72
86
  return $xePrintPageBreak
73
87
  },
74
88
  render () {
@@ -4,7 +4,7 @@ import { getConfig, createEvent } from '../../ui'
4
4
  import { printHtml } from './util'
5
5
  import { getSlotVNs } from '../..//ui/src/vn'
6
6
 
7
- import type { VxePrintPropTypes, PrintReactData, PrintPrivateRef, VxePrintEmits, VxePrintPrivateComputed, VxePrintConstructor, VxePrintPrivateMethods, PrintMethods } from '../../../types'
7
+ import type { VxePrintPropTypes, PrintReactData, PrintPrivateRef, VxePrintEmits, PrintPrivateMethods, ValueOf, VxePrintPrivateComputed, VxePrintConstructor, VxePrintPrivateMethods, PrintMethods } from '../../../types'
8
8
 
9
9
  export default defineComponent({
10
10
  name: 'VxePrint',
@@ -73,10 +73,12 @@ export default defineComponent({
73
73
  getComputeMaps: () => computeMaps
74
74
  } as unknown as VxePrintConstructor & VxePrintPrivateMethods
75
75
 
76
+ const dispatchEvent = (type: ValueOf<VxePrintEmits>, params: Record<string, any>, evnt: Event | null) => {
77
+ emit(type, createEvent(evnt, { $print: $xePrint }, params))
78
+ }
79
+
76
80
  const printMethods: PrintMethods = {
77
- dispatchEvent (type, params, evnt) {
78
- emit(type, createEvent(evnt, { $print: $xePrint }, params))
79
- },
81
+ dispatchEvent,
80
82
  print () {
81
83
  const elem = refElem.value
82
84
  return printHtml(Object.assign({}, props, {
@@ -86,7 +88,10 @@ export default defineComponent({
86
88
  }
87
89
  }
88
90
 
89
- Object.assign($xePrint, printMethods)
91
+ const printPrivateMethods: PrintPrivateMethods = {
92
+ }
93
+
94
+ Object.assign($xePrint, printMethods, printPrivateMethods)
90
95
 
91
96
  const renderPageConfigLayouts = () => {
92
97
  const { title, showPageNumber, showAllPageTitle, align, headerAlign, footerAlign } = props
@@ -132,10 +132,13 @@ export default defineComponent({
132
132
  : []))
133
133
  }
134
134
 
135
- $xeRadioGroup.renderVN = renderVN
136
-
137
135
  provide('$xeRadioGroup', $xeRadioGroup)
138
136
 
139
- return renderVN
137
+ $xeRadioGroup.renderVN = renderVN
138
+
139
+ return $xeRadioGroup
140
+ },
141
+ render () {
142
+ return this.renderVN()
140
143
  }
141
144
  })
@@ -106,10 +106,10 @@ export default defineComponent({
106
106
  }, defaultSlot ? defaultSlot({}) : [])
107
107
  }
108
108
 
109
- $xeRow.renderVN = renderVN
110
-
111
109
  provide('$xeRow', $xeRow)
112
110
 
111
+ $xeRow.renderVN = renderVN
112
+
113
113
  return $xeRow
114
114
  },
115
115
  render () {
@@ -1,45 +1,48 @@
1
1
  import { defineComponent, h, onUnmounted, provide, inject, ref, Ref, onMounted, PropType } from 'vue'
2
2
  import { XEOptionProvide, createOption, watchOption, destroyOption, assembleOption } from './util'
3
3
 
4
- import type { VxeSelectConstructor, VxeOptionPropTypes } from '../../../types'
4
+ import type { VxeSelectConstructor, VxeOptgroupEmits, VxeOptgroupPropTypes } from '../../../types'
5
5
 
6
6
  export default defineComponent({
7
7
  name: 'VxeOptgroup',
8
8
  props: {
9
9
  label: {
10
- type: [String, Number, Boolean] as PropType<VxeOptionPropTypes.Label>,
10
+ type: [String, Number, Boolean] as PropType<VxeOptgroupPropTypes.Label>,
11
11
  default: ''
12
12
  },
13
13
  visible: {
14
- type: Boolean as PropType<VxeOptionPropTypes.Visible>,
14
+ type: Boolean as PropType<VxeOptgroupPropTypes.Visible>,
15
15
  default: null
16
16
  },
17
- className: [String, Function] as PropType<VxeOptionPropTypes.ClassName>,
18
- disabled: Boolean as PropType<VxeOptionPropTypes.Disabled>
17
+ className: [String, Function] as PropType<VxeOptgroupPropTypes.ClassName>,
18
+ disabled: Boolean as PropType<VxeOptgroupPropTypes.Disabled>
19
19
  },
20
+ emits: [] as VxeOptgroupEmits,
20
21
  setup (props, { slots }) {
21
22
  const elem = ref() as Ref<HTMLDivElement>
22
23
  const $xeSelect = inject('$xeSelect', {} as VxeSelectConstructor)
23
- const option = createOption($xeSelect, props)
24
- const xeOption: XEOptionProvide = { option }
25
- option.options = []
24
+ const optionConfig = createOption($xeSelect, props)
25
+ const $xeOptgroup: XEOptionProvide = { optionConfig }
26
+ optionConfig.options = []
26
27
 
27
- provide('$xeOptgroup', xeOption)
28
+ provide('$xeOptgroup', $xeOptgroup)
28
29
 
29
- watchOption(props, option)
30
+ watchOption(props, optionConfig)
30
31
 
31
32
  onMounted(() => {
32
- assembleOption($xeSelect, elem.value, option)
33
+ const el = elem.value
34
+ assembleOption($xeSelect, el, optionConfig)
33
35
  })
34
36
 
35
37
  onUnmounted(() => {
36
- destroyOption($xeSelect, option)
38
+ destroyOption($xeSelect, optionConfig)
37
39
  })
38
40
 
39
41
  return () => {
42
+ const defaultSlot = slots.default
40
43
  return h('div', {
41
44
  ref: elem
42
- }, slots.default ? slots.default() : [])
45
+ }, defaultSlot ? defaultSlot({}) : [])
43
46
  }
44
47
  }
45
48
  })
@@ -1,12 +1,12 @@
1
1
  import { defineComponent, h, onUnmounted, inject, ref, Ref, onMounted, PropType } from 'vue'
2
2
  import { XEOptionProvide, createOption, watchOption, destroyOption, assembleOption } from './util'
3
3
 
4
- import type { VxeSelectConstructor, VxeOptionPropTypes } from '../../../types'
4
+ import type { VxeSelectConstructor, VxeOptionEmits, VxeOptionPropTypes } from '../../../types'
5
5
 
6
6
  export default defineComponent({
7
7
  name: 'VxeOption',
8
8
  props: {
9
- value: null,
9
+ value: [String, Number, Boolean] as PropType<VxeOptionPropTypes.Value>,
10
10
  label: {
11
11
  type: [String, Number, Boolean] as PropType<VxeOptionPropTypes.Label>,
12
12
  default: ''
@@ -18,21 +18,23 @@ export default defineComponent({
18
18
  className: [String, Function] as PropType<VxeOptionPropTypes.ClassName>,
19
19
  disabled: Boolean as PropType<VxeOptionPropTypes.Disabled>
20
20
  },
21
+ emits: [] as VxeOptionEmits,
21
22
  setup (props, { slots }) {
22
23
  const elem = ref() as Ref<HTMLDivElement>
23
24
  const $xeSelect = inject('$xeSelect', {} as VxeSelectConstructor)
24
- const optGroup = inject<XEOptionProvide | null>('$xeOptgroup', null)
25
- const option = createOption($xeSelect, props)
26
- option.slots = slots
25
+ const $xeOptgroup = inject<XEOptionProvide | null>('$xeOptgroup', null)
26
+ const optionConfig = createOption($xeSelect, props)
27
+ optionConfig.slots = slots
27
28
 
28
- watchOption(props, option)
29
+ watchOption(props, optionConfig)
29
30
 
30
31
  onMounted(() => {
31
- assembleOption($xeSelect, elem.value, option, optGroup)
32
+ const el = elem.value
33
+ assembleOption($xeSelect, el, optionConfig, $xeOptgroup)
32
34
  })
33
35
 
34
36
  onUnmounted(() => {
35
- destroyOption($xeSelect, option)
37
+ destroyOption($xeSelect, optionConfig)
36
38
  })
37
39
 
38
40
  return () => {