vxe-pc-ui 4.20.8 → 4.20.9
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/dist/all.esm.js +909 -818
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/card/src/card.js +8 -6
- package/es/drawer/src/drawer.js +7 -5
- package/es/icon/style.css +1 -1
- package/es/layout-aside/src/layout-aside.js +6 -4
- package/es/layout-body/src/layout-body.js +6 -4
- package/es/layout-container/src/layout-container.js +11 -3
- package/es/list/src/list.js +79 -50
- package/es/menu/src/menu.js +7 -5
- package/es/modal/src/modal.js +7 -5
- package/es/scrollbar/src/scrollbar.js +8 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +5 -4
- package/es/tooltip/src/tooltip.js +9 -5
- package/es/tree/src/tree.js +74 -45
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/card/src/card.js +9 -6
- package/lib/card/src/card.min.js +1 -1
- package/lib/drawer/src/drawer.js +7 -4
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +267 -134
- package/lib/index.umd.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +7 -4
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +7 -4
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/layout-container/src/layout-container.js +20 -4
- package/lib/layout-container/src/layout-container.min.js +1 -1
- package/lib/list/src/list.js +79 -47
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +8 -4
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +7 -4
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +8 -0
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +6 -5
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +9 -4
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/src/tree.js +74 -43
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +1 -1
- 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/package.json +2 -2
- package/packages/card/src/card.ts +8 -6
- package/packages/drawer/src/drawer.ts +7 -5
- package/packages/layout-aside/src/layout-aside.ts +6 -4
- package/packages/layout-body/src/layout-body.ts +6 -4
- package/packages/layout-container/src/layout-container.ts +13 -3
- package/packages/list/src/list.ts +81 -50
- package/packages/menu/src/menu.ts +7 -5
- package/packages/modal/src/modal.ts +7 -5
- package/packages/scrollbar/src/scrollbar.ts +8 -1
- package/packages/tabs/src/tabs.ts +5 -4
- package/packages/tooltip/src/tooltip.ts +9 -5
- package/packages/tree/src/tree.ts +76 -45
- package/types/components/card.d.ts +2 -2
- package/types/components/drawer.d.ts +2 -2
- package/types/components/grid.d.ts +3 -1
- package/types/components/layout-aside.d.ts +2 -2
- package/types/components/layout-body.d.ts +2 -2
- package/types/components/layout-container.d.ts +3 -1
- package/types/components/list.d.ts +2 -2
- package/types/components/menu.d.ts +2 -2
- package/types/components/modal.d.ts +2 -2
- package/types/components/scrollbar.d.ts +10 -0
- package/types/components/table.d.ts +9 -5
- package/types/components/tabs.d.ts +2 -2
- package/types/components/tooltip.d.ts +2 -2
- package/types/components/tree.d.ts +2 -2
- /package/es/icon/{iconfont.1792115566662.ttf → iconfont.1792139440389.ttf} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff → iconfont.1792139440389.woff} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff2 → iconfont.1792139440389.woff2} +0 -0
- /package/es/{iconfont.1792115566662.ttf → iconfont.1792139440389.ttf} +0 -0
- /package/es/{iconfont.1792115566662.woff → iconfont.1792139440389.woff} +0 -0
- /package/es/{iconfont.1792115566662.woff2 → iconfont.1792139440389.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.ttf → iconfont.1792139440389.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff → iconfont.1792139440389.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff2 → iconfont.1792139440389.woff2} +0 -0
- /package/lib/{iconfont.1792115566662.ttf → iconfont.1792139440389.ttf} +0 -0
- /package/lib/{iconfont.1792115566662.woff → iconfont.1792139440389.woff} +0 -0
- /package/lib/{iconfont.1792115566662.woff2 → iconfont.1792139440389.woff2} +0 -0
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { ref, h, reactive, PropType } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
|
-
import {
|
|
3
|
+
import { VxeUI, useFns } from '../../ui'
|
|
4
4
|
import XEUtils from 'xe-utils'
|
|
5
5
|
|
|
6
6
|
import type { VxeLayoutContainerPropTypes, LayoutContainerReactData, LayoutContainerPrivateMethods, VxeLayoutContainerEmits, LayoutContainerMethods, LayoutContainerPrivateRef, VxeLayoutContainerPrivateComputed, VxeLayoutContainerConstructor, VxeLayoutContainerPrivateMethods, ValueOf } from '../../../types'
|
|
7
7
|
|
|
8
|
+
const { getConfig, baseUtils, createEvent } = VxeUI
|
|
9
|
+
|
|
10
|
+
const { getDefVal } = baseUtils
|
|
11
|
+
|
|
8
12
|
export default defineVxeComponent({
|
|
9
13
|
name: 'VxeLayoutContainer',
|
|
10
14
|
props: {
|
|
11
15
|
vertical: Boolean as PropType<VxeLayoutContainerPropTypes.Vertical>,
|
|
16
|
+
useScrollbar: {
|
|
17
|
+
type: Boolean as PropType<VxeLayoutContainerPropTypes.UseScrollbar>,
|
|
18
|
+
default: () => getDefVal(getConfig().layoutContainer.useScrollbar, getConfig().useScrollbar)
|
|
19
|
+
},
|
|
12
20
|
size: {
|
|
13
21
|
type: String as PropType<VxeLayoutContainerPropTypes.Size>,
|
|
14
22
|
default: () => getConfig().layoutContainer.size || getConfig().size
|
|
@@ -22,7 +30,8 @@ export default defineVxeComponent({
|
|
|
22
30
|
|
|
23
31
|
const refElem = ref<HTMLDivElement>()
|
|
24
32
|
|
|
25
|
-
const { computeSize } = useSize(props)
|
|
33
|
+
const { computeSize } = useFns.useSize(props)
|
|
34
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props)
|
|
26
35
|
|
|
27
36
|
const reactData = reactive<LayoutContainerReactData>({
|
|
28
37
|
})
|
|
@@ -32,7 +41,8 @@ export default defineVxeComponent({
|
|
|
32
41
|
}
|
|
33
42
|
|
|
34
43
|
const computeMaps: VxeLayoutContainerPrivateComputed = {
|
|
35
|
-
computeSize
|
|
44
|
+
computeSize,
|
|
45
|
+
computeIsVScrollbar
|
|
36
46
|
}
|
|
37
47
|
|
|
38
48
|
const $xeLayoutContainer = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h, PropType, ref, Ref, computed, onBeforeUnmount, watch, reactive, nextTick, onActivated, onMounted, VNode } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
-
import { VxeUI,
|
|
4
|
+
import { VxeUI, createEvent, renderEmptyElement } from '../../ui'
|
|
5
5
|
import { getCrossListDragRowInfo } from './store'
|
|
6
6
|
import { isScale, removeClass, addClass, getTpImg, toCssUnit, hasClass } from '../../ui/src/dom'
|
|
7
7
|
import { isEnableConf, getText, enModelValue, deModelValue, getDefaultConfig } from '../../ui/src/utils'
|
|
@@ -12,7 +12,7 @@ import VxeLoadingComponent from '../../loading'
|
|
|
12
12
|
|
|
13
13
|
import type { VxeListConstructor, VxeListPropTypes, VxeListEmits, ListReactData, VxeListPrivateMethods, ListInternalData, VxeListDefines, ValueOf, ListMethods, ListPrivateMethods, ListPrivateRef, VxeComponentStyleType } from '../../../types'
|
|
14
14
|
|
|
15
|
-
const { getConfig, getIcon, getI18n, domUtils, scrollbarUtils, menus, globalEvents, globalResize } = VxeUI
|
|
15
|
+
const { getConfig, getIcon, getI18n, domUtils, scrollbarUtils, useFns, menus, globalEvents, globalResize } = VxeUI
|
|
16
16
|
|
|
17
17
|
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
18
18
|
|
|
@@ -167,7 +167,8 @@ export default defineVxeComponent({
|
|
|
167
167
|
|
|
168
168
|
const browseObj = XEUtils.browse()
|
|
169
169
|
|
|
170
|
-
const { computeSize } = useSize(props)
|
|
170
|
+
const { computeSize } = useFns.useSize(props)
|
|
171
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props)
|
|
171
172
|
|
|
172
173
|
const reactData = reactive(createReactData())
|
|
173
174
|
|
|
@@ -179,6 +180,7 @@ export default defineVxeComponent({
|
|
|
179
180
|
const refHeaderElem = ref() as Ref<HTMLDivElement>
|
|
180
181
|
const refFooterElem = ref() as Ref<HTMLDivElement>
|
|
181
182
|
const refVirtualWrapper = ref() as Ref<HTMLDivElement>
|
|
183
|
+
const refVirtualSpaceElem = ref() as Ref<HTMLDivElement>
|
|
182
184
|
const refVirtualBody = ref() as Ref<HTMLDivElement>
|
|
183
185
|
|
|
184
186
|
const refTrackXElem = ref<HTMLDivElement>()
|
|
@@ -521,7 +523,6 @@ export default defineVxeComponent({
|
|
|
521
523
|
*/
|
|
522
524
|
const refreshScroll = () => {
|
|
523
525
|
const { lastScrollLeft, lastScrollTop } = internalData
|
|
524
|
-
updateScrollbar()
|
|
525
526
|
return clearScroll().then(() => {
|
|
526
527
|
if (lastScrollLeft || lastScrollTop) {
|
|
527
528
|
internalData.lastScrollLeft = 0
|
|
@@ -532,8 +533,14 @@ export default defineVxeComponent({
|
|
|
532
533
|
}
|
|
533
534
|
|
|
534
535
|
const updateScrollbar = () => {
|
|
535
|
-
|
|
536
|
-
|
|
536
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
537
|
+
if (isVScrollbar) {
|
|
538
|
+
return nextTick().then(() => {
|
|
539
|
+
updateThumbSize()
|
|
540
|
+
updateThumbOffset()
|
|
541
|
+
})
|
|
542
|
+
}
|
|
543
|
+
return Promise.resolve()
|
|
537
544
|
}
|
|
538
545
|
|
|
539
546
|
/**
|
|
@@ -553,10 +560,11 @@ export default defineVxeComponent({
|
|
|
553
560
|
parentHeight = parentEl.clientHeight - Math.ceil(XEUtils.toNumber(parentStyle.paddingLeft) + XEUtils.toNumber(parentStyle.paddingRight))
|
|
554
561
|
}
|
|
555
562
|
reactData.parentHeight = parentHeight
|
|
556
|
-
updateScrollbar()
|
|
557
563
|
updateHeight()
|
|
558
564
|
if (el.clientWidth && el.clientHeight) {
|
|
559
|
-
return computeScrollLoad()
|
|
565
|
+
return computeScrollLoad().then(() => {
|
|
566
|
+
updateScrollbar()
|
|
567
|
+
})
|
|
560
568
|
}
|
|
561
569
|
}
|
|
562
570
|
return nextTick()
|
|
@@ -565,7 +573,7 @@ export default defineVxeComponent({
|
|
|
565
573
|
const loadYData = (evnt: Event) => {
|
|
566
574
|
const { scrollYStore } = internalData
|
|
567
575
|
const { startIndex, endIndex, visibleSize, offsetSize, rowHeight } = scrollYStore
|
|
568
|
-
const scrollBodyElem = evnt.
|
|
576
|
+
const scrollBodyElem = evnt.currentTarget as HTMLDivElement
|
|
569
577
|
const scrollTop = scrollBodyElem.scrollTop
|
|
570
578
|
const toVisibleIndex = Math.floor(scrollTop / rowHeight)
|
|
571
579
|
const offsetStartIndex = Math.max(0, toVisibleIndex - 1 - offsetSize)
|
|
@@ -580,7 +588,7 @@ export default defineVxeComponent({
|
|
|
580
588
|
}
|
|
581
589
|
|
|
582
590
|
const scrollEvent = (evnt: Event) => {
|
|
583
|
-
const scrollBodyElem = evnt.
|
|
591
|
+
const scrollBodyElem = evnt.currentTarget as HTMLDivElement
|
|
584
592
|
const scrollTop = scrollBodyElem.scrollTop
|
|
585
593
|
const scrollLeft = scrollBodyElem.scrollLeft
|
|
586
594
|
const isX = scrollLeft !== internalData.lastScrollLeft
|
|
@@ -1940,6 +1948,27 @@ export default defineVxeComponent({
|
|
|
1940
1948
|
}
|
|
1941
1949
|
}
|
|
1942
1950
|
|
|
1951
|
+
const bindScrollbarResize = () => {
|
|
1952
|
+
const { scrollObserver } = internalData
|
|
1953
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
1954
|
+
if (isVScrollbar) {
|
|
1955
|
+
if (!scrollObserver) {
|
|
1956
|
+
const el = refElem.value
|
|
1957
|
+
const viewInnerEl = refVirtualSpaceElem.value
|
|
1958
|
+
const scrollObserver = globalResize.create(() => {
|
|
1959
|
+
reScrollFlag.value++
|
|
1960
|
+
})
|
|
1961
|
+
if (el) {
|
|
1962
|
+
scrollObserver.observe(el)
|
|
1963
|
+
}
|
|
1964
|
+
if (viewInnerEl) {
|
|
1965
|
+
scrollObserver.observe(viewInnerEl)
|
|
1966
|
+
}
|
|
1967
|
+
internalData.scrollObserver = scrollObserver
|
|
1968
|
+
}
|
|
1969
|
+
}
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1943
1972
|
const updateThumbSize = () => {
|
|
1944
1973
|
const viewEl = refVirtualWrapper.value
|
|
1945
1974
|
if (!viewEl) {
|
|
@@ -2348,12 +2377,13 @@ export default defineVxeComponent({
|
|
|
2348
2377
|
}
|
|
2349
2378
|
|
|
2350
2379
|
const renderVN = () => {
|
|
2351
|
-
const { showCheckbox, className, loading
|
|
2380
|
+
const { showCheckbox, className, loading } = props
|
|
2352
2381
|
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData
|
|
2353
2382
|
const defaultSlot = slots.default
|
|
2354
2383
|
const headerSlot = slots.header
|
|
2355
2384
|
const footerSlot = slots.footer
|
|
2356
2385
|
const vSize = computeSize.value
|
|
2386
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
2357
2387
|
const wrapperStyles = computeWrapperStyles.value
|
|
2358
2388
|
const virtualStyles = computeVirtualStyles.value
|
|
2359
2389
|
const radioOpts = computeRadioOpts.value
|
|
@@ -2384,17 +2414,17 @@ export default defineVxeComponent({
|
|
|
2384
2414
|
ref: refElem,
|
|
2385
2415
|
class: [
|
|
2386
2416
|
'vxe-list',
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2417
|
+
isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2418
|
+
isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2419
|
+
isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
|
|
2420
|
+
isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
|
|
2391
2421
|
className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
|
|
2392
2422
|
{
|
|
2393
2423
|
[`size--${vSize}`]: vSize,
|
|
2394
|
-
'is--virtual-scrollbar':
|
|
2395
|
-
'ov-padding':
|
|
2396
|
-
'ov-x--auto-hide':
|
|
2397
|
-
'ov-y--auto-hide':
|
|
2424
|
+
'is--virtual-scrollbar': isVScrollbar,
|
|
2425
|
+
'ov-padding': isVScrollbar && scrollbarOpts.padding,
|
|
2426
|
+
'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
|
|
2427
|
+
'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
|
|
2398
2428
|
'overflow-y': yThumbHeight,
|
|
2399
2429
|
'overflow-x': xThumbWidth,
|
|
2400
2430
|
'is--drag': isDrag,
|
|
@@ -2443,6 +2473,7 @@ export default defineVxeComponent({
|
|
|
2443
2473
|
onScroll: scrollEvent
|
|
2444
2474
|
}, [
|
|
2445
2475
|
h('div', {
|
|
2476
|
+
ref: refVirtualSpaceElem,
|
|
2446
2477
|
class: 'vxe-list--y-space',
|
|
2447
2478
|
style: {
|
|
2448
2479
|
height: bodyHeight ? `${bodyHeight}px` : ''
|
|
@@ -2471,7 +2502,7 @@ export default defineVxeComponent({
|
|
|
2471
2502
|
/**
|
|
2472
2503
|
* 滚动条
|
|
2473
2504
|
*/
|
|
2474
|
-
|
|
2505
|
+
isVScrollbar
|
|
2475
2506
|
? h('div', {
|
|
2476
2507
|
class: scrollbarWrapperClss
|
|
2477
2508
|
}, [
|
|
@@ -2536,44 +2567,56 @@ export default defineVxeComponent({
|
|
|
2536
2567
|
loadData(props.data || [])
|
|
2537
2568
|
})
|
|
2538
2569
|
|
|
2539
|
-
const
|
|
2570
|
+
const reScrollFlag = ref(0)
|
|
2571
|
+
const reLayoutFlag = ref(0)
|
|
2540
2572
|
watch(() => props.height, () => {
|
|
2541
|
-
|
|
2573
|
+
reLayoutFlag.value++
|
|
2542
2574
|
})
|
|
2543
2575
|
watch(() => props.maxHeight, () => {
|
|
2544
|
-
|
|
2576
|
+
reLayoutFlag.value++
|
|
2545
2577
|
})
|
|
2546
2578
|
watch(() => props.syncResize, () => {
|
|
2547
|
-
|
|
2579
|
+
reLayoutFlag.value++
|
|
2548
2580
|
})
|
|
2549
|
-
watch(
|
|
2550
|
-
|
|
2581
|
+
watch(computeIsVScrollbar, () => {
|
|
2582
|
+
nextTick(() => {
|
|
2583
|
+
bindScrollbarResize()
|
|
2584
|
+
nextTick(() => {
|
|
2585
|
+
reLayoutFlag.value++
|
|
2586
|
+
})
|
|
2587
|
+
})
|
|
2551
2588
|
})
|
|
2552
2589
|
watch(computeRowHeight, () => {
|
|
2553
|
-
|
|
2590
|
+
reLayoutFlag.value++
|
|
2554
2591
|
})
|
|
2555
2592
|
watch(computeScrollYWidth, () => {
|
|
2556
|
-
|
|
2593
|
+
reLayoutFlag.value++
|
|
2557
2594
|
})
|
|
2558
2595
|
watch(computeScrollXHeight, () => {
|
|
2559
|
-
|
|
2596
|
+
reLayoutFlag.value++
|
|
2560
2597
|
})
|
|
2561
2598
|
watch(computeScrollXVisible, () => {
|
|
2562
2599
|
nextTick(() => {
|
|
2563
|
-
|
|
2600
|
+
reLayoutFlag.value++
|
|
2564
2601
|
})
|
|
2565
2602
|
})
|
|
2566
2603
|
watch(computeScrollYVisible, () => {
|
|
2567
2604
|
nextTick(() => {
|
|
2568
|
-
|
|
2605
|
+
reLayoutFlag.value++
|
|
2569
2606
|
})
|
|
2570
2607
|
})
|
|
2571
|
-
watch(
|
|
2608
|
+
watch(reLayoutFlag, () => {
|
|
2572
2609
|
recalculate().then(() => {
|
|
2573
2610
|
recalculate()
|
|
2574
2611
|
})
|
|
2575
2612
|
})
|
|
2576
2613
|
|
|
2614
|
+
watch(reScrollFlag, () => {
|
|
2615
|
+
updateScrollbar().then(() => {
|
|
2616
|
+
updateScrollbar()
|
|
2617
|
+
})
|
|
2618
|
+
})
|
|
2619
|
+
|
|
2577
2620
|
watch(() => props.checkRowKey, () => {
|
|
2578
2621
|
updateRadioModeValue()
|
|
2579
2622
|
})
|
|
@@ -2600,7 +2643,7 @@ export default defineVxeComponent({
|
|
|
2600
2643
|
})
|
|
2601
2644
|
|
|
2602
2645
|
onMounted(() => {
|
|
2603
|
-
const { showSeq, showRadio, showCheckbox, autoResize
|
|
2646
|
+
const { showSeq, showRadio, showCheckbox, autoResize } = props
|
|
2604
2647
|
const rowOpts = computeRowOpts.value
|
|
2605
2648
|
const { useKey } = rowOpts
|
|
2606
2649
|
|
|
@@ -2623,25 +2666,12 @@ export default defineVxeComponent({
|
|
|
2623
2666
|
if (useKey && !keyField) {
|
|
2624
2667
|
errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField'])
|
|
2625
2668
|
}
|
|
2626
|
-
const el = refElem.value
|
|
2627
|
-
if (useScrollbar) {
|
|
2628
|
-
const viewInnerEl = refVirtualBody.value
|
|
2629
|
-
const scrollObserver = globalResize.create(() => {
|
|
2630
|
-
reFlag.value++
|
|
2631
|
-
})
|
|
2632
|
-
if (el) {
|
|
2633
|
-
scrollObserver.observe(el)
|
|
2634
|
-
}
|
|
2635
|
-
if (viewInnerEl) {
|
|
2636
|
-
scrollObserver.observe(viewInnerEl)
|
|
2637
|
-
}
|
|
2638
|
-
internalData.scrollObserver = scrollObserver
|
|
2639
|
-
}
|
|
2640
2669
|
if (autoResize) {
|
|
2670
|
+
const el = refElem.value
|
|
2641
2671
|
const parentEl = getParentElem()
|
|
2642
2672
|
const resizeObserver = globalResize.create(() => {
|
|
2643
2673
|
if (props.autoResize) {
|
|
2644
|
-
|
|
2674
|
+
reLayoutFlag.value++
|
|
2645
2675
|
}
|
|
2646
2676
|
})
|
|
2647
2677
|
if (el) {
|
|
@@ -2652,9 +2682,10 @@ export default defineVxeComponent({
|
|
|
2652
2682
|
}
|
|
2653
2683
|
internalData.resizeObserver = resizeObserver
|
|
2654
2684
|
}
|
|
2655
|
-
|
|
2685
|
+
reLayoutFlag.value++
|
|
2686
|
+
bindScrollbarResize()
|
|
2656
2687
|
globalEvents.on($xeList, 'resize', () => {
|
|
2657
|
-
|
|
2688
|
+
reLayoutFlag.value++
|
|
2658
2689
|
})
|
|
2659
2690
|
})
|
|
2660
2691
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, h, reactive, Teleport, PropType, inject, resolveComponent, watch, VNode, computed, nextTick, onBeforeUnmount, onMounted } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
-
import { VxeUI, createEvent, permission,
|
|
4
|
+
import { VxeUI, createEvent, permission, globalEvents, renderEmptyElement } from '../../ui'
|
|
5
5
|
import { getPopupContainer, scrollToView, toCssUnit } from '../../ui/src/dom'
|
|
6
6
|
import { getLastZIndex, nextZIndex, isEnableConf, getDefaultConfig } from '../../ui/src/utils'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
@@ -13,7 +13,7 @@ import type { VxeMenuDefines, VxeMenuPropTypes, MenuInternalData, MenuReactData,
|
|
|
13
13
|
|
|
14
14
|
const { errLog } = createComponentLog('menu')
|
|
15
15
|
|
|
16
|
-
const { menus, getConfig, getIcon } = VxeUI
|
|
16
|
+
const { menus, useFns, getConfig, getIcon } = VxeUI
|
|
17
17
|
|
|
18
18
|
function createInternalData (): MenuInternalData {
|
|
19
19
|
return {
|
|
@@ -100,7 +100,8 @@ export default defineVxeComponent({
|
|
|
100
100
|
const refCollapseBodyElem = ref<HTMLDivElement>()
|
|
101
101
|
const refCollapseBodyScrollbar = ref<VxeScrollbarInstance>()
|
|
102
102
|
|
|
103
|
-
const { computeSize } = useSize(props)
|
|
103
|
+
const { computeSize } = useFns.useSize(props)
|
|
104
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props)
|
|
104
105
|
|
|
105
106
|
const reactData = reactive(createReactData())
|
|
106
107
|
const internalData = createInternalData()
|
|
@@ -701,9 +702,10 @@ export default defineVxeComponent({
|
|
|
701
702
|
}
|
|
702
703
|
|
|
703
704
|
const renderVN = () => {
|
|
704
|
-
const { loading, collapseFixed, appendTo
|
|
705
|
+
const { loading, collapseFixed, appendTo } = props
|
|
705
706
|
const { initialized, menuList, collapseStyle, isEnterCollapse } = reactData
|
|
706
707
|
const vSize = computeSize.value
|
|
708
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
707
709
|
const isCollapsed = computeIsCollapsed.value
|
|
708
710
|
const currBorder = computeCurrBorder.value
|
|
709
711
|
const varStyle = computeVarStyle.value
|
|
@@ -762,7 +764,7 @@ export default defineVxeComponent({
|
|
|
762
764
|
class: 'vxe-menu--header'
|
|
763
765
|
}, headerSlot(stParams))
|
|
764
766
|
: renderEmptyElement($xeMenu),
|
|
765
|
-
|
|
767
|
+
isVScrollbar && isEnterCollapse
|
|
766
768
|
? h(VxeScrollbarComponent, {
|
|
767
769
|
ref: refCollapseBodyScrollbar,
|
|
768
770
|
class: 'vxe-menu--scrollbar-body',
|
|
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
|
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
4
|
import { getEventTargetNode, getPopupContainer, getPopupWrapperElement, isScale, toCssUnit } from '../../ui/src/dom'
|
|
5
5
|
import { getLastZIndex, nextZIndex, getSubLastZIndex, nextSubZIndex, getFuncText, handleBooleanDefaultValue, getDefaultConfig } from '../../ui/src/utils'
|
|
6
|
-
import { VxeUI, getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent,
|
|
6
|
+
import { VxeUI, getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, useFns, renderEmptyElement } from '../../ui'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
8
8
|
import { createComponentLog } from '../../ui/src/log'
|
|
9
9
|
import { allActiveModals } from './store'
|
|
@@ -266,7 +266,8 @@ export default defineVxeComponent({
|
|
|
266
266
|
const $xeTable = inject<(VxeTableConstructor & VxeTablePrivateMethods) | null>('$xeTable', null)
|
|
267
267
|
const $xeForm = inject<(VxeFormConstructor & VxeFormPrivateMethods)| null>('$xeForm', null)
|
|
268
268
|
|
|
269
|
-
const { computeSize } = useSize(props)
|
|
269
|
+
const { computeSize } = useFns.useSize(props)
|
|
270
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props)
|
|
270
271
|
|
|
271
272
|
const reactData = reactive(createReactData())
|
|
272
273
|
const internalData = createInternalData()
|
|
@@ -1398,8 +1399,9 @@ export default defineVxeComponent({
|
|
|
1398
1399
|
}
|
|
1399
1400
|
|
|
1400
1401
|
const renderBody = () => {
|
|
1401
|
-
const { slots: propSlots = {}, status, message, iconStatus,
|
|
1402
|
+
const { slots: propSlots = {}, status, message, iconStatus, useHtml } = props
|
|
1402
1403
|
const content = props.content || message
|
|
1404
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
1403
1405
|
const isMsg = computeIsMsg.value
|
|
1404
1406
|
const scrollbarProps = computeScrollbarProps.value
|
|
1405
1407
|
const defaultSlot = slots.default || propSlots.default
|
|
@@ -1420,7 +1422,7 @@ export default defineVxeComponent({
|
|
|
1420
1422
|
|
|
1421
1423
|
if (useHtml && !defaultSlot) {
|
|
1422
1424
|
contVNs.push(
|
|
1423
|
-
|
|
1425
|
+
isVScrollbar
|
|
1424
1426
|
? h(VxeScrollbarComponent, {
|
|
1425
1427
|
key: 'shc',
|
|
1426
1428
|
class: 'vxe-modal--scrollbar-content',
|
|
@@ -1443,7 +1445,7 @@ export default defineVxeComponent({
|
|
|
1443
1445
|
)
|
|
1444
1446
|
} else {
|
|
1445
1447
|
contVNs.push(
|
|
1446
|
-
|
|
1448
|
+
isVScrollbar
|
|
1447
1449
|
? h(VxeScrollbarComponent, {
|
|
1448
1450
|
key: 'sdc',
|
|
1449
1451
|
class: 'vxe-modal--scrollbar-content',
|
|
@@ -85,10 +85,18 @@ export default defineVxeComponent({
|
|
|
85
85
|
type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
|
|
86
86
|
default: () => getConfig().scrollbar.viewInnerClassName
|
|
87
87
|
},
|
|
88
|
+
/**
|
|
89
|
+
* 已废弃
|
|
90
|
+
* @deprecated
|
|
91
|
+
*/
|
|
88
92
|
autoResize: {
|
|
89
93
|
type: Boolean as PropType<VxeScrollbarPropTypes.AutoResize>,
|
|
90
94
|
default: () => getConfig().scrollbar.autoResize
|
|
91
95
|
},
|
|
96
|
+
/**
|
|
97
|
+
* 已废弃
|
|
98
|
+
* @deprecated
|
|
99
|
+
*/
|
|
92
100
|
syncResize: [Boolean, String, Number] as PropType<VxeScrollbarPropTypes.SyncResize>
|
|
93
101
|
},
|
|
94
102
|
emits: [
|
|
@@ -711,7 +719,6 @@ export default defineVxeComponent({
|
|
|
711
719
|
}
|
|
712
720
|
|
|
713
721
|
reFlag.value++
|
|
714
|
-
|
|
715
722
|
globalEvents.on($xeScrollbar, 'resize', () => {
|
|
716
723
|
reFlag.value++
|
|
717
724
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, h, reactive, inject, PropType, provide, computed, onUnmounted, watch, nextTick, onMounted } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
|
-
import { VxeUI,
|
|
3
|
+
import { VxeUI, useFns } from '../../ui'
|
|
4
4
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
5
5
|
import { toCssUnit, addClass, removeClass } from '../../ui/src/dom'
|
|
6
6
|
import { isEnableConf } from '../../ui/src/utils'
|
|
@@ -81,7 +81,8 @@ export default defineVxeComponent({
|
|
|
81
81
|
|
|
82
82
|
const $xeParentTabs = inject<(VxeTabsConstructor & VxeTabsPrivateMethods) | null>('$xeTabs', null)
|
|
83
83
|
|
|
84
|
-
const { computeSize } = useSize(props)
|
|
84
|
+
const { computeSize } = useFns.useSize(props)
|
|
85
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props)
|
|
85
86
|
|
|
86
87
|
const refElem = ref<HTMLDivElement>()
|
|
87
88
|
const refHeadWrapperElem = ref<HTMLDivElement>()
|
|
@@ -791,13 +792,13 @@ export default defineVxeComponent({
|
|
|
791
792
|
}
|
|
792
793
|
|
|
793
794
|
const renderTabPane = (item: VxeTabPaneProps | VxeTabPaneDefines.TabConfig) => {
|
|
794
|
-
const { useScrollbar } = props
|
|
795
795
|
const { initNames, activeName } = reactData
|
|
796
796
|
const { name, slots } = item
|
|
797
797
|
const defaultSlot = slots ? slots.default : null
|
|
798
798
|
const scrollbarProps = computeScrollbarProps.value
|
|
799
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
799
800
|
if (name && initNames.includes(name)) {
|
|
800
|
-
return
|
|
801
|
+
return isVScrollbar
|
|
801
802
|
? h(VxeScrollbarComponent, {
|
|
802
803
|
key: `${name}`,
|
|
803
804
|
class: ['vxe-tabs-pane--scrollbar-item', {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h, ref, nextTick, onBeforeUnmount, onMounted, computed, reactive, watch, PropType, VNode } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
-
import { VxeUI,
|
|
4
|
+
import { VxeUI, useFns } from '../../ui'
|
|
5
5
|
import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
|
|
6
6
|
import { getPopupAppendElement, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
@@ -137,7 +137,8 @@ export default defineVxeComponent({
|
|
|
137
137
|
|
|
138
138
|
const xID = XEUtils.uniqueId()
|
|
139
139
|
|
|
140
|
-
const { computeSize } = useSize(props)
|
|
140
|
+
const { computeSize } = useFns.useSize(props)
|
|
141
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props)
|
|
141
142
|
|
|
142
143
|
const reactData = reactive(createReactData())
|
|
143
144
|
|
|
@@ -402,7 +403,9 @@ export default defineVxeComponent({
|
|
|
402
403
|
return updateTipStyle().then(() => {
|
|
403
404
|
return updateTipStyle()
|
|
404
405
|
}).then(() => {
|
|
405
|
-
|
|
406
|
+
setTimeout(() => {
|
|
407
|
+
updateTipStyle()
|
|
408
|
+
}, 15)
|
|
406
409
|
})
|
|
407
410
|
},
|
|
408
411
|
isActived () {
|
|
@@ -434,8 +437,9 @@ export default defineVxeComponent({
|
|
|
434
437
|
Object.assign($xeTooltip, tooltipMethods, tooltipPrivateMethods)
|
|
435
438
|
|
|
436
439
|
const renderContent = () => {
|
|
437
|
-
const {
|
|
440
|
+
const { theme, useHtml, useHTML } = props
|
|
438
441
|
const { tipContent } = reactData
|
|
442
|
+
const isVScrollbar = computeIsVScrollbar.value
|
|
439
443
|
const wrapperStyle = computeWrapperStyle.value
|
|
440
444
|
const contentSlot = slots.content
|
|
441
445
|
const contVNs: VNode[] = []
|
|
@@ -457,7 +461,7 @@ export default defineVxeComponent({
|
|
|
457
461
|
key: 'cd'
|
|
458
462
|
}, `${tipContent}`))
|
|
459
463
|
}
|
|
460
|
-
if (
|
|
464
|
+
if (isVScrollbar) {
|
|
461
465
|
return h(VxeScrollbarComponent, {
|
|
462
466
|
key: 5,
|
|
463
467
|
ref: contentScrollbar,
|