vxe-pc-ui 4.20.8 → 4.20.10
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 +2041 -2125
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/card/src/card.js +8 -6
- package/es/date-panel/src/date-panel.js +58 -36
- package/es/date-panel/style.css +22 -20
- package/es/date-panel/style.min.css +1 -1
- package/es/drawer/src/drawer.js +7 -5
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +74 -38
- package/es/icon-picker/style.css +9 -3
- package/es/icon-picker/style.min.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 +81 -208
- package/es/menu/src/menu.js +7 -5
- package/es/modal/src/modal.js +7 -5
- package/es/scrollbar/src/scrollbar.js +28 -173
- package/es/select/src/select.js +243 -8
- package/es/select/style.css +44 -0
- package/es/select/style.min.css +1 -1
- 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 +7 -5
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +86 -212
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/style.css +22 -20
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +9 -3
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-select/style.css +44 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -0
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/card/src/card.js +9 -6
- package/lib/card/src/card.min.js +1 -1
- package/lib/date-panel/src/date-panel.js +56 -34
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/style/style.css +22 -20
- package/lib/date-panel/style/style.min.css +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/icon-picker/src/icon-picker.js +101 -45
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +9 -3
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +1049 -859
- 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 +95 -232
- 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 +42 -199
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +315 -68
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +44 -0
- package/lib/select/style/style.min.css +1 -1
- 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 +7 -4
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -0
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree/src/tree.js +101 -235
- 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/lib/vxe-date-panel/style/style.css +22 -20
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +9 -3
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +44 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -0
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/card/src/card.ts +8 -6
- package/packages/date-panel/src/date-panel.ts +58 -36
- package/packages/drawer/src/drawer.ts +7 -5
- package/packages/icon-picker/src/icon-picker.ts +80 -38
- 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 +98 -224
- package/packages/menu/src/menu.ts +7 -5
- package/packages/modal/src/modal.ts +7 -5
- package/packages/scrollbar/src/scrollbar.ts +44 -189
- package/packages/select/src/select.ts +278 -8
- package/packages/tabs/src/tabs.ts +5 -4
- package/packages/tooltip/src/tooltip.ts +7 -5
- package/packages/tree/src/tree.ts +103 -228
- package/styles/components/date-panel.scss +31 -29
- package/styles/components/icon-picker.scss +9 -3
- package/styles/components/select.scss +77 -0
- package/styles/components/tooltip.scss +1 -0
- package/types/components/card.d.ts +2 -2
- package/types/components/drawer.d.ts +2 -2
- package/types/components/gantt-module/gantt-view.d.ts +7 -16
- package/types/components/grid.d.ts +3 -1
- package/types/components/icon-picker.d.ts +21 -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 +6 -2
- package/types/components/menu.d.ts +2 -2
- package/types/components/modal.d.ts +2 -2
- package/types/components/scrollbar.d.ts +17 -14
- package/types/components/select.d.ts +28 -3
- package/types/components/table.d.ts +28 -22
- package/types/components/tabs.d.ts +2 -2
- package/types/components/tooltip.d.ts +2 -2
- package/types/components/tree.d.ts +8 -17
- /package/es/icon/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/icon/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/es/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { h, Teleport, ref, inject, watch, computed, provide, onBeforeUnmount, reactive, nextTick, onMounted } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import XEUtils from 'xe-utils';
|
|
4
|
-
import {
|
|
4
|
+
import { VxeUI } from '../../ui';
|
|
5
5
|
import { getEventTargetNode, getPopupContainer, toCssUnit, updatePanelPlacement } from '../../ui/src/dom';
|
|
6
6
|
import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils';
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
8
8
|
import VxeInputComponent from '../../input';
|
|
9
|
+
import VxeScrollbarComponent from '../../scrollbar';
|
|
10
|
+
const { getConfig, getIcon, getI18n, baseUtils, globalEvents, createEvent, renderer, useFns, GLOBAL_EVENT_KEYS, renderEmptyElement } = VxeUI;
|
|
11
|
+
const { getDefVal } = baseUtils;
|
|
9
12
|
function createReactData() {
|
|
10
13
|
return {
|
|
11
14
|
initialized: false,
|
|
@@ -66,7 +69,12 @@ export default defineVxeComponent({
|
|
|
66
69
|
transfer: {
|
|
67
70
|
type: Boolean,
|
|
68
71
|
default: null
|
|
69
|
-
}
|
|
72
|
+
},
|
|
73
|
+
useScrollbar: {
|
|
74
|
+
type: Boolean,
|
|
75
|
+
default: () => getDefVal(getConfig().iconPicker.useScrollbar, getConfig().useScrollbar)
|
|
76
|
+
},
|
|
77
|
+
scrollbarConfig: Object
|
|
70
78
|
},
|
|
71
79
|
emits: [
|
|
72
80
|
'update:modelValue',
|
|
@@ -82,7 +90,8 @@ export default defineVxeComponent({
|
|
|
82
90
|
const $xeForm = inject('$xeForm', null);
|
|
83
91
|
const formItemInfo = inject('xeFormItemInfo', null);
|
|
84
92
|
const xID = XEUtils.uniqueId();
|
|
85
|
-
const { computeSize } = useSize(props);
|
|
93
|
+
const { computeSize } = useFns.useSize(props);
|
|
94
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props);
|
|
86
95
|
const reactData = reactive(createReactData());
|
|
87
96
|
const internalData = createInternalData();
|
|
88
97
|
const refElem = ref();
|
|
@@ -200,6 +209,25 @@ export default defineVxeComponent({
|
|
|
200
209
|
const iconList = computeIconList.value;
|
|
201
210
|
return selectIcon ? iconList.find(item => item.icon === selectIcon) : null;
|
|
202
211
|
});
|
|
212
|
+
const computeScrollbarOpts = computed(() => {
|
|
213
|
+
return Object.assign({}, getConfig().iconPicker.scrollbarConfig, props.scrollbarConfig);
|
|
214
|
+
});
|
|
215
|
+
const computeScrollbarProps = computed(() => {
|
|
216
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
217
|
+
const { viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
218
|
+
return {
|
|
219
|
+
width: scrollbarOpts.width,
|
|
220
|
+
height: scrollbarOpts.height,
|
|
221
|
+
autoHide: scrollbarOpts.autoHide,
|
|
222
|
+
visible: scrollbarOpts.visible,
|
|
223
|
+
xConfig: scrollbarOpts.xConfig,
|
|
224
|
+
yConfig: scrollbarOpts.yConfig,
|
|
225
|
+
className: scrollbarOpts.className,
|
|
226
|
+
viewAttrs: scrollbarOpts.viewAttrs,
|
|
227
|
+
viewClassName: 'vxe-ico-picker--scrollbar-list-wrapper-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
228
|
+
viewInnerClassName: 'vxe-ico-picker--scrollbar-list-wrapper-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
|
|
229
|
+
};
|
|
230
|
+
});
|
|
203
231
|
const updateZindex = () => {
|
|
204
232
|
if (reactData.panelIndex < getLastZIndex()) {
|
|
205
233
|
reactData.panelIndex = nextZIndex();
|
|
@@ -486,51 +514,59 @@ export default defineVxeComponent({
|
|
|
486
514
|
const renderIconWrapper = () => {
|
|
487
515
|
const { showIconTitle } = props;
|
|
488
516
|
const { selectIcon, iconList } = reactData;
|
|
517
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
518
|
+
const scrollbarProps = computeScrollbarProps.value;
|
|
489
519
|
if (!iconList.length) {
|
|
490
520
|
return h('div', {
|
|
491
521
|
class: 'vxe-ico-picker--empty-placeholder'
|
|
492
522
|
}, getI18n('vxe.iconPicker.emptyText'));
|
|
493
523
|
}
|
|
524
|
+
const iconVNs = iconList.map(item => {
|
|
525
|
+
const { iconRender } = item;
|
|
526
|
+
const compConf = iconRender ? renderer.get(iconRender.name) : null;
|
|
527
|
+
const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
|
|
528
|
+
return h('div', {
|
|
529
|
+
class: ['vxe-ico-picker--item', {
|
|
530
|
+
'is--selected': selectIcon === item.icon
|
|
531
|
+
}]
|
|
532
|
+
}, [
|
|
533
|
+
h('div', {
|
|
534
|
+
class: 'vxe-ico-picker--item-inner',
|
|
535
|
+
onClick(evnt) {
|
|
536
|
+
const isDisabled = computeIsDisabled.value;
|
|
537
|
+
if (!isDisabled) {
|
|
538
|
+
handleClickIconEvent(evnt, item);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}, [
|
|
542
|
+
h('div', {
|
|
543
|
+
class: 'vxe-ico-picker--item-icon'
|
|
544
|
+
}, iconMethod && iconRender
|
|
545
|
+
? getSlotVNs(iconMethod(iconRender, { $iconPicker: $xeIconPicker, option: item }))
|
|
546
|
+
: [
|
|
547
|
+
h('i', {
|
|
548
|
+
class: item.icon || ''
|
|
549
|
+
})
|
|
550
|
+
]),
|
|
551
|
+
showIconTitle
|
|
552
|
+
? h('div', {
|
|
553
|
+
class: 'vxe-ico-picker--item-title'
|
|
554
|
+
}, `${item.title || ''}`)
|
|
555
|
+
: renderEmptyElement($xeIconPicker)
|
|
556
|
+
])
|
|
557
|
+
]);
|
|
558
|
+
});
|
|
559
|
+
if (isVScrollbar) {
|
|
560
|
+
return h(VxeScrollbarComponent, Object.assign({ class: 'vxe-ico-picker--scrollbar-list-wrapper' }, scrollbarProps), {
|
|
561
|
+
default: () => iconVNs
|
|
562
|
+
});
|
|
563
|
+
}
|
|
494
564
|
return h('div', {
|
|
495
565
|
class: 'vxe-ico-picker--list-wrapper'
|
|
496
566
|
}, [
|
|
497
567
|
h('div', {
|
|
498
568
|
class: 'vxe-ico-picker--list'
|
|
499
|
-
},
|
|
500
|
-
const { iconRender } = item;
|
|
501
|
-
const compConf = iconRender ? renderer.get(iconRender.name) : null;
|
|
502
|
-
const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
|
|
503
|
-
return h('div', {
|
|
504
|
-
class: ['vxe-ico-picker--item', {
|
|
505
|
-
'is--selected': selectIcon === item.icon
|
|
506
|
-
}]
|
|
507
|
-
}, [
|
|
508
|
-
h('div', {
|
|
509
|
-
class: 'vxe-ico-picker--item-inner',
|
|
510
|
-
onClick(evnt) {
|
|
511
|
-
const isDisabled = computeIsDisabled.value;
|
|
512
|
-
if (!isDisabled) {
|
|
513
|
-
handleClickIconEvent(evnt, item);
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
}, [
|
|
517
|
-
h('div', {
|
|
518
|
-
class: 'vxe-ico-picker--item-icon'
|
|
519
|
-
}, iconMethod && iconRender
|
|
520
|
-
? getSlotVNs(iconMethod(iconRender, { $iconPicker: $xeIconPicker, option: item }))
|
|
521
|
-
: [
|
|
522
|
-
h('i', {
|
|
523
|
-
class: item.icon || ''
|
|
524
|
-
})
|
|
525
|
-
]),
|
|
526
|
-
showIconTitle
|
|
527
|
-
? h('div', {
|
|
528
|
-
class: 'vxe-ico-picker--item-title'
|
|
529
|
-
}, `${item.title || ''}`)
|
|
530
|
-
: renderEmptyElement($xeIconPicker)
|
|
531
|
-
])
|
|
532
|
-
]);
|
|
533
|
-
}))
|
|
569
|
+
}, iconVNs)
|
|
534
570
|
]);
|
|
535
571
|
};
|
|
536
572
|
const renderIconView = () => {
|
package/es/icon-picker/style.css
CHANGED
|
@@ -121,15 +121,21 @@
|
|
|
121
121
|
color: var(--vxe-ui-font-primary-color);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
.vxe-ico-picker--list-wrapper
|
|
124
|
+
.vxe-ico-picker--list-wrapper,
|
|
125
|
+
.vxe-ico-picker--scrollbar-list-wrapper {
|
|
125
126
|
overflow-x: hidden;
|
|
126
127
|
overflow-y: auto;
|
|
127
128
|
height: var(--vxe-ui-icon-picker-panel-height);
|
|
128
|
-
max-height: var(--vxe-ui-icon-picker-panel-max-height, var(--vxe-ui-icon-picker-panel-height, 22.3em));
|
|
129
129
|
padding: var(--vxe-ui-layout-padding-qtr);
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
.vxe-ico-picker--list
|
|
132
|
+
.vxe-ico-picker--list-wrapper,
|
|
133
|
+
.vxe-ico-picker--scrollbar-list-wrapper-view {
|
|
134
|
+
max-height: var(--vxe-ui-icon-picker-panel-max-height, var(--vxe-ui-icon-picker-panel-height, 22.6em));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.vxe-ico-picker--list,
|
|
138
|
+
.vxe-ico-picker--scrollbar-list-wrapper-inner {
|
|
133
139
|
display: flex;
|
|
134
140
|
flex-direction: row;
|
|
135
141
|
flex-wrap: wrap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-ico-picker,.vxe-ico-picker--panel{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-default)}.vxe-ico-picker--panel.size--medium,.vxe-ico-picker.size--medium{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-medium)}.vxe-ico-picker--panel.size--small,.vxe-ico-picker.size--small{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-small)}.vxe-ico-picker--panel.size--mini,.vxe-ico-picker.size--mini{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-mini)}.vxe-ico-picker{position:relative;display:inline-block;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);width:100px;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color);height:var(--vxe-ui-ico-picker-current-height);line-height:var(--vxe-ui-ico-picker-current-height)}.vxe-ico-picker.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color);color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon{display:block}.vxe-ico-picker.is--active{border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--inner{display:flex;flex-direction:row;width:100%;padding:0 .5em}.vxe-ico-picker--input{position:absolute;z-index:-1;width:1px;height:1px;outline:0;border:0}.vxe-ico-picker--icon{flex-grow:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:left;padding:0 .5em}.vxe-ico-picker--icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--placeholder{flex-grow:1;color:var(--vxe-ui-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-ico-picker--suffix{display:flex;flex-direction:row;flex-shrink:0;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--suffix .vxe-ico-picker--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-ico-picker--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-ico-picker--panel-search .vxe-ico-picker-search--input{width:100%}.vxe-ico-picker--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-ico-picker--clear-icon{display:none;padding-right:.5em;height:100%;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-ico-picker--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--list-wrapper{overflow-x:hidden;overflow-y:auto;height:var(--vxe-ui-icon-picker-panel-height);max-height:var(--vxe-ui-icon-picker-panel-max-height,var(--vxe-ui-icon-picker-panel-height,22.
|
|
1
|
+
.vxe-ico-picker,.vxe-ico-picker--panel{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-default)}.vxe-ico-picker--panel.size--medium,.vxe-ico-picker.size--medium{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-medium)}.vxe-ico-picker--panel.size--small,.vxe-ico-picker.size--small{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-small)}.vxe-ico-picker--panel.size--mini,.vxe-ico-picker.size--mini{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-mini)}.vxe-ico-picker{position:relative;display:inline-block;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);width:100px;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color);height:var(--vxe-ui-ico-picker-current-height);line-height:var(--vxe-ui-ico-picker-current-height)}.vxe-ico-picker.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color);color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon{display:block}.vxe-ico-picker.is--active{border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--inner{display:flex;flex-direction:row;width:100%;padding:0 .5em}.vxe-ico-picker--input{position:absolute;z-index:-1;width:1px;height:1px;outline:0;border:0}.vxe-ico-picker--icon{flex-grow:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:left;padding:0 .5em}.vxe-ico-picker--icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--placeholder{flex-grow:1;color:var(--vxe-ui-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-ico-picker--suffix{display:flex;flex-direction:row;flex-shrink:0;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--suffix .vxe-ico-picker--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-ico-picker--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-ico-picker--panel-search .vxe-ico-picker-search--input{width:100%}.vxe-ico-picker--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-ico-picker--clear-icon{display:none;padding-right:.5em;height:100%;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-ico-picker--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--list-wrapper,.vxe-ico-picker--scrollbar-list-wrapper{overflow-x:hidden;overflow-y:auto;height:var(--vxe-ui-icon-picker-panel-height);padding:var(--vxe-ui-layout-padding-qtr)}.vxe-ico-picker--list-wrapper,.vxe-ico-picker--scrollbar-list-wrapper-view{max-height:var(--vxe-ui-icon-picker-panel-max-height,var(--vxe-ui-icon-picker-panel-height,22.6em))}.vxe-ico-picker--list,.vxe-ico-picker--scrollbar-list-wrapper-inner{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-ico-picker--item{display:flex;flex-direction:column;width:var(--vxe-ui-icon-picker-item-width,25%);padding:var(--vxe-ui-layout-padding-half)}.vxe-ico-picker--item .vxe-ico-picker--item-inner{padding:.2em;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);cursor:pointer}.vxe-ico-picker--item .vxe-ico-picker--item-inner:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-ico-picker--item.is--selected .vxe-ico-picker--item-inner{color:var(--vxe-ui-font-primary-color);border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--item-icon{flex-grow:1;display:flex;flex-direction:row;align-items:center;justify-content:center;height:1.5em;font-size:var(--vxe-ui-icon-picker-panel-icon-font-size)}.vxe-ico-picker--item-icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--item-title{padding:0 .2em;line-height:1.3em;flex-shrink:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}.vxe-ico-picker--item-icon,.vxe-ico-picker--item-title{width:100%}.vxe-ico-picker--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker--panel{display:none;position:absolute;left:0;padding:4px 0;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);text-align:left;width:20em}.vxe-ico-picker--panel:not(.is--transfer){min-width:100%}.vxe-ico-picker--panel.is--transfer{position:fixed}.vxe-ico-picker--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-ico-picker--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-ico-picker--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-ico-picker--empty-placeholder{display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0 .6em;text-align:center;min-height:4em}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, h, reactive, computed, provide } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import { toCssUnit } from '../../ui/src/dom';
|
|
4
|
-
import { getConfig,
|
|
4
|
+
import { getConfig, useFns, createEvent } from '../../ui';
|
|
5
5
|
import { getDefaultConfig } from '../../ui/src/utils';
|
|
6
6
|
import XEUtils from 'xe-utils';
|
|
7
7
|
import VxeLoadingComponent from '../../loading';
|
|
@@ -30,7 +30,8 @@ export default defineVxeComponent({
|
|
|
30
30
|
const { slots, emit } = context;
|
|
31
31
|
const xID = XEUtils.uniqueId();
|
|
32
32
|
const refElem = ref();
|
|
33
|
-
const { computeSize } = useSize(props);
|
|
33
|
+
const { computeSize } = useFns.useSize(props);
|
|
34
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props);
|
|
34
35
|
const reactData = reactive({});
|
|
35
36
|
const refMaps = {
|
|
36
37
|
refElem
|
|
@@ -73,9 +74,10 @@ export default defineVxeComponent({
|
|
|
73
74
|
const layoutAsidePrivateMethods = {};
|
|
74
75
|
Object.assign($xeLayoutAside, layoutAsideMethods, layoutAsidePrivateMethods);
|
|
75
76
|
const renderVN = () => {
|
|
76
|
-
const { collapsed, loading, padding
|
|
77
|
+
const { collapsed, loading, padding } = props;
|
|
77
78
|
const varStyle = computeVarStyle.value;
|
|
78
79
|
const vSize = computeSize.value;
|
|
80
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
79
81
|
const collapseOpts = computeCollapseOpts.value;
|
|
80
82
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
81
83
|
const { className, viewClassName, viewInnerClassName } = scrollbarOpts;
|
|
@@ -91,7 +93,7 @@ export default defineVxeComponent({
|
|
|
91
93
|
}],
|
|
92
94
|
style: varStyle
|
|
93
95
|
}, [
|
|
94
|
-
|
|
96
|
+
isVScrollbar
|
|
95
97
|
? h(VxeScrollbarComponent, {
|
|
96
98
|
width: scrollbarOpts.width,
|
|
97
99
|
height: scrollbarOpts.height,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, h, reactive, computed } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
|
-
import { getConfig,
|
|
3
|
+
import { getConfig, useFns, createEvent, renderEmptyElement } from '../../ui';
|
|
4
4
|
import XEUtils from 'xe-utils';
|
|
5
5
|
import { getDefaultConfig } from '../../ui/src/utils';
|
|
6
6
|
import VxeLoadingComponent from '../../loading';
|
|
@@ -38,7 +38,8 @@ export default defineVxeComponent({
|
|
|
38
38
|
const xID = XEUtils.uniqueId();
|
|
39
39
|
const backtopId = `vxe_layout_body_backtop_${xID}`;
|
|
40
40
|
const refElem = ref();
|
|
41
|
-
const { computeSize } = useSize(props);
|
|
41
|
+
const { computeSize } = useFns.useSize(props);
|
|
42
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props);
|
|
42
43
|
const internalData = createInternalData();
|
|
43
44
|
const reactData = reactive(createReactData());
|
|
44
45
|
const refMaps = {
|
|
@@ -90,7 +91,8 @@ export default defineVxeComponent({
|
|
|
90
91
|
const layoutBodyPrivateMethods = {};
|
|
91
92
|
Object.assign($xeLayoutBody, layoutBodyMethods, layoutBodyPrivateMethods);
|
|
92
93
|
const renderVN = () => {
|
|
93
|
-
const { loading, padding, showBacktop
|
|
94
|
+
const { loading, padding, showBacktop } = props;
|
|
95
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
94
96
|
const backtopOpts = computeBacktopOpts.value;
|
|
95
97
|
const scrollbarProps = computeScrollbarProps.value;
|
|
96
98
|
const vSize = computeSize.value;
|
|
@@ -116,7 +118,7 @@ export default defineVxeComponent({
|
|
|
116
118
|
'is--padding': padding
|
|
117
119
|
}]
|
|
118
120
|
}, [
|
|
119
|
-
|
|
121
|
+
isVScrollbar
|
|
120
122
|
? h(VxeScrollbarComponent, scrollbarProps, {
|
|
121
123
|
default: () => defaultSlot ? defaultSlot({}) : []
|
|
122
124
|
})
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ref, h, reactive } 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
|
+
const { getConfig, baseUtils, createEvent } = VxeUI;
|
|
6
|
+
const { getDefVal } = baseUtils;
|
|
5
7
|
export default defineVxeComponent({
|
|
6
8
|
name: 'VxeLayoutContainer',
|
|
7
9
|
props: {
|
|
8
10
|
vertical: Boolean,
|
|
11
|
+
useScrollbar: {
|
|
12
|
+
type: Boolean,
|
|
13
|
+
default: () => getDefVal(getConfig().layoutContainer.useScrollbar, getConfig().useScrollbar)
|
|
14
|
+
},
|
|
9
15
|
size: {
|
|
10
16
|
type: String,
|
|
11
17
|
default: () => getConfig().layoutContainer.size || getConfig().size
|
|
@@ -16,13 +22,15 @@ export default defineVxeComponent({
|
|
|
16
22
|
const { slots, emit } = context;
|
|
17
23
|
const xID = XEUtils.uniqueId();
|
|
18
24
|
const refElem = ref();
|
|
19
|
-
const { computeSize } = useSize(props);
|
|
25
|
+
const { computeSize } = useFns.useSize(props);
|
|
26
|
+
const { computeIsVScrollbar } = useFns.useVScrollbar(props);
|
|
20
27
|
const reactData = reactive({});
|
|
21
28
|
const refMaps = {
|
|
22
29
|
refElem
|
|
23
30
|
};
|
|
24
31
|
const computeMaps = {
|
|
25
|
-
computeSize
|
|
32
|
+
computeSize,
|
|
33
|
+
computeIsVScrollbar
|
|
26
34
|
};
|
|
27
35
|
const $xeLayoutContainer = {
|
|
28
36
|
xID,
|