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/lib/tabs/src/tab-pane.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _vue = require("vue");
|
|
8
8
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
9
|
+
var _ui = require("../../ui");
|
|
9
10
|
var _util = require("./util");
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
12
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
@@ -22,7 +23,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
22
23
|
emits: [],
|
|
23
24
|
setup(props, context) {
|
|
24
25
|
const {
|
|
25
|
-
slots
|
|
26
|
+
slots,
|
|
27
|
+
emit
|
|
26
28
|
} = context;
|
|
27
29
|
const xID = _xeUtils.default.uniqueId();
|
|
28
30
|
const refElem = (0, _vue.ref)();
|
|
@@ -53,6 +55,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
53
55
|
getRefMaps: () => refMaps,
|
|
54
56
|
getComputeMaps: () => computeMaps
|
|
55
57
|
};
|
|
58
|
+
const dispatchEvent = (type, params, evnt) => {
|
|
59
|
+
emit(type, (0, _ui.createEvent)(evnt, {
|
|
60
|
+
$tabPane: $xeTabPane
|
|
61
|
+
}, params));
|
|
62
|
+
};
|
|
63
|
+
const tabPaneMethods = {
|
|
64
|
+
dispatchEvent
|
|
65
|
+
};
|
|
66
|
+
const tabPanePrivateMethods = {};
|
|
67
|
+
Object.assign($xeTabPane, tabPaneMethods, tabPanePrivateMethods);
|
|
56
68
|
(0, _vue.watch)(() => props.title, val => {
|
|
57
69
|
tabConfig.title = val;
|
|
58
70
|
});
|
|
@@ -66,8 +78,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
66
78
|
tabConfig.permissionCode = val;
|
|
67
79
|
});
|
|
68
80
|
(0, _vue.onMounted)(() => {
|
|
69
|
-
|
|
70
|
-
|
|
81
|
+
const elem = refElem.value;
|
|
82
|
+
if ($xeTabs && elem) {
|
|
83
|
+
(0, _util.assembleAnchorTab)($xeTabs, elem, tabConfig);
|
|
71
84
|
}
|
|
72
85
|
});
|
|
73
86
|
(0, _vue.onUnmounted)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabPane",props:{title:[String,Number],name:[String,Number],icon:String,titleWidth:[String,Number],titleAlign:[String,Number],preload:Boolean,permissionCode:[String,Number]},emits:[],setup(e,t){
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabPane",props:{title:[String,Number],name:[String,Number],icon:String,titleWidth:[String,Number],titleAlign:[String,Number],preload:Boolean,permissionCode:[String,Number]},emits:[],setup(e,t){const{slots:i,emit:r}=t;var n=_xeUtils.default.uniqueId();const u=(0,_vue.ref)(),a=(0,_vue.inject)("$xeTabs",null);var o=(0,_vue.reactive)({});const l=(0,_vue.reactive)({id:n,title:e.title,name:e.name,icon:e.icon,titleWidth:e.titleWidth,titleAlign:e.titleAlign,preload:e.preload,permissionCode:e.permissionCode,slots:{default:i.default}}),s={refElem:u},d={},v={xID:n,props:e,context:t,reactData:o,getRefMaps:()=>s,getComputeMaps:()=>d};Object.assign(v,{dispatchEvent:(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$tabPane:v},t))}},{}),(0,_vue.watch)(()=>e.title,e=>{l.title=e}),(0,_vue.watch)(()=>e.name,e=>{l.name=e}),(0,_vue.watch)(()=>e.icon,e=>{l.icon=e}),(0,_vue.watch)(()=>e.permissionCode,e=>{l.permissionCode=e}),(0,_vue.onMounted)(()=>{var e=u.value;a&&e&&(0,_util.assembleAnchorTab)(a,e,l)}),(0,_vue.onUnmounted)(()=>{a&&(0,_util.destroyAnchorTab)(a,l)});return v.renderVN=()=>(0,_vue.h)("div",{ref:u},[]),v},render(){return this.renderVN()}});
|
package/lib/tabs/src/tabs.js
CHANGED
|
@@ -49,31 +49,23 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
49
49
|
isTabOver: false,
|
|
50
50
|
resizeFlag: 1
|
|
51
51
|
});
|
|
52
|
+
const internalData = {
|
|
53
|
+
slTimeout: undefined
|
|
54
|
+
};
|
|
52
55
|
const refMaps = {
|
|
53
56
|
refElem
|
|
54
57
|
};
|
|
55
|
-
const handleFilterTab = item => {
|
|
56
|
-
const {
|
|
57
|
-
permissionCode
|
|
58
|
-
} = item;
|
|
59
|
-
if (permissionCode) {
|
|
60
|
-
if (!_ui.permission.checkVisible(permissionCode)) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return true;
|
|
65
|
-
};
|
|
66
58
|
const computeTabOptions = (0, _vue.computed)(() => {
|
|
67
59
|
const {
|
|
68
60
|
options
|
|
69
61
|
} = props;
|
|
70
|
-
return (options || []).filter(handleFilterTab);
|
|
62
|
+
return (options || []).filter(item => handleFilterTab(item));
|
|
71
63
|
});
|
|
72
64
|
const computeTabStaticOptions = (0, _vue.computed)(() => {
|
|
73
65
|
const {
|
|
74
66
|
staticTabs
|
|
75
67
|
} = reactData;
|
|
76
|
-
return staticTabs.filter(handleFilterTab);
|
|
68
|
+
return staticTabs.filter(item => handleFilterTab(item));
|
|
77
69
|
});
|
|
78
70
|
const computeMaps = {};
|
|
79
71
|
const $xeTabs = {
|
|
@@ -84,6 +76,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
84
76
|
getRefMaps: () => refMaps,
|
|
85
77
|
getComputeMaps: () => computeMaps
|
|
86
78
|
};
|
|
79
|
+
const handleFilterTab = item => {
|
|
80
|
+
const {
|
|
81
|
+
permissionCode
|
|
82
|
+
} = item;
|
|
83
|
+
if (permissionCode) {
|
|
84
|
+
if (!_ui.permission.checkVisible(permissionCode)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
};
|
|
87
90
|
const callSlot = (slotFunc, params) => {
|
|
88
91
|
if (slotFunc) {
|
|
89
92
|
if (_xeUtils.default.isString(slotFunc)) {
|
|
@@ -259,12 +262,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
259
262
|
}, evnt);
|
|
260
263
|
}
|
|
261
264
|
};
|
|
262
|
-
let scrollTimeout = null;
|
|
263
265
|
const startScrollAnimation = (offsetPos, offsetSize) => {
|
|
266
|
+
const {
|
|
267
|
+
slTimeout
|
|
268
|
+
} = internalData;
|
|
264
269
|
let offsetLeft = offsetSize;
|
|
265
270
|
let scrollCount = 6;
|
|
266
271
|
let delayNum = 35;
|
|
267
|
-
|
|
272
|
+
if (slTimeout) {
|
|
273
|
+
clearTimeout(slTimeout);
|
|
274
|
+
internalData.slTimeout = undefined;
|
|
275
|
+
}
|
|
268
276
|
const scrollAnimate = () => {
|
|
269
277
|
const headerWrapperEl = refHeadWrapperElem.value;
|
|
270
278
|
if (scrollCount > 0) {
|
|
@@ -280,13 +288,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
280
288
|
if (clientWidth + scrollLeft < scrollWidth) {
|
|
281
289
|
headerWrapperEl.scrollLeft += offsetLeft;
|
|
282
290
|
delayNum -= 4;
|
|
283
|
-
|
|
291
|
+
internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
|
|
284
292
|
}
|
|
285
293
|
} else {
|
|
286
294
|
if (scrollLeft > 0) {
|
|
287
295
|
headerWrapperEl.scrollLeft -= offsetLeft;
|
|
288
296
|
delayNum -= 4;
|
|
289
|
-
|
|
297
|
+
internalData.slTimeout = setTimeout(scrollAnimate, delayNum);
|
|
290
298
|
}
|
|
291
299
|
}
|
|
292
300
|
updateTabStyle();
|
|
@@ -340,42 +348,44 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
340
348
|
}
|
|
341
349
|
});
|
|
342
350
|
};
|
|
343
|
-
const
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
if (
|
|
355
|
-
|
|
356
|
-
item = list[index + 1];
|
|
357
|
-
}
|
|
358
|
-
} else {
|
|
359
|
-
if (index > 0) {
|
|
360
|
-
item = list[index - 1];
|
|
361
|
-
}
|
|
351
|
+
const handlePrevNext = isNext => {
|
|
352
|
+
const {
|
|
353
|
+
activeName
|
|
354
|
+
} = reactData;
|
|
355
|
+
const tabOptions = computeTabOptions.value;
|
|
356
|
+
const tabStaticOptions = computeTabStaticOptions.value;
|
|
357
|
+
const list = tabStaticOptions.length ? tabStaticOptions : tabOptions;
|
|
358
|
+
const index = _xeUtils.default.findIndexOf(list, item => item.name === activeName);
|
|
359
|
+
if (index > -1) {
|
|
360
|
+
let item = null;
|
|
361
|
+
if (isNext) {
|
|
362
|
+
if (index < list.length - 1) {
|
|
363
|
+
item = list[index + 1];
|
|
362
364
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
reactData.activeName = name;
|
|
367
|
-
emit('update:modelValue', value);
|
|
368
|
-
addInitName(name, null);
|
|
365
|
+
} else {
|
|
366
|
+
if (index > 0) {
|
|
367
|
+
item = list[index - 1];
|
|
369
368
|
}
|
|
370
369
|
}
|
|
371
|
-
|
|
372
|
-
|
|
370
|
+
if (item) {
|
|
371
|
+
const name = item.name;
|
|
372
|
+
const value = name;
|
|
373
|
+
reactData.activeName = name;
|
|
374
|
+
emit('update:modelValue', value);
|
|
375
|
+
addInitName(name, null);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return (0, _vue.nextTick)();
|
|
373
379
|
};
|
|
374
380
|
const tabsMethods = {
|
|
375
381
|
dispatchEvent,
|
|
376
382
|
scrollToTab,
|
|
377
|
-
prev
|
|
378
|
-
|
|
383
|
+
prev() {
|
|
384
|
+
return handlePrevNext(false);
|
|
385
|
+
},
|
|
386
|
+
next() {
|
|
387
|
+
return handlePrevNext(true);
|
|
388
|
+
},
|
|
379
389
|
prevTab() {
|
|
380
390
|
if (process.env.NODE_ENV === 'development') {
|
|
381
391
|
(0, _log.warnLog)('vxe.error.delFunc', ['prevTab', 'prev']);
|
|
@@ -506,9 +516,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
506
516
|
} = reactData;
|
|
507
517
|
const activeDefaultTab = tabList.find(item => item.name === activeName);
|
|
508
518
|
if (destroyOnClose) {
|
|
509
|
-
return activeDefaultTab ?
|
|
519
|
+
return [activeDefaultTab ? renderTabPane(activeDefaultTab) : (0, _vue.createCommentVNode)()];
|
|
510
520
|
}
|
|
511
|
-
return tabList.map(renderTabPane);
|
|
521
|
+
return tabList.map(item => renderTabPane(item));
|
|
512
522
|
};
|
|
513
523
|
const renderVN = () => {
|
|
514
524
|
const {
|
|
@@ -574,7 +584,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
574
584
|
});
|
|
575
585
|
}
|
|
576
586
|
(0, _vue.watch)(() => reactData.resizeFlag, () => {
|
|
577
|
-
(0, _vue.nextTick)(
|
|
587
|
+
(0, _vue.nextTick)(() => {
|
|
588
|
+
updateTabStyle();
|
|
589
|
+
});
|
|
578
590
|
});
|
|
579
591
|
(0, _vue.nextTick)(() => {
|
|
580
592
|
_ui.globalEvents.on($xeTabs, 'resize', updateTabStyle);
|
|
@@ -585,10 +597,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
585
597
|
(0, _vue.onUnmounted)(() => {
|
|
586
598
|
_ui.globalEvents.off($xeTabs, 'resize');
|
|
587
599
|
});
|
|
588
|
-
$xeTabs.renderVN = renderVN;
|
|
589
600
|
(0, _vue.provide)('$xeTabs', $xeTabs);
|
|
590
601
|
addInitName(props.modelValue, null);
|
|
591
602
|
initDefaultName(reactData.staticTabs.length ? reactData.staticTabs : props.options);
|
|
603
|
+
$xeTabs.renderVN = renderVN;
|
|
592
604
|
return $xeTabs;
|
|
593
605
|
},
|
|
594
606
|
render() {
|
package/lib/tabs/src/tabs.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../..//ui/src/dom"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,height:[String,Number],destroyOnClose:Boolean,titleWidth:[String,Number],titleAlign:[String,Number],type:String,showClose:Boolean,padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../..//ui/src/dom"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,height:[String,Number],destroyOnClose:Boolean,titleWidth:[String,Number],titleAlign:[String,Number],type:String,showClose:Boolean,padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(m,e){const{slots:r,emit:n}=e;var t=_xeUtils.default.uniqueId();const a=(0,_vue.inject)("$xeTabs",null),u=(0,_vue.ref)(),h=(0,_vue.ref)(),_=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintWidth:0,isTabOver:!1,resizeFlag:1}),o={slTimeout:void 0},l={refElem:u},v=(0,_vue.computed)(()=>{var e=m["options"];return(e||[]).filter(e=>s(e))}),c=(0,_vue.computed)(()=>{var e=_["staticTabs"];return e.filter(e=>s(e))}),i={},d={xID:t,props:m,context:e,reactData:_,getRefMaps:()=>l,getComputeMaps:()=>i},s=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},f=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=r[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],b=()=>{(0,_vue.nextTick)(()=>{var e=m["type"];const t=_["activeName"];var a,l=v.value,i=c.value,n=h.value;let s=0,r=0,u=!1;n&&(i=_xeUtils.default.findIndexOf(i.length?i:l,e=>e.name===t),{children:l,scrollWidth:n,clientWidth:a}=n,u=n!==a,-1<i)&&(a=(n=l[i]).clientWidth,e?"card"===e?(s=a+2,r=n.offsetLeft):"border-card"===e&&(s=a+2,r=n.offsetLeft-1):(s=Math.max(4,Math.floor(.6*a)),r=n.offsetLeft+Math.floor((a-s)/2))),_.lintLeft=r,_.lintWidth=s,_.isTabOver=u})},g=(e,t,a)=>{n(e,(0,_ui.createEvent)(a,{$tabs:d},t))},p=(e,t)=>{var a=_["initNames"];return!(!e||a.includes(e)||(g("tab-load",{name:e},t),a.push(e),0))},x=e=>{let a=null;if(e&&e.length){let t=!1;a=m.modelValue,e.forEach(e=>{a===e.name&&(t=!0),e&&e.preload&&p(e.name,null)}),t||(a=e[0].name,p(a,null),n("update:modelValue",a))}_.activeName=a},N=(e,t)=>{var a=m["trigger"],l=m.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod,i=_["activeName"],t=t["name"];"manual"===a?g("tab-click",{name:t},e):(a=t,_.activeName=t,n("update:modelValue",a),g("tab-click",{name:t},e),p(t,e),t!==i&&(!l||l({$tabs:d,name:t,oldName:i,newName:t})?g("change",{value:a,name:t,oldName:i,newName:t},e):g("tab-change-fail",{value:a,name:t,oldName:i,newName:t},e)))},T=(e,t,a,l)=>{e.stopPropagation();var i=_["activeName"],n=m.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod,t=t["name"],s=i;let r=s;i===t&&(i=a<l.length-1?l[a+1]:l[a-1],r=i?i.name:null),!n||n({$tabs:d,value:s,name:t,nextName:r})?g("tab-close",{value:s,name:t,nextName:r},e):g("tab-close-fail",{value:s,name:t,nextName:r},e)},C=e=>{var t=h.value;if(t){t=Math.floor(.75*t.clientWidth);{var r=e,e=t,t=o["slTimeout"];let i=e,n=6,s=35;t&&(clearTimeout(t),o.slTimeout=void 0);const u=()=>{var e,t,a,l=h.value;0<n&&(n--,l)&&({clientWidth:e,scrollWidth:t,scrollLeft:a}=l,i=Math.floor(i/2),0<r?e+a<t&&(l.scrollLeft+=i,s-=4,o.slTimeout=setTimeout(u,s)):0<a&&(l.scrollLeft-=i,s-=4,o.slTimeout=setTimeout(u,s)),b())};u()}}},V=()=>{C(-1)},w=()=>{C(1)},k=n=>{const s=v.value,r=c.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,l,i=h.value;i&&(-1<(a=_xeUtils.default.findIndexOf(r.length?r:s,e=>e.name===n))&&({scrollLeft:e,clientWidth:t,children:l}=i,l=l[a])&&(0<(l=(a=l.offsetLeft)+l.clientWidth-(e+t))&&(i.scrollLeft+=l),a<e)&&(i.scrollLeft=a),b())})},L=t=>{const a=_["activeName"];var l=v.value,i=c.value,i=i.length?i:l,l=_xeUtils.default.findIndexOf(i,e=>e.name===a);if(-1<l){let e=null;t?l<i.length-1&&(e=i[l+1]):0<l&&(e=i[l-1]),e&&(i=t=e.name,_.activeName=t,n("update:modelValue",i),p(t,null))}return(0,_vue.nextTick)()},y={dispatchEvent:g,scrollToTab:k,prev(){return L(!1)},next(){return L(!0)},prevTab(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["prevTab","prev"]),y.prev()},nextTab(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["nextTab","next"]),y.next()}};Object.assign(d,y,{});const M=e=>{var{initNames:t,activeName:a}=_,{name:e,slots:l}=e,l=l?l.default:null;return e&&t.includes(e)?(0,_vue.h)("div",{key:e,class:["vxe-tabs-pane--item",{"is--visible":a===e,"has--content":!!l}]},l?f(l,{name:e}):[]):(0,_vue.createCommentVNode)()};(0,_vue.watch)(()=>m.modelValue,e=>{p(e,null),_.activeName=e}),(0,_vue.watch)(()=>_.activeName,e=>{k(e),(0,_vue.nextTick)(()=>{_.resizeFlag++})});const O=(0,_vue.ref)(0),W=((0,_vue.watch)(()=>m.options?m.options.length:-1,()=>{O.value++}),(0,_vue.watch)(()=>m.options,()=>{O.value++}),(0,_vue.watch)(O,()=>{x(m.options),b()}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>_.staticTabs?_.staticTabs.length:-1,()=>{W.value++}),(0,_vue.watch)(()=>_.staticTabs,()=>{W.value++}),(0,_vue.watch)(W,()=>{x(_.staticTabs),b()}),a&&(0,_vue.watch)(()=>a?a.reactData.resizeFlag:null,()=>{_.resizeFlag++}),(0,_vue.watch)(()=>_.resizeFlag,()=>{(0,_vue.nextTick)(()=>{b()})}),(0,_vue.nextTick)(()=>{_ui.globalEvents.on(d,"resize",b)}),(0,_vue.onMounted)(()=>{b()}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(d,"resize")}),(0,_vue.provide)("$xeTabs",d),p(m.modelValue,null),x(_.staticTabs.length?_.staticTabs:m.options),d.renderVN=()=>{var{type:e,height:t,padding:a,trigger:l}=m,i=v.value,n=c.value,s=r.default,n=s?n:i;return(0,_vue.h)("div",{ref:u,class:["vxe-tabs","vxe-tabs--"+(e||"default"),"trigger--"+("manual"===l?"trigger":"default"),{"is--padding":a,"is--height":t}],style:t?{height:(0,_dom.toCssUnit)(t)}:null},[(0,_vue.h)("div",{class:"vxe-tabs-slots"},s?s({}):[]),(u=>{const{type:e,titleWidth:o,titleAlign:v,showClose:c}=m,{activeName:d,lintLeft:t,lintWidth:a,isTabOver:l}=_;var i=r.extra;return(0,_vue.h)("div",{class:"vxe-tabs-header"},[l?(0,_vue.h)("div",{class:"vxe-tabs-header--bar vxe-tabs-header--left-bar",onClick:V},[(0,_vue.h)("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-tabs-header--wrapper"},[(0,_vue.h)("div",{ref:h,class:"vxe-tabs-header--item-wrapper"},u.map((t,a)=>{var{title:e,titleWidth:l,titleAlign:i,icon:n,name:s,slots:r}=t,r=r?r.tab:null,l=l||o,i=i||v;return(0,_vue.h)("div",{key:""+s,class:["vxe-tabs-header--item",i?"align--"+i:"",{"is--active":d===s}],style:l?{width:(0,_dom.toCssUnit)(l)}:null,onClick(e){N(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[n?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:n})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},r?f(r,{name:s,title:e}):""+e)]),c?(0,_vue.h)("div",{class:"vxe-tabs-header--close-btn",onClick(e){T(e,t,a,u)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})]):(0,_vue.createCommentVNode)()])])}).concat([(0,_vue.h)("span",{key:"line",class:"vxe-tabs-header--active-line type--"+(e||"default"),style:{left:t+"px",width:a+"px"}})]))]),l?(0,_vue.h)("div",{class:"vxe-tabs-header--bar vxe-tabs-header--right-bar",onClick:w},[(0,_vue.h)("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_vue.createCommentVNode)(),i?(0,_vue.h)("div",{class:"vxe-tabs-header--extra"},(0,_vn.getSlotVNs)(i({}))):(0,_vue.createCommentVNode)()])})(n),(0,_vue.h)("div",{class:"vxe-tabs-pane"},(e=>{var t=m["destroyOnClose"];const a=_["activeName"];var l=e.find(e=>e.name===a);return t?[l?M(l):(0,_vue.createCommentVNode)()]:e.map(e=>M(e))})(n))])},d},render(){return this.renderVN()}});
|
|
@@ -214,7 +214,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
214
214
|
value
|
|
215
215
|
}, evnt);
|
|
216
216
|
};
|
|
217
|
-
const
|
|
217
|
+
const handleChange = (value, evnt) => {
|
|
218
218
|
reactData.inputValue = value;
|
|
219
219
|
emit('update:modelValue', value);
|
|
220
220
|
if (_xeUtils.default.toValueString(props.modelValue) !== value) {
|
|
@@ -235,7 +235,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
235
235
|
const value = textElem.value;
|
|
236
236
|
reactData.inputValue = value;
|
|
237
237
|
if (immediate) {
|
|
238
|
-
|
|
238
|
+
handleChange(value, evnt);
|
|
239
239
|
}
|
|
240
240
|
$xeTextarea.dispatchEvent('input', {
|
|
241
241
|
value
|
|
@@ -249,7 +249,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
249
249
|
if (immediate) {
|
|
250
250
|
triggerEvent(evnt);
|
|
251
251
|
} else {
|
|
252
|
-
|
|
252
|
+
handleChange(reactData.inputValue, evnt);
|
|
253
253
|
}
|
|
254
254
|
};
|
|
255
255
|
const blurEvent = evnt => {
|
|
@@ -260,7 +260,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
260
260
|
inputValue
|
|
261
261
|
} = reactData;
|
|
262
262
|
if (!immediate) {
|
|
263
|
-
|
|
263
|
+
handleChange(inputValue, evnt);
|
|
264
264
|
}
|
|
265
265
|
$xeTextarea.dispatchEvent('blur', {
|
|
266
266
|
value: inputValue
|
|
@@ -72,6 +72,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
72
72
|
arrowStyle: {}
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
|
+
const internalData = {};
|
|
75
76
|
const refElem = (0, _vue.ref)();
|
|
76
77
|
const refMaps = {
|
|
77
78
|
refElem
|
|
@@ -81,6 +82,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
81
82
|
props,
|
|
82
83
|
context,
|
|
83
84
|
reactData,
|
|
85
|
+
internalData,
|
|
84
86
|
getRefMaps: () => refMaps
|
|
85
87
|
};
|
|
86
88
|
let tooltipMethods = {};
|
|
@@ -200,20 +202,25 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
200
202
|
};
|
|
201
203
|
return tooltipMethods.updatePlacement();
|
|
202
204
|
};
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
205
|
+
const handleDelayFn = () => {
|
|
206
|
+
internalData.showDelayTip = _xeUtils.default.debounce(() => {
|
|
207
|
+
if (reactData.tipActive) {
|
|
208
|
+
showTip();
|
|
209
|
+
}
|
|
210
|
+
}, props.enterDelay, {
|
|
211
|
+
leading: false,
|
|
212
|
+
trailing: true
|
|
213
|
+
});
|
|
214
|
+
};
|
|
211
215
|
const handleVisible = (target, content) => {
|
|
212
216
|
const contentSlot = slots.content;
|
|
213
217
|
if (!contentSlot && (content === '' || _xeUtils.default.eqNull(content))) {
|
|
214
218
|
return (0, _vue.nextTick)();
|
|
215
219
|
}
|
|
216
220
|
if (target) {
|
|
221
|
+
const {
|
|
222
|
+
showDelayTip
|
|
223
|
+
} = internalData;
|
|
217
224
|
const {
|
|
218
225
|
trigger,
|
|
219
226
|
enterDelay
|
|
@@ -222,7 +229,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
222
229
|
reactData.tipTarget = target;
|
|
223
230
|
reactData.tipContent = content;
|
|
224
231
|
if (enterDelay && trigger === 'hover') {
|
|
225
|
-
showDelayTip
|
|
232
|
+
if (showDelayTip) {
|
|
233
|
+
showDelayTip();
|
|
234
|
+
}
|
|
226
235
|
} else {
|
|
227
236
|
return showTip();
|
|
228
237
|
}
|
|
@@ -260,94 +269,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
260
269
|
const el = refElem.value;
|
|
261
270
|
if (tipTarget && el) {
|
|
262
271
|
updateTipStyle();
|
|
263
|
-
return (0, _vue.nextTick)().then(
|
|
272
|
+
return (0, _vue.nextTick)().then(() => {
|
|
273
|
+
updateTipStyle();
|
|
274
|
+
});
|
|
264
275
|
}
|
|
265
276
|
});
|
|
266
277
|
},
|
|
267
278
|
isActived() {
|
|
268
279
|
return reactData.tipActive;
|
|
269
280
|
},
|
|
270
|
-
setActived(
|
|
271
|
-
reactData.tipActive = !!
|
|
281
|
+
setActived(active) {
|
|
282
|
+
reactData.tipActive = !!active;
|
|
272
283
|
}
|
|
273
284
|
};
|
|
274
285
|
Object.assign($xeTooltip, tooltipMethods);
|
|
275
|
-
(0, _vue.watch)(() => props.content, () => {
|
|
276
|
-
reactData.tipContent = props.content;
|
|
277
|
-
});
|
|
278
|
-
(0, _vue.watch)(() => props.modelValue, val => {
|
|
279
|
-
if (!reactData.isUpdate) {
|
|
280
|
-
if (val) {
|
|
281
|
-
handleVisible(reactData.target, props.content);
|
|
282
|
-
} else {
|
|
283
|
-
tooltipMethods.close();
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
reactData.isUpdate = false;
|
|
287
|
-
});
|
|
288
|
-
(0, _vue.onMounted)(() => {
|
|
289
|
-
(0, _vue.nextTick)(() => {
|
|
290
|
-
const {
|
|
291
|
-
trigger,
|
|
292
|
-
content,
|
|
293
|
-
modelValue
|
|
294
|
-
} = props;
|
|
295
|
-
const wrapperElem = refElem.value;
|
|
296
|
-
if (wrapperElem) {
|
|
297
|
-
const parentNode = wrapperElem.parentNode;
|
|
298
|
-
if (parentNode) {
|
|
299
|
-
reactData.tipContent = content;
|
|
300
|
-
reactData.tipZindex = (0, _utils.nextZIndex)();
|
|
301
|
-
_xeUtils.default.arrayEach(wrapperElem.children, (elem, index) => {
|
|
302
|
-
if (index > 1) {
|
|
303
|
-
parentNode.insertBefore(elem, wrapperElem);
|
|
304
|
-
if (!reactData.target) {
|
|
305
|
-
reactData.target = elem;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
});
|
|
309
|
-
parentNode.removeChild(wrapperElem);
|
|
310
|
-
const {
|
|
311
|
-
target
|
|
312
|
-
} = reactData;
|
|
313
|
-
if (target) {
|
|
314
|
-
if (trigger === 'hover') {
|
|
315
|
-
target.onmouseenter = targetMouseenterEvent;
|
|
316
|
-
target.onmouseleave = targetMouseleaveEvent;
|
|
317
|
-
} else if (trigger === 'click') {
|
|
318
|
-
target.onclick = clickEvent;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
if (modelValue) {
|
|
322
|
-
handleVisible(target, content);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
|
-
});
|
|
328
|
-
(0, _vue.onBeforeUnmount)(() => {
|
|
329
|
-
const {
|
|
330
|
-
trigger
|
|
331
|
-
} = props;
|
|
332
|
-
const {
|
|
333
|
-
target
|
|
334
|
-
} = reactData;
|
|
335
|
-
const wrapperElem = refElem.value;
|
|
336
|
-
if (target) {
|
|
337
|
-
if (trigger === 'hover') {
|
|
338
|
-
target.onmouseenter = null;
|
|
339
|
-
target.onmouseleave = null;
|
|
340
|
-
} else if (trigger === 'click') {
|
|
341
|
-
target.onclick = null;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
if (wrapperElem) {
|
|
345
|
-
const parentNode = wrapperElem.parentNode;
|
|
346
|
-
if (parentNode) {
|
|
347
|
-
parentNode.removeChild(wrapperElem);
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
286
|
const renderContent = () => {
|
|
352
287
|
const {
|
|
353
288
|
useHTML
|
|
@@ -413,6 +348,79 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
413
348
|
style: tipStore.arrowStyle
|
|
414
349
|
}), ...(defaultSlot ? (0, _vn.getSlotVNs)(defaultSlot({})) : [])]);
|
|
415
350
|
};
|
|
351
|
+
(0, _vue.watch)(() => props.enterDelay, () => {
|
|
352
|
+
handleDelayFn();
|
|
353
|
+
});
|
|
354
|
+
(0, _vue.watch)(() => props.content, val => {
|
|
355
|
+
reactData.tipContent = val;
|
|
356
|
+
});
|
|
357
|
+
(0, _vue.watch)(() => props.modelValue, val => {
|
|
358
|
+
if (!reactData.isUpdate) {
|
|
359
|
+
if (val) {
|
|
360
|
+
handleVisible(reactData.target, props.content);
|
|
361
|
+
} else {
|
|
362
|
+
tooltipMethods.close();
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
reactData.isUpdate = false;
|
|
366
|
+
});
|
|
367
|
+
(0, _vue.onMounted)(() => {
|
|
368
|
+
(0, _vue.nextTick)(() => {
|
|
369
|
+
const {
|
|
370
|
+
trigger,
|
|
371
|
+
content
|
|
372
|
+
} = props;
|
|
373
|
+
const wrapperElem = refElem.value;
|
|
374
|
+
if (wrapperElem) {
|
|
375
|
+
const parentNode = wrapperElem.parentNode;
|
|
376
|
+
if (parentNode) {
|
|
377
|
+
reactData.tipContent = content;
|
|
378
|
+
reactData.tipZindex = (0, _utils.nextZIndex)();
|
|
379
|
+
_xeUtils.default.arrayEach(wrapperElem.children, (elem, index) => {
|
|
380
|
+
if (index > 1) {
|
|
381
|
+
parentNode.insertBefore(elem, wrapperElem);
|
|
382
|
+
if (!reactData.target) {
|
|
383
|
+
reactData.target = elem;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
parentNode.removeChild(wrapperElem);
|
|
388
|
+
const {
|
|
389
|
+
target
|
|
390
|
+
} = reactData;
|
|
391
|
+
if (target) {
|
|
392
|
+
if (trigger === 'hover') {
|
|
393
|
+
target.onmouseenter = targetMouseenterEvent;
|
|
394
|
+
target.onmouseleave = targetMouseleaveEvent;
|
|
395
|
+
} else if (trigger === 'click') {
|
|
396
|
+
target.onclick = clickEvent;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (props.modelValue) {
|
|
400
|
+
handleVisible(target, content);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
(0, _vue.onBeforeUnmount)(() => {
|
|
407
|
+
const {
|
|
408
|
+
target
|
|
409
|
+
} = reactData;
|
|
410
|
+
const wrapperElem = refElem.value;
|
|
411
|
+
if (target) {
|
|
412
|
+
target.onmouseenter = null;
|
|
413
|
+
target.onmouseleave = null;
|
|
414
|
+
target.onclick = null;
|
|
415
|
+
}
|
|
416
|
+
if (wrapperElem) {
|
|
417
|
+
const parentNode = wrapperElem.parentNode;
|
|
418
|
+
if (parentNode) {
|
|
419
|
+
parentNode.removeChild(wrapperElem);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
handleDelayFn();
|
|
416
424
|
$xeTooltip.renderVN = renderVN;
|
|
417
425
|
return $xeTooltip;
|
|
418
426
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTooltip",props:{modelValue:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tooltip.size||(0,_ui.getConfig)().size},trigger:{type:String,default:()=>(0,_ui.getConfig)().tooltip.trigger||"hover"},theme:{type:String,default:()=>(0,_ui.getConfig)().tooltip.theme||"dark"},content:{type:[String,Number],default:null},useHTML:Boolean,zIndex:[String,Number],popupClassName:[String,Function],isArrow:{type:Boolean,default:!0},enterable:Boolean,enterDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.enterDelay},leaveDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.leaveDelay}},emits:["update:modelValue"],setup(p,e){const{slots:v,emit:l}=e;var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(p)["computeSize"],d=(0,_vue.reactive)({target:null,isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}),g=(0,_vue.ref)(),i={refElem:g},f={xID:t,props:p,context:e,reactData:d,getRefMaps:()=>i};let r={};const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTooltip",props:{modelValue:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().tooltip.size||(0,_ui.getConfig)().size},trigger:{type:String,default:()=>(0,_ui.getConfig)().tooltip.trigger||"hover"},theme:{type:String,default:()=>(0,_ui.getConfig)().tooltip.theme||"dark"},content:{type:[String,Number],default:null},useHTML:Boolean,zIndex:[String,Number],popupClassName:[String,Function],isArrow:{type:Boolean,default:!0},enterable:Boolean,enterDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.enterDelay},leaveDelay:{type:Number,default:()=>(0,_ui.getConfig)().tooltip.leaveDelay}},emits:["update:modelValue"],setup(p,e){const{slots:v,emit:l}=e;var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(p)["computeSize"],d=(0,_vue.reactive)({target:null,isUpdate:!1,visible:!1,tipContent:"",tipActive:!1,tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:{}}}),o={},g=(0,_vue.ref)(),i={refElem:g},f={xID:t,props:p,context:e,reactData:d,internalData:o,getRefMaps:()=>i};let r={};const n=()=>{var{tipTarget:i,tipStore:l}=d;if(i){var{scrollTop:r,scrollLeft:o,visibleWidth:n}=(0,_dom.getDomNode)(),{top:a,left:u}=(0,_dom.getAbsolutePos)(i),s=g.value,p=s.offsetHeight,s=s.offsetWidth;let e=u,t=a-p-6;(e=Math.max(6,u+Math.floor((i.offsetWidth-s)/2)))+s+6>o+n&&(e=o+n-s-6),a-p<r+6&&(l.placement="bottom",t=a+i.offsetHeight+6),l.style.top=t+"px",l.style.left=e+"px",l.arrowStyle.left=u-e+i.offsetWidth/2+"px"}},a=e=>{e!==d.visible&&(d.visible=e,d.isUpdate=!0,l("update:modelValue",e))},u=()=>{d.tipZindex<(0,_utils.getLastZIndex)()&&(d.tipZindex=(0,_utils.nextZIndex)())},s=()=>{d.visible?r.close():S(d.target,p.content)},_=()=>{S(d.target,p.content)},m=()=>{var{trigger:e,enterable:t,leaveDelay:i}=p;d.tipActive=!1,t&&"hover"===e?setTimeout(()=>{d.tipActive||r.close()},i):r.close()},x=()=>{d.tipActive=!0},h=()=>{var{trigger:e,enterable:t,leaveDelay:i}=p;d.tipActive=!1,t&&"hover"===e&&setTimeout(()=>{d.tipActive||r.close()},i)},y=()=>{var e=d["tipStore"],t=g.value;return t&&!t.parentNode&&document.body.appendChild(t),a(!0),u(),e.placement="top",e.style={width:"auto",left:0,top:0,zIndex:p.zIndex||d.tipZindex},e.arrowStyle={left:"50%"},r.updatePlacement()},b=()=>{o.showDelayTip=_xeUtils.default.debounce(()=>{d.tipActive&&y()},p.enterDelay,{leading:!1,trailing:!0})},S=(e,t)=>{var i=v.content;if((i||""!==t&&!_xeUtils.default.eqNull(t))&&e){var i=o["showDelayTip"],{trigger:l,enterDelay:r}=p;if(d.tipActive=!0,d.tipTarget=e,d.tipContent=t,!r||"hover"!==l)return y();i&&i()}return(0,_vue.nextTick)()};r={dispatchEvent(e,t,i){l(e,(0,_ui.createEvent)(i,{$tooltip:f},t))},open(e,t){return S(e||d.target,t)},close(){return d.tipTarget=null,d.tipActive=!1,Object.assign(d.tipStore,{style:{},placement:"",arrowStyle:null}),a(!1),(0,_vue.nextTick)()},toVisible(e,t){return S(e,t)},updatePlacement(){return(0,_vue.nextTick)().then(()=>{var e=d["tipTarget"],t=g.value;if(e&&t)return n(),(0,_vue.nextTick)().then(()=>{n()})})},isActived(){return d.tipActive},setActived(e){d.tipActive=!!e}},Object.assign(f,r);return(0,_vue.watch)(()=>p.enterDelay,()=>{b()}),(0,_vue.watch)(()=>p.content,e=>{d.tipContent=e}),(0,_vue.watch)(()=>p.modelValue,e=>{d.isUpdate||(e?S(d.target,p.content):r.close()),d.isUpdate=!1}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e,{trigger:t,content:i}=p;const l=g.value;if(l){const r=l.parentNode;r&&(d.tipContent=i,d.tipZindex=(0,_utils.nextZIndex)(),_xeUtils.default.arrayEach(l.children,(e,t)=>{1<t&&(r.insertBefore(e,l),d.target||(d.target=e))}),r.removeChild(l),e=d["target"],e&&("hover"===t?(e.onmouseenter=_,e.onmouseleave=m):"click"===t&&(e.onclick=s)),p.modelValue)&&S(e,i)}})}),(0,_vue.onBeforeUnmount)(()=>{var e=d["target"],t=g.value;e&&(e.onmouseenter=null,e.onmouseleave=null,e.onclick=null),t&&(e=t.parentNode)&&e.removeChild(t)}),b(),f.renderVN=()=>{var{popupClassName:e,theme:t,isArrow:i,enterable:l}=p,{tipActive:r,visible:o,tipStore:n}=d,a=v.default,u=c.value;let s;return l&&(s={onMouseenter:x,onMouseleave:h}),(0,_vue.h)("div",Object.assign({ref:g,class:["vxe-table--tooltip-wrapper","theme--"+t,e?_xeUtils.default.isFunction(e)?e({$tooltip:f}):e:"",{["size--"+u]:u,["placement--"+n.placement]:n.placement,"is--enterable":l,"is--visible":o,"is--arrow":i,"is--active":r}],style:n.style},s),[(t=p.useHTML,e=d.tipContent,(u=v.content)?(0,_vue.h)("div",{key:1,class:"vxe-table--tooltip-content"},(0,_vn.getSlotVNs)(u({}))):t?(0,_vue.h)("div",{key:2,class:"vxe-table--tooltip-content",innerHTML:e}):(0,_vue.h)("div",{key:3,class:"vxe-table--tooltip-content"},""+e)),(0,_vue.h)("div",{class:"vxe-table--tooltip-arrow",style:n.arrowStyle}),...a?(0,_vn.getSlotVNs)(a({})):[]])},f},render(){return this.renderVN()}});
|
package/lib/tree/src/tree.js
CHANGED
|
@@ -482,7 +482,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
482
482
|
nodeMaps
|
|
483
483
|
} = reactData;
|
|
484
484
|
if (!lazy) {
|
|
485
|
-
return
|
|
485
|
+
return Promise.resolve([]);
|
|
486
486
|
}
|
|
487
487
|
const childrenField = computeChildrenField.value;
|
|
488
488
|
const parentNodeItem = nodeMaps[getNodeId(node)];
|
|
@@ -1212,7 +1212,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1212
1212
|
})
|
|
1213
1213
|
} : {})]);
|
|
1214
1214
|
};
|
|
1215
|
-
$xeTree.renderVN = renderVN;
|
|
1216
1215
|
const dataFlag = (0, _vue.ref)(0);
|
|
1217
1216
|
(0, _vue.watch)(() => props.data ? props.data.length : 0, () => {
|
|
1218
1217
|
dataFlag.value++;
|
|
@@ -1243,6 +1242,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1243
1242
|
});
|
|
1244
1243
|
updateData(props.data || []);
|
|
1245
1244
|
updateCheckboxChecked(props.checkNodeKeys || []);
|
|
1245
|
+
$xeTree.renderVN = renderVN;
|
|
1246
1246
|
return $xeTree;
|
|
1247
1247
|
},
|
|
1248
1248
|
render() {
|