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.
- package/README.md +82 -1
- package/es/anchor/src/anchor-link.js +1 -1
- package/es/anchor/src/anchor.js +1 -1
- package/es/breadcrumb/src/breadcrumb.js +1 -1
- package/es/button/src/button-group.js +4 -1
- package/es/calendar/src/calendar.js +64 -32
- package/es/carousel/src/carousel-item.js +13 -3
- package/es/carousel/src/carousel.js +16 -8
- package/es/checkbox/src/checkbox.js +30 -14
- package/es/checkbox/src/group.js +17 -8
- package/es/collapse-pane/index.js +1 -1
- package/es/countdown/src/countdown.js +1 -1
- package/es/date-picker/src/date-picker.js +12 -12
- package/es/drawer/src/drawer.js +1 -1
- package/es/form/render/index.js +1 -2
- package/es/form/src/form-config-item.js +4 -3
- package/es/form/src/form-gather.js +5 -3
- package/es/form/src/form-item.js +15 -10
- package/es/form/src/form.js +11 -8
- package/es/form/src/render.js +2 -1
- package/es/form/src/util.js +2 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +22 -10
- package/es/image/src/group.js +4 -1
- package/es/image/src/preview.js +1 -1
- package/es/input/src/input.js +129 -65
- package/es/layout-aside/src/layout-aside.js +1 -1
- package/es/list/src/list.js +7 -5
- package/es/list-design/src/list-design.js +1 -1
- package/es/list-design/src/list-view.js +1 -1
- package/es/loading/src/loading.js +1 -1
- package/es/menu/src/menu.js +1 -1
- package/es/number-input/src/number-input.js +6 -6
- package/es/pager/src/pager.js +85 -45
- package/es/password-input/src/password-input.js +2 -2
- package/es/print/src/page-break.js +11 -2
- package/es/print/src/print.js +6 -4
- package/es/radio/src/group.js +5 -2
- package/es/row/src/row.js +1 -1
- package/es/select/src/optgroup.js +11 -8
- package/es/select/src/option.js +9 -7
- package/es/select/src/select.js +32 -29
- package/es/select/src/util.js +2 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tab-pane.js +13 -3
- package/es/tabs/src/tabs.js +57 -47
- package/es/textarea/src/textarea.js +4 -4
- package/es/tooltip/src/tooltip.js +1 -1
- package/es/tree/src/tree.js +6 -3
- package/es/tree-select/src/tree-select.js +16 -9
- package/es/ui/index.js +1 -7
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +5 -5
- package/lib/anchor/src/anchor-link.js +1 -1
- package/lib/anchor/src/anchor-link.min.js +1 -1
- package/lib/anchor/src/anchor.js +1 -1
- package/lib/anchor/src/anchor.min.js +1 -1
- package/lib/breadcrumb/src/breadcrumb.js +1 -1
- package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
- package/lib/button/src/button-group.js +4 -1
- package/lib/button/src/button-group.min.js +1 -1
- package/lib/calendar/src/calendar.js +42 -24
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/carousel/src/carousel-item.js +16 -3
- package/lib/carousel/src/carousel-item.min.js +1 -1
- package/lib/carousel/src/carousel.js +18 -8
- package/lib/carousel/src/carousel.min.js +1 -1
- package/lib/checkbox/src/checkbox.js +16 -12
- package/lib/checkbox/src/checkbox.min.js +1 -1
- package/lib/checkbox/src/group.js +10 -7
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/collapse-pane/index.js +1 -1
- package/lib/collapse-pane/index.min.js +1 -1
- package/lib/countdown/src/countdown.js +1 -1
- package/lib/countdown/src/countdown.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +12 -12
- package/lib/drawer/src/drawer.js +1 -1
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/form/render/index.js +1 -4
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/src/form-config-item.js +4 -5
- package/lib/form/src/form-config-item.min.js +1 -1
- package/lib/form/src/form-gather.js +11 -9
- package/lib/form/src/form-gather.min.js +1 -1
- package/lib/form/src/form-item.js +11 -12
- package/lib/form/src/form-item.min.js +1 -1
- package/lib/form/src/form.js +7 -7
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/render.js +2 -1
- package/lib/form/src/util.js +2 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +20 -11
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/image/src/group.js +4 -1
- package/lib/image/src/group.min.js +1 -1
- package/lib/image/src/preview.js +1 -1
- package/lib/image/src/preview.min.js +1 -1
- package/lib/index.umd.js +522 -377
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +77 -50
- package/lib/input/src/input.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +1 -1
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/list/src/list.js +9 -5
- package/lib/list/src/list.min.js +1 -1
- package/lib/list-design/src/list-design.js +1 -1
- package/lib/list-design/src/list-design.min.js +1 -1
- package/lib/list-design/src/list-view.js +1 -1
- package/lib/list-design/src/list-view.min.js +1 -1
- package/lib/loading/src/loading.js +1 -1
- package/lib/loading/src/loading.min.js +1 -1
- package/lib/menu/src/menu.js +1 -1
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/number-input/src/number-input.js +6 -6
- package/lib/pager/src/pager.js +40 -39
- package/lib/pager/src/pager.min.js +1 -1
- package/lib/password-input/src/password-input.js +2 -2
- package/lib/print/src/page-break.js +14 -2
- package/lib/print/src/page-break.min.js +1 -1
- package/lib/print/src/print.js +8 -6
- package/lib/print/src/print.min.js +1 -1
- package/lib/radio/src/group.js +5 -2
- package/lib/radio/src/group.min.js +1 -1
- package/lib/row/src/row.js +1 -1
- package/lib/row/src/row.min.js +1 -1
- package/lib/select/src/optgroup.js +12 -9
- package/lib/select/src/optgroup.min.js +1 -1
- package/lib/select/src/option.js +9 -7
- package/lib/select/src/option.min.js +1 -1
- package/lib/select/src/select.js +33 -32
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/src/util.js +2 -2
- package/lib/select/src/util.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tab-pane.js +16 -3
- package/lib/tabs/src/tab-pane.min.js +1 -1
- package/lib/tabs/src/tabs.js +62 -50
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/textarea/src/textarea.js +4 -4
- package/lib/tooltip/src/tooltip.js +1 -1
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/src/tree.js +2 -2
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +11 -7
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +3 -10
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +5 -5
- package/lib/upload/src/upload.min.js +1 -1
- package/package.json +2 -2
- package/packages/anchor/src/anchor-link.ts +2 -2
- package/packages/anchor/src/anchor.ts +2 -2
- package/packages/breadcrumb/src/breadcrumb.ts +2 -2
- package/packages/button/src/button-group.ts +4 -1
- package/packages/calendar/src/calendar.ts +67 -35
- package/packages/carousel/src/carousel-item.ts +19 -4
- package/packages/carousel/src/carousel.ts +19 -11
- package/packages/checkbox/src/checkbox.ts +34 -15
- package/packages/checkbox/src/group.ts +22 -10
- package/packages/collapse-pane/index.ts +1 -1
- package/packages/countdown/src/countdown.ts +2 -2
- package/packages/date-picker/src/date-picker.ts +12 -12
- package/packages/drawer/src/drawer.ts +2 -2
- package/packages/form/render/index.ts +1 -3
- package/packages/form/src/form-config-item.ts +4 -3
- package/packages/form/src/form-gather.ts +5 -3
- package/packages/form/src/form-item.ts +15 -10
- package/packages/form/src/form.ts +12 -10
- package/packages/form/src/render.ts +2 -1
- package/packages/form/src/util.ts +2 -1
- package/packages/icon-picker/src/icon-picker.ts +26 -13
- package/packages/image/src/group.ts +4 -1
- package/packages/image/src/preview.ts +2 -2
- package/packages/input/src/input.ts +133 -71
- package/packages/layout-aside/src/layout-aside.ts +2 -2
- package/packages/list/src/list.ts +12 -11
- package/packages/list-design/src/list-design.ts +2 -2
- package/packages/list-design/src/list-view.ts +2 -2
- package/packages/loading/src/loading.ts +2 -2
- package/packages/menu/src/menu.ts +2 -2
- package/packages/number-input/src/number-input.ts +6 -6
- package/packages/pager/src/pager.ts +91 -50
- package/packages/password-input/src/password-input.ts +2 -2
- package/packages/print/src/page-break.ts +18 -4
- package/packages/print/src/print.ts +10 -5
- package/packages/radio/src/group.ts +6 -3
- package/packages/row/src/row.ts +2 -2
- package/packages/select/src/optgroup.ts +16 -13
- package/packages/select/src/option.ts +10 -8
- package/packages/select/src/select.ts +42 -36
- package/packages/select/src/util.ts +3 -3
- package/packages/tabs/src/tab-pane.ts +20 -5
- package/packages/tabs/src/tabs.ts +59 -49
- package/packages/textarea/src/textarea.ts +4 -4
- package/packages/tooltip/src/tooltip.ts +2 -2
- package/packages/tree/src/tree.ts +7 -4
- package/packages/tree-select/src/tree-select.ts +20 -12
- package/packages/ui/index.ts +0 -7
- package/packages/upload/src/upload.ts +6 -6
- package/types/components/calendar.d.ts +6 -0
- package/types/components/carousel.d.ts +5 -0
- package/types/components/form.d.ts +4 -2
- package/types/components/icon-picker.d.ts +4 -0
- package/types/components/input.d.ts +9 -1
- package/types/components/list.d.ts +1 -0
- package/types/components/optgroup.d.ts +10 -4
- package/types/components/tabs.d.ts +4 -0
- package/types/components/toolbar.d.ts +5 -0
- package/types/components/tree-select.d.ts +4 -0
- package/types/ui/index.d.ts +0 -22
- /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
- /package/es/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/es/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
- /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
- /package/lib/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
|
@@ -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
|
-
}
|
|
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)
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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: {
|
|
13
|
+
size: {
|
|
14
|
+
type: String as PropType<VxePagerPropTypes.Size>,
|
|
15
|
+
default: () => getConfig().pager.size || getConfig().size
|
|
16
|
+
},
|
|
14
17
|
// 自定义布局
|
|
15
|
-
layouts: {
|
|
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: {
|
|
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: {
|
|
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: {
|
|
37
|
+
pagerCount: {
|
|
38
|
+
type: Number as PropType<VxePagerPropTypes.PagerCount>,
|
|
39
|
+
default: () => getConfig().pager.pagerCount || 7
|
|
40
|
+
},
|
|
26
41
|
// 每页大小选项列表
|
|
27
|
-
pageSizes: {
|
|
42
|
+
pageSizes: {
|
|
43
|
+
type: Array as PropType<VxePagerPropTypes.PageSizes>,
|
|
44
|
+
default: () => getConfig().pager.pageSizes || [10, 15, 20, 50, 100]
|
|
45
|
+
},
|
|
28
46
|
// 列对其方式
|
|
29
|
-
align: {
|
|
47
|
+
align: {
|
|
48
|
+
type: String as PropType<VxePagerPropTypes.Align>,
|
|
49
|
+
default: () => getConfig().pager.align
|
|
50
|
+
},
|
|
30
51
|
// 带边框
|
|
31
|
-
border: {
|
|
52
|
+
border: {
|
|
53
|
+
type: Boolean as PropType<VxePagerPropTypes.Border>,
|
|
54
|
+
default: () => getConfig().pager.border
|
|
55
|
+
},
|
|
32
56
|
// 带背景颜色
|
|
33
|
-
background: {
|
|
57
|
+
background: {
|
|
58
|
+
type: Boolean as PropType<VxePagerPropTypes.Background>,
|
|
59
|
+
default: () => getConfig().pager.background
|
|
60
|
+
},
|
|
34
61
|
// 配套的样式
|
|
35
|
-
perfect: {
|
|
62
|
+
perfect: {
|
|
63
|
+
type: Boolean as PropType<VxePagerPropTypes.Perfect>,
|
|
64
|
+
default: () => getConfig().pager.perfect
|
|
65
|
+
},
|
|
36
66
|
// 当只有一页时隐藏
|
|
37
|
-
autoHidden: {
|
|
38
|
-
|
|
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: {
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
137
|
+
$xeRadioGroup.renderVN = renderVN
|
|
138
|
+
|
|
139
|
+
return $xeRadioGroup
|
|
140
|
+
},
|
|
141
|
+
render () {
|
|
142
|
+
return this.renderVN()
|
|
140
143
|
}
|
|
141
144
|
})
|
package/packages/row/src/row.ts
CHANGED
|
@@ -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,
|
|
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<
|
|
10
|
+
type: [String, Number, Boolean] as PropType<VxeOptgroupPropTypes.Label>,
|
|
11
11
|
default: ''
|
|
12
12
|
},
|
|
13
13
|
visible: {
|
|
14
|
-
type: Boolean as PropType<
|
|
14
|
+
type: Boolean as PropType<VxeOptgroupPropTypes.Visible>,
|
|
15
15
|
default: null
|
|
16
16
|
},
|
|
17
|
-
className: [String, Function] as PropType<
|
|
18
|
-
disabled: Boolean as PropType<
|
|
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
|
|
24
|
-
const
|
|
25
|
-
|
|
24
|
+
const optionConfig = createOption($xeSelect, props)
|
|
25
|
+
const $xeOptgroup: XEOptionProvide = { optionConfig }
|
|
26
|
+
optionConfig.options = []
|
|
26
27
|
|
|
27
|
-
provide('$xeOptgroup',
|
|
28
|
+
provide('$xeOptgroup', $xeOptgroup)
|
|
28
29
|
|
|
29
|
-
watchOption(props,
|
|
30
|
+
watchOption(props, optionConfig)
|
|
30
31
|
|
|
31
32
|
onMounted(() => {
|
|
32
|
-
|
|
33
|
+
const el = elem.value
|
|
34
|
+
assembleOption($xeSelect, el, optionConfig)
|
|
33
35
|
})
|
|
34
36
|
|
|
35
37
|
onUnmounted(() => {
|
|
36
|
-
destroyOption($xeSelect,
|
|
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
|
-
},
|
|
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:
|
|
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
|
|
25
|
-
const
|
|
26
|
-
|
|
25
|
+
const $xeOptgroup = inject<XEOptionProvide | null>('$xeOptgroup', null)
|
|
26
|
+
const optionConfig = createOption($xeSelect, props)
|
|
27
|
+
optionConfig.slots = slots
|
|
27
28
|
|
|
28
|
-
watchOption(props,
|
|
29
|
+
watchOption(props, optionConfig)
|
|
29
30
|
|
|
30
31
|
onMounted(() => {
|
|
31
|
-
|
|
32
|
+
const el = elem.value
|
|
33
|
+
assembleOption($xeSelect, el, optionConfig, $xeOptgroup)
|
|
32
34
|
})
|
|
33
35
|
|
|
34
36
|
onUnmounted(() => {
|
|
35
|
-
destroyOption($xeSelect,
|
|
37
|
+
destroyOption($xeSelect, optionConfig)
|
|
36
38
|
})
|
|
37
39
|
|
|
38
40
|
return () => {
|