vxe-pc-ui 4.1.19 → 4.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -2
- 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/button/src/button.js +2 -1
- package/es/calendar/src/calendar.js +64 -32
- package/es/card/src/card.js +4 -3
- 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 +17 -8
- package/es/date-picker/src/date-picker.js +148 -69
- package/es/drawer/src/drawer.js +86 -46
- 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/src/icon.js +3 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +24 -11
- package/es/image/src/group.js +4 -1
- package/es/image/src/preview.js +1 -1
- package/es/input/src/input.js +131 -66
- 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 +4 -1
- package/es/menu/src/menu.js +4 -3
- package/es/number-input/src/number-input.js +100 -77
- 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/pulldown/src/pulldown.js +19 -13
- package/es/radio/src/button.js +2 -2
- package/es/radio/src/group.js +8 -4
- package/es/row/src/row.js +1 -1
- package/es/select/src/optgroup.js +19 -10
- package/es/select/src/option.js +17 -9
- package/es/select/src/select.js +64 -41
- 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 +28 -10
- package/es/tooltip/src/tooltip.js +107 -78
- package/es/tree/src/tree.js +6 -3
- package/es/tree-select/src/tree-select.js +18 -10
- 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/button/src/button.js +2 -1
- package/lib/button/src/button.min.js +1 -1
- package/lib/calendar/src/calendar.js +42 -24
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/card/src/card.js +6 -5
- package/lib/card/src/card.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 +15 -7
- package/lib/countdown/src/countdown.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +124 -62
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/drawer/src/drawer.js +15 -30
- 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/src/icon.js +3 -0
- package/lib/icon/src/icon.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 +22 -12
- 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 +884 -649
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +79 -51
- 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 +4 -1
- package/lib/loading/src/loading.min.js +1 -1
- package/lib/menu/src/menu.js +4 -3
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/number-input/src/number-input.js +67 -69
- package/lib/number-input/src/number-input.min.js +1 -1
- 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/pulldown/src/pulldown.js +19 -13
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/radio/src/button.js +2 -2
- package/lib/radio/src/group.js +8 -4
- 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 +52 -41
- 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 +96 -88
- 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 +13 -8
- 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/button/src/button.ts +6 -5
- package/packages/calendar/src/calendar.ts +67 -35
- package/packages/card/src/card.ts +6 -4
- 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 +20 -11
- package/packages/date-picker/src/date-picker.ts +160 -80
- package/packages/drawer/src/drawer.ts +91 -50
- 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/src/icon.ts +3 -0
- package/packages/icon-picker/src/icon-picker.ts +31 -17
- package/packages/image/src/group.ts +4 -1
- package/packages/image/src/preview.ts +2 -2
- package/packages/input/src/input.ts +138 -75
- 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 +5 -2
- package/packages/menu/src/menu.ts +5 -4
- package/packages/number-input/src/number-input.ts +102 -79
- 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/pulldown/src/pulldown.ts +28 -22
- package/packages/radio/src/button.ts +2 -2
- package/packages/radio/src/group.ts +9 -5
- package/packages/row/src/row.ts +2 -2
- package/packages/select/src/optgroup.ts +22 -13
- package/packages/select/src/option.ts +18 -10
- package/packages/select/src/select.ts +79 -52
- 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 +28 -10
- package/packages/tooltip/src/tooltip.ts +118 -84
- package/packages/tree/src/tree.ts +7 -4
- package/packages/tree-select/src/tree-select.ts +25 -16
- 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/countdown.d.ts +4 -0
- package/types/components/date-picker.d.ts +23 -5
- package/types/components/drawer.d.ts +0 -1
- 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/number-input.d.ts +6 -2
- package/types/components/optgroup.d.ts +10 -4
- package/types/components/pulldown.d.ts +5 -1
- package/types/components/select.d.ts +4 -0
- package/types/components/tabs.d.ts +4 -0
- package/types/components/toolbar.d.ts +5 -0
- package/types/components/tooltip.d.ts +4 -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.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/es/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/{iconfont.1725597808239.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.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
package/es/tabs/src/tab-pane.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineComponent, ref, h, reactive, watch, inject, onMounted, onUnmounted } from 'vue';
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
|
+
import { createEvent } from '../../ui';
|
|
3
4
|
import { assembleAnchorTab, destroyAnchorTab } from './util';
|
|
4
5
|
export default defineComponent({
|
|
5
6
|
name: 'VxeTabPane',
|
|
@@ -14,7 +15,7 @@ export default defineComponent({
|
|
|
14
15
|
},
|
|
15
16
|
emits: [],
|
|
16
17
|
setup(props, context) {
|
|
17
|
-
const { slots } = context;
|
|
18
|
+
const { slots, emit } = context;
|
|
18
19
|
const xID = XEUtils.uniqueId();
|
|
19
20
|
const refElem = ref();
|
|
20
21
|
const $xeTabs = inject('$xeTabs', null);
|
|
@@ -44,6 +45,14 @@ export default defineComponent({
|
|
|
44
45
|
getRefMaps: () => refMaps,
|
|
45
46
|
getComputeMaps: () => computeMaps
|
|
46
47
|
};
|
|
48
|
+
const dispatchEvent = (type, params, evnt) => {
|
|
49
|
+
emit(type, createEvent(evnt, { $tabPane: $xeTabPane }, params));
|
|
50
|
+
};
|
|
51
|
+
const tabPaneMethods = {
|
|
52
|
+
dispatchEvent
|
|
53
|
+
};
|
|
54
|
+
const tabPanePrivateMethods = {};
|
|
55
|
+
Object.assign($xeTabPane, tabPaneMethods, tabPanePrivateMethods);
|
|
47
56
|
watch(() => props.title, (val) => {
|
|
48
57
|
tabConfig.title = val;
|
|
49
58
|
});
|
|
@@ -57,8 +66,9 @@ export default defineComponent({
|
|
|
57
66
|
tabConfig.permissionCode = val;
|
|
58
67
|
});
|
|
59
68
|
onMounted(() => {
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
const elem = refElem.value;
|
|
70
|
+
if ($xeTabs && elem) {
|
|
71
|
+
assembleAnchorTab($xeTabs, elem, tabConfig);
|
|
62
72
|
}
|
|
63
73
|
});
|
|
64
74
|
onUnmounted(() => {
|
package/es/tabs/src/tabs.js
CHANGED
|
@@ -47,25 +47,19 @@ export default defineComponent({
|
|
|
47
47
|
isTabOver: false,
|
|
48
48
|
resizeFlag: 1
|
|
49
49
|
});
|
|
50
|
+
const internalData = {
|
|
51
|
+
slTimeout: undefined
|
|
52
|
+
};
|
|
50
53
|
const refMaps = {
|
|
51
54
|
refElem
|
|
52
55
|
};
|
|
53
|
-
const handleFilterTab = (item) => {
|
|
54
|
-
const { permissionCode } = item;
|
|
55
|
-
if (permissionCode) {
|
|
56
|
-
if (!permission.checkVisible(permissionCode)) {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return true;
|
|
61
|
-
};
|
|
62
56
|
const computeTabOptions = computed(() => {
|
|
63
57
|
const { options } = props;
|
|
64
|
-
return (options || []).filter(handleFilterTab);
|
|
58
|
+
return (options || []).filter((item) => handleFilterTab(item));
|
|
65
59
|
});
|
|
66
60
|
const computeTabStaticOptions = computed(() => {
|
|
67
61
|
const { staticTabs } = reactData;
|
|
68
|
-
return staticTabs.filter(handleFilterTab);
|
|
62
|
+
return staticTabs.filter((item) => handleFilterTab(item));
|
|
69
63
|
});
|
|
70
64
|
const computeMaps = {};
|
|
71
65
|
const $xeTabs = {
|
|
@@ -76,6 +70,15 @@ export default defineComponent({
|
|
|
76
70
|
getRefMaps: () => refMaps,
|
|
77
71
|
getComputeMaps: () => computeMaps
|
|
78
72
|
};
|
|
73
|
+
const handleFilterTab = (item) => {
|
|
74
|
+
const { permissionCode } = item;
|
|
75
|
+
if (permissionCode) {
|
|
76
|
+
if (!permission.checkVisible(permissionCode)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
};
|
|
79
82
|
const callSlot = (slotFunc, params) => {
|
|
80
83
|
if (slotFunc) {
|
|
81
84
|
if (XEUtils.isString(slotFunc)) {
|
|
@@ -199,12 +202,15 @@ export default defineComponent({
|
|
|
199
202
|
dispatchEvent('tab-close-fail', { value, name, nextName }, evnt);
|
|
200
203
|
}
|
|
201
204
|
};
|
|
202
|
-
let scrollTimeout = null;
|
|
203
205
|
const startScrollAnimation = (offsetPos, offsetSize) => {
|
|
206
|
+
const { slTimeout } = internalData;
|
|
204
207
|
let offsetLeft = offsetSize;
|
|
205
208
|
let scrollCount = 6;
|
|
206
209
|
let delayNum = 35;
|
|
207
|
-
|
|
210
|
+
if (slTimeout) {
|
|
211
|
+
clearTimeout(slTimeout);
|
|
212
|
+
internalData.slTimeout = undefined;
|
|
213
|
+
}
|
|
208
214
|
const scrollAnimate = () => {
|
|
209
215
|
const headerWrapperEl = refHeadWrapperElem.value;
|
|
210
216
|
if (scrollCount > 0) {
|
|
@@ -216,14 +222,14 @@ export default defineComponent({
|
|
|
216
222
|
if (clientWidth + scrollLeft < scrollWidth) {
|
|
217
223
|
headerWrapperEl.scrollLeft += offsetLeft;
|
|
218
224
|
delayNum -= 4;
|
|
219
|
-
|
|
225
|
+
internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
|
|
220
226
|
}
|
|
221
227
|
}
|
|
222
228
|
else {
|
|
223
229
|
if (scrollLeft > 0) {
|
|
224
230
|
headerWrapperEl.scrollLeft -= offsetLeft;
|
|
225
231
|
delayNum -= 4;
|
|
226
|
-
|
|
232
|
+
internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
|
|
227
233
|
}
|
|
228
234
|
}
|
|
229
235
|
updateTabStyle();
|
|
@@ -273,41 +279,43 @@ export default defineComponent({
|
|
|
273
279
|
}
|
|
274
280
|
});
|
|
275
281
|
};
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
if (
|
|
286
|
-
|
|
287
|
-
item = list[index + 1];
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
if (index > 0) {
|
|
292
|
-
item = list[index - 1];
|
|
293
|
-
}
|
|
282
|
+
const handlePrevNext = (isNext) => {
|
|
283
|
+
const { activeName } = reactData;
|
|
284
|
+
const tabOptions = computeTabOptions.value;
|
|
285
|
+
const tabStaticOptions = computeTabStaticOptions.value;
|
|
286
|
+
const list = tabStaticOptions.length ? tabStaticOptions : tabOptions;
|
|
287
|
+
const index = XEUtils.findIndexOf(list, item => item.name === activeName);
|
|
288
|
+
if (index > -1) {
|
|
289
|
+
let item = null;
|
|
290
|
+
if (isNext) {
|
|
291
|
+
if (index < list.length - 1) {
|
|
292
|
+
item = list[index + 1];
|
|
294
293
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
emit('update:modelValue', value);
|
|
300
|
-
addInitName(name, null);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
if (index > 0) {
|
|
297
|
+
item = list[index - 1];
|
|
301
298
|
}
|
|
302
299
|
}
|
|
303
|
-
|
|
304
|
-
|
|
300
|
+
if (item) {
|
|
301
|
+
const name = item.name;
|
|
302
|
+
const value = name;
|
|
303
|
+
reactData.activeName = name;
|
|
304
|
+
emit('update:modelValue', value);
|
|
305
|
+
addInitName(name, null);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return nextTick();
|
|
305
309
|
};
|
|
306
310
|
const tabsMethods = {
|
|
307
311
|
dispatchEvent,
|
|
308
312
|
scrollToTab,
|
|
309
|
-
prev
|
|
310
|
-
|
|
313
|
+
prev() {
|
|
314
|
+
return handlePrevNext(false);
|
|
315
|
+
},
|
|
316
|
+
next() {
|
|
317
|
+
return handlePrevNext(true);
|
|
318
|
+
},
|
|
311
319
|
prevTab() {
|
|
312
320
|
if (process.env.NODE_ENV === 'development') {
|
|
313
321
|
warnLog('vxe.error.delFunc', ['prevTab', 'prev']);
|
|
@@ -445,9 +453,9 @@ export default defineComponent({
|
|
|
445
453
|
const { activeName } = reactData;
|
|
446
454
|
const activeDefaultTab = tabList.find(item => item.name === activeName);
|
|
447
455
|
if (destroyOnClose) {
|
|
448
|
-
return activeDefaultTab ?
|
|
456
|
+
return [activeDefaultTab ? renderTabPane(activeDefaultTab) : createCommentVNode()];
|
|
449
457
|
}
|
|
450
|
-
return tabList.map(renderTabPane);
|
|
458
|
+
return tabList.map((item) => renderTabPane(item));
|
|
451
459
|
};
|
|
452
460
|
const renderVN = () => {
|
|
453
461
|
const { type, height, padding, trigger } = props;
|
|
@@ -514,7 +522,9 @@ export default defineComponent({
|
|
|
514
522
|
});
|
|
515
523
|
}
|
|
516
524
|
watch(() => reactData.resizeFlag, () => {
|
|
517
|
-
nextTick(
|
|
525
|
+
nextTick(() => {
|
|
526
|
+
updateTabStyle();
|
|
527
|
+
});
|
|
518
528
|
});
|
|
519
529
|
nextTick(() => {
|
|
520
530
|
globalEvents.on($xeTabs, 'resize', updateTabStyle);
|
|
@@ -525,10 +535,10 @@ export default defineComponent({
|
|
|
525
535
|
onUnmounted(() => {
|
|
526
536
|
globalEvents.off($xeTabs, 'resize');
|
|
527
537
|
});
|
|
528
|
-
$xeTabs.renderVN = renderVN;
|
|
529
538
|
provide('$xeTabs', $xeTabs);
|
|
530
539
|
addInitName(props.modelValue, null);
|
|
531
540
|
initDefaultName(reactData.staticTabs.length ? reactData.staticTabs : props.options);
|
|
541
|
+
$xeTabs.renderVN = renderVN;
|
|
532
542
|
return $xeTabs;
|
|
533
543
|
},
|
|
534
544
|
render() {
|
|
@@ -8,27 +8,45 @@ export default defineComponent({
|
|
|
8
8
|
props: {
|
|
9
9
|
modelValue: [String, Number],
|
|
10
10
|
className: String,
|
|
11
|
-
immediate: {
|
|
11
|
+
immediate: {
|
|
12
|
+
type: Boolean,
|
|
13
|
+
default: true
|
|
14
|
+
},
|
|
12
15
|
name: String,
|
|
13
16
|
readonly: {
|
|
14
17
|
type: Boolean,
|
|
15
18
|
default: null
|
|
16
19
|
},
|
|
17
|
-
editable: {
|
|
20
|
+
editable: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
default: true
|
|
23
|
+
},
|
|
18
24
|
disabled: {
|
|
19
25
|
type: Boolean,
|
|
20
26
|
default: null
|
|
21
27
|
},
|
|
22
28
|
placeholder: String,
|
|
23
29
|
maxLength: [String, Number],
|
|
24
|
-
rows: {
|
|
25
|
-
|
|
30
|
+
rows: {
|
|
31
|
+
type: [String, Number],
|
|
32
|
+
default: null
|
|
33
|
+
},
|
|
34
|
+
cols: {
|
|
35
|
+
type: [String, Number],
|
|
36
|
+
default: null
|
|
37
|
+
},
|
|
26
38
|
showWordCount: Boolean,
|
|
27
39
|
countMethod: Function,
|
|
28
40
|
autosize: [Boolean, Object],
|
|
29
41
|
form: String,
|
|
30
|
-
resize: {
|
|
31
|
-
|
|
42
|
+
resize: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: () => getConfig().textarea.resize
|
|
45
|
+
},
|
|
46
|
+
size: {
|
|
47
|
+
type: String,
|
|
48
|
+
default: () => getConfig().textarea.size || getConfig().size
|
|
49
|
+
},
|
|
32
50
|
// 已废弃
|
|
33
51
|
maxlength: [String, Number]
|
|
34
52
|
},
|
|
@@ -171,7 +189,7 @@ export default defineComponent({
|
|
|
171
189
|
const value = reactData.inputValue;
|
|
172
190
|
$xeTextarea.dispatchEvent(evnt.type, { value }, evnt);
|
|
173
191
|
};
|
|
174
|
-
const
|
|
192
|
+
const handleChange = (value, evnt) => {
|
|
175
193
|
reactData.inputValue = value;
|
|
176
194
|
emit('update:modelValue', value);
|
|
177
195
|
if (XEUtils.toValueString(props.modelValue) !== value) {
|
|
@@ -188,7 +206,7 @@ export default defineComponent({
|
|
|
188
206
|
const value = textElem.value;
|
|
189
207
|
reactData.inputValue = value;
|
|
190
208
|
if (immediate) {
|
|
191
|
-
|
|
209
|
+
handleChange(value, evnt);
|
|
192
210
|
}
|
|
193
211
|
$xeTextarea.dispatchEvent('input', { value }, evnt);
|
|
194
212
|
handleResize();
|
|
@@ -199,14 +217,14 @@ export default defineComponent({
|
|
|
199
217
|
triggerEvent(evnt);
|
|
200
218
|
}
|
|
201
219
|
else {
|
|
202
|
-
|
|
220
|
+
handleChange(reactData.inputValue, evnt);
|
|
203
221
|
}
|
|
204
222
|
};
|
|
205
223
|
const blurEvent = (evnt) => {
|
|
206
224
|
const { immediate } = props;
|
|
207
225
|
const { inputValue } = reactData;
|
|
208
226
|
if (!immediate) {
|
|
209
|
-
|
|
227
|
+
handleChange(inputValue, evnt);
|
|
210
228
|
}
|
|
211
229
|
$xeTextarea.dispatchEvent('blur', { value: inputValue }, evnt);
|
|
212
230
|
};
|
|
@@ -8,17 +8,38 @@ export default defineComponent({
|
|
|
8
8
|
name: 'VxeTooltip',
|
|
9
9
|
props: {
|
|
10
10
|
modelValue: Boolean,
|
|
11
|
-
size: {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
size: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: () => getConfig().tooltip.size || getConfig().size
|
|
14
|
+
},
|
|
15
|
+
trigger: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: () => getConfig().tooltip.trigger || 'hover'
|
|
18
|
+
},
|
|
19
|
+
theme: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: () => getConfig().tooltip.theme || 'dark'
|
|
22
|
+
},
|
|
23
|
+
content: {
|
|
24
|
+
type: [String, Number],
|
|
25
|
+
default: null
|
|
26
|
+
},
|
|
15
27
|
useHTML: Boolean,
|
|
16
28
|
zIndex: [String, Number],
|
|
17
29
|
popupClassName: [String, Function],
|
|
18
|
-
isArrow: {
|
|
30
|
+
isArrow: {
|
|
31
|
+
type: Boolean,
|
|
32
|
+
default: true
|
|
33
|
+
},
|
|
19
34
|
enterable: Boolean,
|
|
20
|
-
enterDelay: {
|
|
21
|
-
|
|
35
|
+
enterDelay: {
|
|
36
|
+
type: Number,
|
|
37
|
+
default: () => getConfig().tooltip.enterDelay
|
|
38
|
+
},
|
|
39
|
+
leaveDelay: {
|
|
40
|
+
type: Number,
|
|
41
|
+
default: () => getConfig().tooltip.leaveDelay
|
|
42
|
+
}
|
|
22
43
|
},
|
|
23
44
|
emits: [
|
|
24
45
|
'update:modelValue'
|
|
@@ -41,6 +62,7 @@ export default defineComponent({
|
|
|
41
62
|
arrowStyle: {}
|
|
42
63
|
}
|
|
43
64
|
});
|
|
65
|
+
const internalData = {};
|
|
44
66
|
const refElem = ref();
|
|
45
67
|
const refMaps = {
|
|
46
68
|
refElem
|
|
@@ -50,6 +72,7 @@ export default defineComponent({
|
|
|
50
72
|
props,
|
|
51
73
|
context,
|
|
52
74
|
reactData,
|
|
75
|
+
internalData,
|
|
53
76
|
getRefMaps: () => refMaps
|
|
54
77
|
};
|
|
55
78
|
let tooltipMethods = {};
|
|
@@ -144,23 +167,28 @@ export default defineComponent({
|
|
|
144
167
|
tipStore.arrowStyle = { left: '50%' };
|
|
145
168
|
return tooltipMethods.updatePlacement();
|
|
146
169
|
};
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
170
|
+
const handleDelayFn = () => {
|
|
171
|
+
internalData.showDelayTip = XEUtils.debounce(() => {
|
|
172
|
+
if (reactData.tipActive) {
|
|
173
|
+
showTip();
|
|
174
|
+
}
|
|
175
|
+
}, props.enterDelay, { leading: false, trailing: true });
|
|
176
|
+
};
|
|
152
177
|
const handleVisible = (target, content) => {
|
|
153
178
|
const contentSlot = slots.content;
|
|
154
179
|
if (!contentSlot && (content === '' || XEUtils.eqNull(content))) {
|
|
155
180
|
return nextTick();
|
|
156
181
|
}
|
|
157
182
|
if (target) {
|
|
183
|
+
const { showDelayTip } = internalData;
|
|
158
184
|
const { trigger, enterDelay } = props;
|
|
159
185
|
reactData.tipActive = true;
|
|
160
186
|
reactData.tipTarget = target;
|
|
161
187
|
reactData.tipContent = content;
|
|
162
188
|
if (enterDelay && trigger === 'hover') {
|
|
163
|
-
showDelayTip
|
|
189
|
+
if (showDelayTip) {
|
|
190
|
+
showDelayTip();
|
|
191
|
+
}
|
|
164
192
|
}
|
|
165
193
|
else {
|
|
166
194
|
return showTip();
|
|
@@ -195,20 +223,75 @@ export default defineComponent({
|
|
|
195
223
|
const el = refElem.value;
|
|
196
224
|
if (tipTarget && el) {
|
|
197
225
|
updateTipStyle();
|
|
198
|
-
return nextTick().then(
|
|
226
|
+
return nextTick().then(() => {
|
|
227
|
+
updateTipStyle();
|
|
228
|
+
});
|
|
199
229
|
}
|
|
200
230
|
});
|
|
201
231
|
},
|
|
202
232
|
isActived() {
|
|
203
233
|
return reactData.tipActive;
|
|
204
234
|
},
|
|
205
|
-
setActived(
|
|
206
|
-
reactData.tipActive = !!
|
|
235
|
+
setActived(active) {
|
|
236
|
+
reactData.tipActive = !!active;
|
|
207
237
|
}
|
|
208
238
|
};
|
|
209
239
|
Object.assign($xeTooltip, tooltipMethods);
|
|
210
|
-
|
|
211
|
-
|
|
240
|
+
const renderContent = () => {
|
|
241
|
+
const { useHTML } = props;
|
|
242
|
+
const { tipContent } = reactData;
|
|
243
|
+
const contentSlot = slots.content;
|
|
244
|
+
if (contentSlot) {
|
|
245
|
+
return h('div', {
|
|
246
|
+
key: 1,
|
|
247
|
+
class: 'vxe-table--tooltip-content'
|
|
248
|
+
}, getSlotVNs(contentSlot({})));
|
|
249
|
+
}
|
|
250
|
+
if (useHTML) {
|
|
251
|
+
return h('div', {
|
|
252
|
+
key: 2,
|
|
253
|
+
class: 'vxe-table--tooltip-content',
|
|
254
|
+
innerHTML: tipContent
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
return h('div', {
|
|
258
|
+
key: 3,
|
|
259
|
+
class: 'vxe-table--tooltip-content'
|
|
260
|
+
}, `${tipContent}`);
|
|
261
|
+
};
|
|
262
|
+
const renderVN = () => {
|
|
263
|
+
const { popupClassName, theme, isArrow, enterable } = props;
|
|
264
|
+
const { tipActive, visible, tipStore } = reactData;
|
|
265
|
+
const defaultSlot = slots.default;
|
|
266
|
+
const vSize = computeSize.value;
|
|
267
|
+
let ons;
|
|
268
|
+
if (enterable) {
|
|
269
|
+
ons = {
|
|
270
|
+
onMouseenter: wrapperMouseenterEvent,
|
|
271
|
+
onMouseleave: wrapperMouseleaveEvent
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
return h('div', Object.assign({ ref: refElem, class: ['vxe-table--tooltip-wrapper', `theme--${theme}`, popupClassName ? (XEUtils.isFunction(popupClassName) ? popupClassName({ $tooltip: $xeTooltip }) : popupClassName) : '', {
|
|
275
|
+
[`size--${vSize}`]: vSize,
|
|
276
|
+
[`placement--${tipStore.placement}`]: tipStore.placement,
|
|
277
|
+
'is--enterable': enterable,
|
|
278
|
+
'is--visible': visible,
|
|
279
|
+
'is--arrow': isArrow,
|
|
280
|
+
'is--active': tipActive
|
|
281
|
+
}], style: tipStore.style }, ons), [
|
|
282
|
+
renderContent(),
|
|
283
|
+
h('div', {
|
|
284
|
+
class: 'vxe-table--tooltip-arrow',
|
|
285
|
+
style: tipStore.arrowStyle
|
|
286
|
+
}),
|
|
287
|
+
...(defaultSlot ? getSlotVNs(defaultSlot({})) : [])
|
|
288
|
+
]);
|
|
289
|
+
};
|
|
290
|
+
watch(() => props.enterDelay, () => {
|
|
291
|
+
handleDelayFn();
|
|
292
|
+
});
|
|
293
|
+
watch(() => props.content, (val) => {
|
|
294
|
+
reactData.tipContent = val;
|
|
212
295
|
});
|
|
213
296
|
watch(() => props.modelValue, (val) => {
|
|
214
297
|
if (!reactData.isUpdate) {
|
|
@@ -223,7 +306,7 @@ export default defineComponent({
|
|
|
223
306
|
});
|
|
224
307
|
onMounted(() => {
|
|
225
308
|
nextTick(() => {
|
|
226
|
-
const { trigger, content
|
|
309
|
+
const { trigger, content } = props;
|
|
227
310
|
const wrapperElem = refElem.value;
|
|
228
311
|
if (wrapperElem) {
|
|
229
312
|
const parentNode = wrapperElem.parentNode;
|
|
@@ -249,7 +332,7 @@ export default defineComponent({
|
|
|
249
332
|
target.onclick = clickEvent;
|
|
250
333
|
}
|
|
251
334
|
}
|
|
252
|
-
if (modelValue) {
|
|
335
|
+
if (props.modelValue) {
|
|
253
336
|
handleVisible(target, content);
|
|
254
337
|
}
|
|
255
338
|
}
|
|
@@ -257,17 +340,12 @@ export default defineComponent({
|
|
|
257
340
|
});
|
|
258
341
|
});
|
|
259
342
|
onBeforeUnmount(() => {
|
|
260
|
-
const { trigger } = props;
|
|
261
343
|
const { target } = reactData;
|
|
262
344
|
const wrapperElem = refElem.value;
|
|
263
345
|
if (target) {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
}
|
|
268
|
-
else if (trigger === 'click') {
|
|
269
|
-
target.onclick = null;
|
|
270
|
-
}
|
|
346
|
+
target.onmouseenter = null;
|
|
347
|
+
target.onmouseleave = null;
|
|
348
|
+
target.onclick = null;
|
|
271
349
|
}
|
|
272
350
|
if (wrapperElem) {
|
|
273
351
|
const parentNode = wrapperElem.parentNode;
|
|
@@ -276,56 +354,7 @@ export default defineComponent({
|
|
|
276
354
|
}
|
|
277
355
|
}
|
|
278
356
|
});
|
|
279
|
-
|
|
280
|
-
const { useHTML } = props;
|
|
281
|
-
const { tipContent } = reactData;
|
|
282
|
-
const contentSlot = slots.content;
|
|
283
|
-
if (contentSlot) {
|
|
284
|
-
return h('div', {
|
|
285
|
-
key: 1,
|
|
286
|
-
class: 'vxe-table--tooltip-content'
|
|
287
|
-
}, getSlotVNs(contentSlot({})));
|
|
288
|
-
}
|
|
289
|
-
if (useHTML) {
|
|
290
|
-
return h('div', {
|
|
291
|
-
key: 2,
|
|
292
|
-
class: 'vxe-table--tooltip-content',
|
|
293
|
-
innerHTML: tipContent
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
return h('div', {
|
|
297
|
-
key: 3,
|
|
298
|
-
class: 'vxe-table--tooltip-content'
|
|
299
|
-
}, `${tipContent}`);
|
|
300
|
-
};
|
|
301
|
-
const renderVN = () => {
|
|
302
|
-
const { popupClassName, theme, isArrow, enterable } = props;
|
|
303
|
-
const { tipActive, visible, tipStore } = reactData;
|
|
304
|
-
const defaultSlot = slots.default;
|
|
305
|
-
const vSize = computeSize.value;
|
|
306
|
-
let ons;
|
|
307
|
-
if (enterable) {
|
|
308
|
-
ons = {
|
|
309
|
-
onMouseenter: wrapperMouseenterEvent,
|
|
310
|
-
onMouseleave: wrapperMouseleaveEvent
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
return h('div', Object.assign({ ref: refElem, class: ['vxe-table--tooltip-wrapper', `theme--${theme}`, popupClassName ? (XEUtils.isFunction(popupClassName) ? popupClassName({ $tooltip: $xeTooltip }) : popupClassName) : '', {
|
|
314
|
-
[`size--${vSize}`]: vSize,
|
|
315
|
-
[`placement--${tipStore.placement}`]: tipStore.placement,
|
|
316
|
-
'is--enterable': enterable,
|
|
317
|
-
'is--visible': visible,
|
|
318
|
-
'is--arrow': isArrow,
|
|
319
|
-
'is--active': tipActive
|
|
320
|
-
}], style: tipStore.style }, ons), [
|
|
321
|
-
renderContent(),
|
|
322
|
-
h('div', {
|
|
323
|
-
class: 'vxe-table--tooltip-arrow',
|
|
324
|
-
style: tipStore.arrowStyle
|
|
325
|
-
}),
|
|
326
|
-
...(defaultSlot ? getSlotVNs(defaultSlot({})) : [])
|
|
327
|
-
]);
|
|
328
|
-
};
|
|
357
|
+
handleDelayFn();
|
|
329
358
|
$xeTooltip.renderVN = renderVN;
|
|
330
359
|
return $xeTooltip;
|
|
331
360
|
},
|
package/es/tree/src/tree.js
CHANGED
|
@@ -105,7 +105,10 @@ export default defineComponent({
|
|
|
105
105
|
type: String,
|
|
106
106
|
default: () => getConfig().tree.iconLoaded
|
|
107
107
|
},
|
|
108
|
-
size: {
|
|
108
|
+
size: {
|
|
109
|
+
type: String,
|
|
110
|
+
default: () => getConfig().tree.size || getConfig().size
|
|
111
|
+
}
|
|
109
112
|
},
|
|
110
113
|
emits: [
|
|
111
114
|
'update:modelValue',
|
|
@@ -444,7 +447,7 @@ export default defineComponent({
|
|
|
444
447
|
const { lazy, transform } = props;
|
|
445
448
|
const { nodeMaps } = reactData;
|
|
446
449
|
if (!lazy) {
|
|
447
|
-
return
|
|
450
|
+
return Promise.resolve([]);
|
|
448
451
|
}
|
|
449
452
|
const childrenField = computeChildrenField.value;
|
|
450
453
|
const parentNodeItem = nodeMaps[getNodeId(node)];
|
|
@@ -1069,7 +1072,6 @@ export default defineComponent({
|
|
|
1069
1072
|
: {})
|
|
1070
1073
|
]);
|
|
1071
1074
|
};
|
|
1072
|
-
$xeTree.renderVN = renderVN;
|
|
1073
1075
|
const dataFlag = ref(0);
|
|
1074
1076
|
watch(() => props.data ? props.data.length : 0, () => {
|
|
1075
1077
|
dataFlag.value++;
|
|
@@ -1100,6 +1102,7 @@ export default defineComponent({
|
|
|
1100
1102
|
});
|
|
1101
1103
|
updateData(props.data || []);
|
|
1102
1104
|
updateCheckboxChecked(props.checkNodeKeys || []);
|
|
1105
|
+
$xeTree.renderVN = renderVN;
|
|
1103
1106
|
return $xeTree;
|
|
1104
1107
|
},
|
|
1105
1108
|
render() {
|