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
|
@@ -20,28 +20,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
20
20
|
className: [String, Function],
|
|
21
21
|
disabled: Boolean
|
|
22
22
|
},
|
|
23
|
+
emits: [],
|
|
23
24
|
setup(props, {
|
|
24
25
|
slots
|
|
25
26
|
}) {
|
|
26
27
|
const elem = (0, _vue.ref)();
|
|
27
28
|
const $xeSelect = (0, _vue.inject)('$xeSelect', {});
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const optionConfig = (0, _util.createOption)($xeSelect, props);
|
|
30
|
+
const $xeOptgroup = {
|
|
31
|
+
optionConfig
|
|
31
32
|
};
|
|
32
|
-
|
|
33
|
-
(0, _vue.provide)('
|
|
34
|
-
(0, _util.watchOption)(props,
|
|
33
|
+
optionConfig.options = [];
|
|
34
|
+
(0, _vue.provide)('$xeOptgroup', $xeOptgroup);
|
|
35
|
+
(0, _util.watchOption)(props, optionConfig);
|
|
35
36
|
(0, _vue.onMounted)(() => {
|
|
36
|
-
|
|
37
|
+
const el = elem.value;
|
|
38
|
+
(0, _util.assembleOption)($xeSelect, el, optionConfig);
|
|
37
39
|
});
|
|
38
40
|
(0, _vue.onUnmounted)(() => {
|
|
39
|
-
(0, _util.destroyOption)($xeSelect,
|
|
41
|
+
(0, _util.destroyOption)($xeSelect, optionConfig);
|
|
40
42
|
});
|
|
41
43
|
return () => {
|
|
44
|
+
const defaultSlot = slots.default;
|
|
42
45
|
return (0, _vue.h)('div', {
|
|
43
46
|
ref: elem
|
|
44
|
-
},
|
|
47
|
+
}, defaultSlot ? defaultSlot({}) : []);
|
|
45
48
|
};
|
|
46
49
|
}
|
|
47
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOptgroup",props:{label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},setup(e,{slots:t}){const u=(0,_vue.ref)(),o=(0,_vue.inject)("$xeSelect",{}),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOptgroup",props:{label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},emits:[],setup(e,{slots:t}){const u=(0,_vue.ref)(),o=(0,_vue.inject)("$xeSelect",{}),i=(0,_util.createOption)(o,e);var n={optionConfig:i};return i.options=[],(0,_vue.provide)("$xeOptgroup",n),(0,_util.watchOption)(e,i),(0,_vue.onMounted)(()=>{var e=u.value;(0,_util.assembleOption)(o,e,i)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(o,i)}),()=>{var e=t.default;return(0,_vue.h)("div",{ref:u},e?e({}):[])}}});
|
package/lib/select/src/option.js
CHANGED
|
@@ -9,7 +9,7 @@ var _util = require("./util");
|
|
|
9
9
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
10
10
|
name: 'VxeOption',
|
|
11
11
|
props: {
|
|
12
|
-
value:
|
|
12
|
+
value: [String, Number, Boolean],
|
|
13
13
|
label: {
|
|
14
14
|
type: [String, Number, Boolean],
|
|
15
15
|
default: ''
|
|
@@ -21,20 +21,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
21
21
|
className: [String, Function],
|
|
22
22
|
disabled: Boolean
|
|
23
23
|
},
|
|
24
|
+
emits: [],
|
|
24
25
|
setup(props, {
|
|
25
26
|
slots
|
|
26
27
|
}) {
|
|
27
28
|
const elem = (0, _vue.ref)();
|
|
28
29
|
const $xeSelect = (0, _vue.inject)('$xeSelect', {});
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
(0, _util.watchOption)(props,
|
|
30
|
+
const $xeOptgroup = (0, _vue.inject)('$xeOptgroup', null);
|
|
31
|
+
const optionConfig = (0, _util.createOption)($xeSelect, props);
|
|
32
|
+
optionConfig.slots = slots;
|
|
33
|
+
(0, _util.watchOption)(props, optionConfig);
|
|
33
34
|
(0, _vue.onMounted)(() => {
|
|
34
|
-
|
|
35
|
+
const el = elem.value;
|
|
36
|
+
(0, _util.assembleOption)($xeSelect, el, optionConfig, $xeOptgroup);
|
|
35
37
|
});
|
|
36
38
|
(0, _vue.onUnmounted)(() => {
|
|
37
|
-
(0, _util.destroyOption)($xeSelect,
|
|
39
|
+
(0, _util.destroyOption)($xeSelect, optionConfig);
|
|
38
40
|
});
|
|
39
41
|
return () => {
|
|
40
42
|
return (0, _vue.h)('div', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOption",props:{value:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOption",props:{value:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},emits:[],setup(e,{slots:t}){const u=(0,_vue.ref)(),l=(0,_vue.inject)("$xeSelect",{}),o=(0,_vue.inject)("$xeOptgroup",null),n=(0,_util.createOption)(l,e);return n.slots=t,(0,_util.watchOption)(e,n),(0,_vue.onMounted)(()=>{var e=u.value;(0,_util.assembleOption)(l,e,n,o)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(l,n)}),()=>(0,_vue.h)("div",{ref:u})}});
|
package/lib/select/src/select.js
CHANGED
|
@@ -60,17 +60,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
60
60
|
remote: Boolean,
|
|
61
61
|
remoteMethod: Function,
|
|
62
62
|
emptyText: String,
|
|
63
|
+
transfer: {
|
|
64
|
+
type: Boolean,
|
|
65
|
+
default: null
|
|
66
|
+
},
|
|
63
67
|
// 已废弃,被 option-config.keyField 替换
|
|
64
68
|
optionId: {
|
|
65
69
|
type: String,
|
|
66
70
|
default: () => (0, _ui.getConfig)().select.optionId
|
|
67
71
|
},
|
|
68
72
|
// 已废弃,被 option-config.useKey 替换
|
|
69
|
-
optionKey: Boolean
|
|
70
|
-
transfer: {
|
|
71
|
-
type: Boolean,
|
|
72
|
-
default: null
|
|
73
|
-
}
|
|
73
|
+
optionKey: Boolean
|
|
74
74
|
},
|
|
75
75
|
emits: ['update:modelValue', 'change', 'clear', 'blur', 'focus', 'click'],
|
|
76
76
|
setup(props, context) {
|
|
@@ -79,6 +79,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
79
79
|
emit
|
|
80
80
|
} = context;
|
|
81
81
|
const $xeModal = (0, _vue.inject)('$xeModal', null);
|
|
82
|
+
const $xeDrawer = (0, _vue.inject)('$xeDrawer', null);
|
|
82
83
|
const $xeTable = (0, _vue.inject)('$xeTable', null);
|
|
83
84
|
const $xeForm = (0, _vue.inject)('$xeForm', null);
|
|
84
85
|
const formItemInfo = (0, _vue.inject)('xeFormItemInfo', null);
|
|
@@ -106,6 +107,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
106
107
|
searchValue: '',
|
|
107
108
|
searchLoading: false
|
|
108
109
|
});
|
|
110
|
+
const internalData = {
|
|
111
|
+
hpTimeout: undefined
|
|
112
|
+
};
|
|
109
113
|
const refElem = (0, _vue.ref)();
|
|
110
114
|
const refInput = (0, _vue.ref)();
|
|
111
115
|
const refInpSearch = (0, _vue.ref)();
|
|
@@ -119,6 +123,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
119
123
|
props,
|
|
120
124
|
context,
|
|
121
125
|
reactData,
|
|
126
|
+
internalData,
|
|
122
127
|
getRefMaps: () => refMaps
|
|
123
128
|
};
|
|
124
129
|
let selectMethods = {};
|
|
@@ -155,7 +160,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
155
160
|
if (_xeUtils.default.isBoolean(globalTransfer)) {
|
|
156
161
|
return globalTransfer;
|
|
157
162
|
}
|
|
158
|
-
if ($xeTable || $xeModal || $xeForm) {
|
|
163
|
+
if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
|
|
159
164
|
return true;
|
|
160
165
|
}
|
|
161
166
|
}
|
|
@@ -175,10 +180,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
175
180
|
return (0, _ui.getI18n)('vxe.base.pleaseSelect');
|
|
176
181
|
});
|
|
177
182
|
const computePropsOpts = (0, _vue.computed)(() => {
|
|
178
|
-
return props.optionProps
|
|
183
|
+
return Object.assign({}, props.optionProps);
|
|
179
184
|
});
|
|
180
185
|
const computeGroupPropsOpts = (0, _vue.computed)(() => {
|
|
181
|
-
return props.optionGroupProps
|
|
186
|
+
return Object.assign({}, props.optionGroupProps);
|
|
182
187
|
});
|
|
183
188
|
const computeLabelField = (0, _vue.computed)(() => {
|
|
184
189
|
const propsOpts = computePropsOpts.value;
|
|
@@ -216,6 +221,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
216
221
|
const computeMultiMaxCharNum = (0, _vue.computed)(() => {
|
|
217
222
|
return _xeUtils.default.toNumber(props.multiCharOverflow);
|
|
218
223
|
});
|
|
224
|
+
const computeSelectLabel = (0, _vue.computed)(() => {
|
|
225
|
+
const {
|
|
226
|
+
modelValue,
|
|
227
|
+
multiple,
|
|
228
|
+
remote
|
|
229
|
+
} = props;
|
|
230
|
+
const multiMaxCharNum = computeMultiMaxCharNum.value;
|
|
231
|
+
if (modelValue && multiple) {
|
|
232
|
+
const vals = _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
|
|
233
|
+
if (remote) {
|
|
234
|
+
return vals.map(val => getRemoteSelectLabel(val)).join(', ');
|
|
235
|
+
}
|
|
236
|
+
return vals.map(val => {
|
|
237
|
+
const label = getSelectLabel(val);
|
|
238
|
+
if (multiMaxCharNum > 0 && label.length > multiMaxCharNum) {
|
|
239
|
+
return `${label.substring(0, multiMaxCharNum)}...`;
|
|
240
|
+
}
|
|
241
|
+
return label;
|
|
242
|
+
}).join(', ');
|
|
243
|
+
}
|
|
244
|
+
if (remote) {
|
|
245
|
+
return getRemoteSelectLabel(modelValue);
|
|
246
|
+
}
|
|
247
|
+
return getSelectLabel(modelValue);
|
|
248
|
+
});
|
|
219
249
|
const callSlot = (slotFunc, params) => {
|
|
220
250
|
if (slotFunc) {
|
|
221
251
|
if (_xeUtils.default.isString(slotFunc)) {
|
|
@@ -285,31 +315,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
285
315
|
const item = findOption(value);
|
|
286
316
|
return _xeUtils.default.toValueString(item ? item[labelField] : value);
|
|
287
317
|
};
|
|
288
|
-
const computeSelectLabel = (0, _vue.computed)(() => {
|
|
289
|
-
const {
|
|
290
|
-
modelValue,
|
|
291
|
-
multiple,
|
|
292
|
-
remote
|
|
293
|
-
} = props;
|
|
294
|
-
const multiMaxCharNum = computeMultiMaxCharNum.value;
|
|
295
|
-
if (modelValue && multiple) {
|
|
296
|
-
const vals = _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
|
|
297
|
-
if (remote) {
|
|
298
|
-
return vals.map(val => getRemoteSelectLabel(val)).join(', ');
|
|
299
|
-
}
|
|
300
|
-
return vals.map(val => {
|
|
301
|
-
const label = getSelectLabel(val);
|
|
302
|
-
if (multiMaxCharNum > 0 && label.length > multiMaxCharNum) {
|
|
303
|
-
return `${label.substring(0, multiMaxCharNum)}...`;
|
|
304
|
-
}
|
|
305
|
-
return label;
|
|
306
|
-
}).join(', ');
|
|
307
|
-
}
|
|
308
|
-
if (remote) {
|
|
309
|
-
return getRemoteSelectLabel(modelValue);
|
|
310
|
-
}
|
|
311
|
-
return getSelectLabel(modelValue);
|
|
312
|
-
});
|
|
313
318
|
const getOptkey = () => {
|
|
314
319
|
const optionOpts = computeOptionOpts.value;
|
|
315
320
|
return optionOpts.keyField || props.optionId || '_X_OPTION_KEY';
|
|
@@ -499,15 +504,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
499
504
|
}
|
|
500
505
|
});
|
|
501
506
|
};
|
|
502
|
-
let hidePanelTimeout;
|
|
503
507
|
const showOptionPanel = () => {
|
|
504
508
|
const {
|
|
505
509
|
loading,
|
|
506
510
|
filterable
|
|
507
511
|
} = props;
|
|
512
|
+
const {
|
|
513
|
+
hpTimeout
|
|
514
|
+
} = internalData;
|
|
508
515
|
const isDisabled = computeIsDisabled.value;
|
|
509
516
|
if (!loading && !isDisabled) {
|
|
510
|
-
|
|
517
|
+
if (hpTimeout) {
|
|
518
|
+
clearTimeout(hpTimeout);
|
|
519
|
+
internalData.hpTimeout = undefined;
|
|
520
|
+
}
|
|
511
521
|
if (!reactData.initialized) {
|
|
512
522
|
reactData.initialized = true;
|
|
513
523
|
}
|
|
@@ -536,13 +546,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
536
546
|
reactData.searchValue = '';
|
|
537
547
|
reactData.searchLoading = false;
|
|
538
548
|
reactData.visiblePanel = false;
|
|
539
|
-
|
|
549
|
+
internalData.hpTimeout = window.setTimeout(() => {
|
|
540
550
|
reactData.isAniVisible = false;
|
|
541
551
|
}, 350);
|
|
542
552
|
};
|
|
543
553
|
const changeEvent = (evnt, selectValue) => {
|
|
554
|
+
emit('update:modelValue', selectValue);
|
|
544
555
|
if (selectValue !== props.modelValue) {
|
|
545
|
-
emit('update:modelValue', selectValue);
|
|
546
556
|
selectMethods.dispatchEvent('change', {
|
|
547
557
|
value: selectValue
|
|
548
558
|
}, evnt);
|
|
@@ -807,7 +817,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
807
817
|
const focusSearchEvent = () => {
|
|
808
818
|
reactData.isActivated = true;
|
|
809
819
|
};
|
|
810
|
-
const
|
|
820
|
+
const handleSearchEvent = () => {
|
|
811
821
|
const {
|
|
812
822
|
remote,
|
|
813
823
|
remoteMethod
|
|
@@ -826,7 +836,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
826
836
|
} else {
|
|
827
837
|
refreshOption();
|
|
828
838
|
}
|
|
829
|
-
}
|
|
839
|
+
};
|
|
840
|
+
const triggerSearchEvent = _xeUtils.default.debounce(handleSearchEvent, 350, {
|
|
830
841
|
trailing: true
|
|
831
842
|
});
|
|
832
843
|
const togglePanelEvent = params => {
|
|
@@ -1063,7 +1074,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1063
1074
|
ref: 'hideOption'
|
|
1064
1075
|
}, defaultSlot ? defaultSlot({}) : []), (0, _vue.h)('span', {
|
|
1065
1076
|
class: 'vxe-select-label'
|
|
1066
|
-
}, selectLabel)]);
|
|
1077
|
+
}, [selectLabel])]);
|
|
1067
1078
|
}
|
|
1068
1079
|
return (0, _vue.h)('div', {
|
|
1069
1080
|
ref: refElem,
|
|
@@ -1138,7 +1149,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1138
1149
|
class: 'vxe-select--panel-footer'
|
|
1139
1150
|
}, footerSlot({})) : (0, _vue.createCommentVNode)()])] : [])])]);
|
|
1140
1151
|
};
|
|
1141
|
-
$xeSelect.renderVN = renderVN;
|
|
1142
1152
|
(0, _vue.watch)(() => reactData.staticOptions, value => {
|
|
1143
1153
|
if (value.some(item => item.options && item.options.length)) {
|
|
1144
1154
|
reactData.fullOptionList = [];
|
|
@@ -1184,6 +1194,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1184
1194
|
_ui.globalEvents.off($xeSelect, 'blur');
|
|
1185
1195
|
});
|
|
1186
1196
|
(0, _vue.provide)('$xeSelect', $xeSelect);
|
|
1197
|
+
$xeSelect.renderVN = renderVN;
|
|
1187
1198
|
return $xeSelect;
|
|
1188
1199
|
},
|
|
1189
1200
|
render() {
|
|
@@ -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"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_input=_interopRequireDefault(require("../../input/src/input")),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteMethod:Function,emptyText:String,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","blur","focus","click"],setup(m,e){const{slots:x,emit:i}=e,w=(0,_vue.inject)("$xeModal",null),F=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var B=_xeUtils.default.uniqueId();const K=(0,_ui.useSize)(m)["computeSize"],E=(0,_vue.reactive)({initialized:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],remoteValueList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentOption:null,currentValue:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",searchLoading:!1}),b=(0,_vue.ref)(),h=(0,_vue.ref)(),O=(0,_vue.ref)(),L=(0,_vue.ref)(),V=(0,_vue.ref)(),q={refElem:b},T={xID:B,props:m,context:e,reactData:E,getRefMaps:()=>q};let u={};const D=(0,_vue.computed)(()=>{var e=m["readonly"];return null===e?!!l&&l.props.readonly:e}),y=(0,_vue.computed)(()=>{var e=m["disabled"];return null===e?!!l&&l.props.disabled:e}),A=(0,_vue.computed)(()=>{var e=m["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(F||w||l)return!0}return e}),j=(0,_vue.computed)(()=>{var e=m["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),t=(0,_vue.computed)(()=>m.optionProps||{}),n=(0,_vue.computed)(()=>m.optionGroupProps||{}),r=(0,_vue.computed)(()=>{return t.value.label||"label"}),S=(0,_vue.computed)(()=>{return t.value.value||"value"}),c=(0,_vue.computed)(()=>{return n.value.label||"label"}),P=(0,_vue.computed)(()=>{return n.value.options||"options"}),z=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,max:l}=m;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)}),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,m.optionConfig)),I=(0,_vue.computed)(()=>E.fullGroupList.some(e=>e.options&&e.options.length)),R=(0,_vue.computed)(()=>_xeUtils.default.toNumber(m.multiCharOverflow)),N=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=x[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],s=t=>{var{fullOptionList:e,fullGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])},a=t=>{var e=E["remoteValueList"],l=r.value,e=e.find(e=>t===e.key),e=e?e.result:null;return _xeUtils.default.toValueString(e?e[l]:t)},v=e=>{var t=r.value,l=s(e);return _xeUtils.default.toValueString(l?l[t]:e)},M=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,remote:l}=m;const i=R.value;return e&&t?(t=_xeUtils.default.isArray(e)?e:[e],(l?t.map(e=>a(e)):t.map(e=>{e=v(e);return 0<i&&e.length>i?e.substring(0,i)+"...":e})).join(", ")):(l?a:v)(e)}),p=()=>{return C.value.keyField||m.optionId||"_X_OPTION_KEY"},U=e=>{e=e[p()];return e?encodeURIComponent(e):""},d=()=>{const{filterable:e,filterMethod:t}=m;var{fullOptionList:l,fullGroupList:i,searchValue:o}=E,u=I.value;const n=c.value,s=r.value,a=(""+(o||"")).toLowerCase();return u?e&&t?E.visibleGroupList=i.filter(e=>isOptionVisible(e)&&t({group:e,option:null,searchValue:a})):E.visibleGroupList=e?i.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[n]).toLowerCase().indexOf(a))):i.filter(isOptionVisible):e&&t?E.visibleOptionList=l.filter(e=>isOptionVisible(e)&&t({group:null,option:e,searchValue:a})):E.visibleOptionList=e?l.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[s]).toLowerCase().indexOf(a))):l.filter(isOptionVisible),(0,_vue.nextTick)()},f=()=>{var{fullOptionList:e,fullGroupList:t}=E;const l=P.value,i=p(),o=e=>{U(e)||(e[i]=getOptUniqueId())};t.length?t.forEach(e=>{o(e),e[l]&&e[l].forEach(o)}):e.length&&e.forEach(o),d()},G=e=>{var t=S.value;e&&(E.currentOption=e,E.currentValue=e[t])},$=(i,o)=>(0,_vue.nextTick)().then(()=>{var e,t,l;i&&(e=L.value,t=V.value.querySelector(`[optid='${U(i)}']`),e)&&t&&(l=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>l&&(e.scrollTop=t.offsetTop+t.offsetHeight-l):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5))}),H=()=>(0,_vue.nextTick)().then(()=>{var i=m["placement"],o=E["panelIndex"],u=b.value,n=V.value,e=A.value;if(n&&u){var s=u.offsetHeight,a=u.offsetWidth,r=n.offsetHeight,n=n.offsetWidth,o={zIndex:o},{boundingTop:u,boundingLeft:v,visibleHeight:p,visibleWidth:c}=(0,_dom.getAbsolutePos)(u);let l="bottom";if(e){let e=v,t=u+s;"top"===i?(l="top",t=u-r):i||(t+r+5>p&&(l="top",t=u-r),t<5&&(l="bottom",t=u+s)),e+n+5>c&&(e-=e+n+5-c),e<5&&(e=5),Object.assign(o,{left:e+"px",top:t+"px",minWidth:a+"px"})}else"top"===i?(l="top",o.bottom=s+"px"):i||p<u+s+r&&5<u-s-r&&(l="top",o.bottom=s+"px");return E.panelStyle=o,E.panelPlacement=l,(0,_vue.nextTick)()}});let Y;const _=()=>{var{loading:e,filterable:t}=m,l=y.value;e||l||(clearTimeout(Y),E.initialized||(E.initialized=!0),E.isActivated=!0,E.isAniVisible=!0,t&&d(),setTimeout(()=>{var e=m["modelValue"],e=s(_xeUtils.default.isArray(e)?e[0]:e);E.visiblePanel=!0,e&&(G(e),$(e)),m.filterable&&(0,_vue.nextTick)(()=>{var e=O.value;e&&e.focus()})},10),E.panelIndex<(0,_utils.getLastZIndex)()&&(E.panelIndex=(0,_utils.nextZIndex)()),H())},g=()=>{E.searchValue="",E.searchLoading=!1,E.visiblePanel=!1,Y=window.setTimeout(()=>{E.isAniVisible=!1},350)},k=(e,t)=>{t!==m.modelValue&&(i("update:modelValue",t),u.dispatchEvent("change",{value:t},e),l)&&o&&l.triggerItemEvent(e,o.itemConfig.field,t)},W=(e,t)=>{E.remoteValueList=[],k(e,t),u.dispatchEvent("clear",{value:t},e)},Z=(e,t)=>{W(t,null),g()},X=(t,l,i)=>{var{modelValue:o,multiple:u}=m,n=E["remoteValueList"];if(u){let e=[];u=_xeUtils.default.eqNull(o)?[]:_xeUtils.default.isArray(o)?o:[o],o=_xeUtils.default.findIndexOf(u,e=>e===l),o=(e=-1===o?u.concat([l]):u.filter(e=>e!==l),n.find(e=>e.key===l));o?o.result=i:n.push({key:l,result:i}),k(t,e)}else E.remoteValueList=[{key:l,result:i}],k(t,l),g()},J=e=>{var t=E["visiblePanel"];y.value||t&&(t=V.value,((0,_dom.getEventTargetNode)(e,t).flag?H:g)())},Q=e=>{var t,l,i=E["visiblePanel"];y.value||(t=b.value,l=V.value,E.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!E.isActivated&&g())},ee=l=>{var e=m["clearable"],{visiblePanel:t,currentValue:i,currentOption:o}=E;if(!y.value){var u=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.TAB),n=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ESCAPE),a=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.DELETE),p=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(u&&(E.isActivated=!1),t)if(s||u)g();else if(n)l.preventDefault(),l.stopPropagation(),X(l,i,o);else if(a||r){l.preventDefault();let{firstOption:e,offsetOption:t}=((t,l)=>{var{visibleOptionList:i,visibleGroupList:o}=E,e=I.value,u=S.value,n=P.value;let s,a,r,v;if(e)for(let e=0;e<o.length;e++){var p=o[e],c=p[n],d=p.disabled;if(c)for(let e=0;e<c.length;e++){var f=c[e],_=isOptionVisible(f),g=d||f.disabled;if(s||g||(s=f),v&&_&&!g&&(r=f,!l))return{offsetOption:r};if(t===f[u]){if(v=f,l)return{offsetOption:a}}else _&&!g&&(a=f)}}else for(let e=0;e<i.length;e++){var b=i[e],h=b.disabled;if(s||h||(s=b),v&&!h&&(r=b,!l))return{offsetOption:r};if(t===b[u]){if(v=b,l)return{offsetOption:a}}else h||(a=b)}return{firstOption:s}})(i,a);t||(t=>{var{visibleOptionList:e,visibleGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])})(i)||(t=e),G(t),$(t,r)}else p&&l.preventDefault();else(a||r||n||p)&&E.isActivated&&(l.preventDefault(),_());E.isActivated&&v&&e&&W(l,null)}},te=()=>{g()},le=e=>{y.value||E.visiblePanel||(E.triggerFocusPanel=!0,_(),setTimeout(()=>{E.triggerFocusPanel=!1},150)),u.dispatchEvent("focus",{},e)},ie=e=>{ae(e),u.dispatchEvent("click",{},e)},oe=e=>{E.isActivated=!1,u.dispatchEvent("blur",{},e)},ue=e=>{E.searchValue=e},ne=()=>{E.isActivated=!0},se=_xeUtils.default.debounce(function(){var{remote:e,remoteMethod:t}=m,l=E["searchValue"];e&&t?(E.searchLoading=!0,Promise.resolve(t({searchValue:l})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{E.searchLoading=!1,d()})):d()},350,{trailing:!0}),ae=e=>{e=e.$event;e.preventDefault(),E.triggerFocusPanel?E.triggerFocusPanel=!1:(E.visiblePanel?g:_)()},re=(e,v)=>{const{optionKey:p,modelValue:c}=m,d=E["currentValue"];var t=C.value;const f=r.value,_=S.value,g=I.value,b=t["useKey"],h=x.option;return e.map((t,e)=>{var{slots:l,className:i}=t;const o=t[_];var u=_xeUtils.default.isArray(c)?-1<c.indexOf(o):c===o,n=!g||isOptionVisible(t);r=u,a=v;const s=!!t.disabled||!(!a||!a.disabled)||!(!z.value||r);var a=U(t),r=l?l.default:null,l={option:t,group:null,$select:T};return n?(0,_vue.h)("div",{key:b||p?a:e,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i(l):i:"",{"is--disabled":s,"is--selected":u,"is--hover":d===o}],optid:a,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{s||X(e,o,t)},onMouseenter:()=>{s||G(t)}},h?N(h,l):r?N(r,l):(0,_utils.getFuncText)(t[f])):(0,_vue.createCommentVNode)()})},ve=()=>{const s=m["optionKey"];var e=E["visibleGroupList"],t=C.value;const a=c.value,r=P.value,v=t["useKey"],p=x.option;return e.map((e,t)=>{var{slots:l,className:i}=e,o=U(e),u=e.disabled,l=l?l.default:null,n={option:e,group:e,$select:T};return(0,_vue.h)("div",{key:v||s?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i(n):i:"",{"is--disabled":u}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},p?N(p,n):l?N(l,n):(0,_utils.getFuncText)(e[a])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},re(e[r]||[],e))])})};u={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$select:T},t))},isPanelVisible(){return E.visiblePanel},togglePanel(){return(E.visiblePanel?g:_)(),(0,_vue.nextTick)()},hidePanel(){return E.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return E.visiblePanel||_(),(0,_vue.nextTick)()},refreshOption:d,focus(){var e=h.value;return E.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur(){return h.value.blur(),(E.isActivated=!1,_vue.nextTick)()}},Object.assign(T,u);return T.renderVN=()=>{var{className:e,popupClassName:t,loading:l,filterable:i}=m,{initialized:o,isActivated:u,visiblePanel:n}=E,s=K.value,a=y.value,r=M.value,v=A.value,p=D.value,c=j.value,d=x.default,f=x.header,_=x.footer;const g=x.prefix;return p?(0,_vue.h)("div",{ref:b,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},r)]):(0,_vue.h)("div",{ref:b,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:T}):e:"",{["size--"+s]:s,"is--visible":n,"is--disabled":a,"is--filter":i,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)(_input.default,{ref:h,clearable:m.clearable,placeholder:c,readonly:!0,disabled:a,type:"text",prefixIcon:m.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:n?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,modelValue:r,onClear:Z,onClick:ie,onFocus:le,onBlur:oe,onSuffixClick:ae},g?{prefix:()=>g({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v||!o},[(0,_vue.h)("div",{ref:V,class:["vxe-table--ignore-clear vxe-select--panel",t?_xeUtils.default.isFunction(t)?t({$select:T}):t:"",{["size--"+s]:s,"is--transfer":v,"ani--leave":!l&&E.isAniVisible,"ani--enter":!l&&n}],placement:E.panelPlacement,style:E.panelStyle},o?[i?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:O,class:"vxe-select-search--input",modelValue:E.searchValue,clearable:!0,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ue,onFocus:ne,onChange:se,onSearch:se})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[f?(0,_vue.h)("div",{class:"vxe-select--panel-header"},f({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-select-option--wrapper"},(()=>{var{visibleGroupList:e,visibleOptionList:t,searchLoading:l}=E,i=I.value;if(l)return[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])];if(i){if(e.length)return ve()}else if(t.length)return re(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())]),_?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},_({})):(0,_vue.createCommentVNode)()])]:[])])])},(0,_vue.watch)(()=>E.staticOptions,e=>{e.some(e=>e.options&&e.options.length)?(E.fullOptionList=[],E.fullGroupList=e):(E.fullGroupList=[],E.fullOptionList=e||[]),f()}),(0,_vue.watch)(()=>m.options,e=>{E.fullGroupList=[],E.fullOptionList=e||[],f()}),(0,_vue.watch)(()=>m.optionGroups,e=>{E.fullOptionList=[],E.fullGroupList=e||[],f()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=m;t?E.fullGroupList=t:e&&(E.fullOptionList=e),f()}),_ui.globalEvents.on(T,"mousewheel",J),_ui.globalEvents.on(T,"mousedown",Q),_ui.globalEvents.on(T,"keydown",ee),_ui.globalEvents.on(T,"blur",te)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(T,"mousewheel"),_ui.globalEvents.off(T,"mousedown"),_ui.globalEvents.off(T,"keydown"),_ui.globalEvents.off(T,"blur")}),(0,_vue.provide)("$xeSelect",T),T},render(){return this.renderVN()}});
|
|
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"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_input=_interopRequireDefault(require("../../input/src/input")),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteMethod:Function,emptyText:String,transfer:{type:Boolean,default:null},optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","clear","blur","focus","click"],setup(m,e){const{slots:x,emit:i}=e,w=(0,_vue.inject)("$xeModal",null),F=(0,_vue.inject)("$xeDrawer",null),B=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var K=_xeUtils.default.uniqueId();const D=(0,_ui.useSize)(m)["computeSize"],E=(0,_vue.reactive)({initialized:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],remoteValueList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentOption:null,currentValue:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",searchLoading:!1}),u={hpTimeout:void 0},h=(0,_vue.ref)(),b=(0,_vue.ref)(),O=(0,_vue.ref)(),L=(0,_vue.ref)(),V=(0,_vue.ref)(),q={refElem:h},T={xID:K,props:m,context:e,reactData:E,internalData:u,getRefMaps:()=>q};let n={};const j=(0,_vue.computed)(()=>{var e=m["readonly"];return null===e?!!l&&l.props.readonly:e}),y=(0,_vue.computed)(()=>{var e=m["disabled"];return null===e?!!l&&l.props.disabled:e}),A=(0,_vue.computed)(()=>{var e=m["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(B||w||F||l)return!0}return e}),z=(0,_vue.computed)(()=>{var e=m["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),t=(0,_vue.computed)(()=>Object.assign({},m.optionProps)),s=(0,_vue.computed)(()=>Object.assign({},m.optionGroupProps)),r=(0,_vue.computed)(()=>{return t.value.label||"label"}),S=(0,_vue.computed)(()=>{return t.value.value||"value"}),c=(0,_vue.computed)(()=>{return s.value.label||"label"}),P=(0,_vue.computed)(()=>{return s.value.options||"options"}),R=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,max:l}=m;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)}),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,m.optionConfig)),I=(0,_vue.computed)(()=>E.fullGroupList.some(e=>e.options&&e.options.length)),$=(0,_vue.computed)(()=>_xeUtils.default.toNumber(m.multiCharOverflow)),M=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,remote:l}=m;const i=$.value;return e&&t?(t=_xeUtils.default.isArray(e)?e:[e],(l?t.map(e=>v(e)):t.map(e=>{e=p(e);return 0<i&&e.length>i?e.substring(0,i)+"...":e})).join(", ")):(l?v:p)(e)}),N=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=x[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],a=t=>{var{fullOptionList:e,fullGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])},v=t=>{var e=E["remoteValueList"],l=r.value,e=e.find(e=>t===e.key),e=e?e.result:null;return _xeUtils.default.toValueString(e?e[l]:t)},p=e=>{var t=r.value,l=a(e);return _xeUtils.default.toValueString(l?l[t]:e)},H=()=>{return C.value.keyField||m.optionId||"_X_OPTION_KEY"},U=e=>{e=e[H()];return e?encodeURIComponent(e):""},d=()=>{const{filterable:e,filterMethod:t}=m;var{fullOptionList:l,fullGroupList:i,searchValue:o}=E,u=I.value;const n=c.value,s=r.value,a=(""+(o||"")).toLowerCase();return u?e&&t?E.visibleGroupList=i.filter(e=>isOptionVisible(e)&&t({group:e,option:null,searchValue:a})):E.visibleGroupList=e?i.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[n]).toLowerCase().indexOf(a))):i.filter(isOptionVisible):e&&t?E.visibleOptionList=l.filter(e=>isOptionVisible(e)&&t({group:null,option:e,searchValue:a})):E.visibleOptionList=e?l.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[s]).toLowerCase().indexOf(a))):l.filter(isOptionVisible),(0,_vue.nextTick)()},f=()=>{var{fullOptionList:e,fullGroupList:t}=E;const l=P.value,i=H(),o=e=>{U(e)||(e[i]=getOptUniqueId())};t.length?t.forEach(e=>{o(e),e[l]&&e[l].forEach(o)}):e.length&&e.forEach(o),d()},G=e=>{var t=S.value;e&&(E.currentOption=e,E.currentValue=e[t])},Y=(i,o)=>(0,_vue.nextTick)().then(()=>{var e,t,l;i&&(e=L.value,t=V.value.querySelector(`[optid='${U(i)}']`),e)&&t&&(l=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>l&&(e.scrollTop=t.offsetTop+t.offsetHeight-l):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5))}),W=()=>(0,_vue.nextTick)().then(()=>{var i=m["placement"],o=E["panelIndex"],u=h.value,n=V.value,e=A.value;if(n&&u){var s=u.offsetHeight,a=u.offsetWidth,r=n.offsetHeight,n=n.offsetWidth,o={zIndex:o},{boundingTop:u,boundingLeft:v,visibleHeight:p,visibleWidth:c}=(0,_dom.getAbsolutePos)(u);let l="bottom";if(e){let e=v,t=u+s;"top"===i?(l="top",t=u-r):i||(t+r+5>p&&(l="top",t=u-r),t<5&&(l="bottom",t=u+s)),e+n+5>c&&(e-=e+n+5-c),e<5&&(e=5),Object.assign(o,{left:e+"px",top:t+"px",minWidth:a+"px"})}else"top"===i?(l="top",o.bottom=s+"px"):i||p<u+s+r&&5<u-s-r&&(l="top",o.bottom=s+"px");return E.panelStyle=o,E.panelPlacement=l,(0,_vue.nextTick)()}}),_=()=>{var{loading:e,filterable:t}=m,l=u["hpTimeout"],i=y.value;e||i||(l&&(clearTimeout(l),u.hpTimeout=void 0),E.initialized||(E.initialized=!0),E.isActivated=!0,E.isAniVisible=!0,t&&d(),setTimeout(()=>{var e=m["modelValue"],e=a(_xeUtils.default.isArray(e)?e[0]:e);E.visiblePanel=!0,e&&(G(e),Y(e)),m.filterable&&(0,_vue.nextTick)(()=>{var e=O.value;e&&e.focus()})},10),E.panelIndex<(0,_utils.getLastZIndex)()&&(E.panelIndex=(0,_utils.nextZIndex)()),W())},g=()=>{E.searchValue="",E.searchLoading=!1,E.visiblePanel=!1,u.hpTimeout=window.setTimeout(()=>{E.isAniVisible=!1},350)},k=(e,t)=>{i("update:modelValue",t),t!==m.modelValue&&(n.dispatchEvent("change",{value:t},e),l)&&o&&l.triggerItemEvent(e,o.itemConfig.field,t)},Z=(e,t)=>{E.remoteValueList=[],k(e,t),n.dispatchEvent("clear",{value:t},e)},X=(e,t)=>{Z(t,null),g()},J=(t,l,i)=>{var{modelValue:o,multiple:u}=m,n=E["remoteValueList"];if(u){let e=[];u=_xeUtils.default.eqNull(o)?[]:_xeUtils.default.isArray(o)?o:[o],o=_xeUtils.default.findIndexOf(u,e=>e===l),o=(e=-1===o?u.concat([l]):u.filter(e=>e!==l),n.find(e=>e.key===l));o?o.result=i:n.push({key:l,result:i}),k(t,e)}else E.remoteValueList=[{key:l,result:i}],k(t,l),g()},Q=e=>{var t=E["visiblePanel"];y.value||t&&(t=V.value,((0,_dom.getEventTargetNode)(e,t).flag?W:g)())},ee=e=>{var t,l,i=E["visiblePanel"];y.value||(t=h.value,l=V.value,E.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!E.isActivated&&g())},te=l=>{var e=m["clearable"],{visiblePanel:t,currentValue:i,currentOption:o}=E;if(!y.value){var u=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.TAB),n=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ESCAPE),a=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.DELETE),p=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(u&&(E.isActivated=!1),t)if(s||u)g();else if(n)l.preventDefault(),l.stopPropagation(),J(l,i,o);else if(a||r){l.preventDefault();let{firstOption:e,offsetOption:t}=((t,l)=>{var{visibleOptionList:i,visibleGroupList:o}=E,e=I.value,u=S.value,n=P.value;let s,a,r,v;if(e)for(let e=0;e<o.length;e++){var p=o[e],c=p[n],d=p.disabled;if(c)for(let e=0;e<c.length;e++){var f=c[e],_=isOptionVisible(f),g=d||f.disabled;if(s||g||(s=f),v&&_&&!g&&(r=f,!l))return{offsetOption:r};if(t===f[u]){if(v=f,l)return{offsetOption:a}}else _&&!g&&(a=f)}}else for(let e=0;e<i.length;e++){var h=i[e],b=h.disabled;if(s||b||(s=h),v&&!b&&(r=h,!l))return{offsetOption:r};if(t===h[u]){if(v=h,l)return{offsetOption:a}}else b||(a=h)}return{firstOption:s}})(i,a);t||(t=>{var{visibleOptionList:e,visibleGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])})(i)||(t=e),G(t),Y(t,r)}else p&&l.preventDefault();else(a||r||n||p)&&E.isActivated&&(l.preventDefault(),_());E.isActivated&&v&&e&&Z(l,null)}},le=()=>{g()},ie=e=>{y.value||E.visiblePanel||(E.triggerFocusPanel=!0,_(),setTimeout(()=>{E.triggerFocusPanel=!1},150)),n.dispatchEvent("focus",{},e)},oe=e=>{re(e),n.dispatchEvent("click",{},e)},ue=e=>{E.isActivated=!1,n.dispatchEvent("blur",{},e)},ne=e=>{E.searchValue=e},se=()=>{E.isActivated=!0};const ae=_xeUtils.default.debounce(()=>{var{remote:e,remoteMethod:t}=m,l=E["searchValue"];e&&t?(E.searchLoading=!0,Promise.resolve(t({searchValue:l})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{E.searchLoading=!1,d()})):d()},350,{trailing:!0}),re=e=>{e=e.$event;e.preventDefault(),E.triggerFocusPanel?E.triggerFocusPanel=!1:(E.visiblePanel?g:_)()},ve=(e,v)=>{const{optionKey:p,modelValue:c}=m,d=E["currentValue"];var t=C.value;const f=r.value,_=S.value,g=I.value,h=t["useKey"],b=x.option;return e.map((t,e)=>{var{slots:l,className:i}=t;const o=t[_];var u=_xeUtils.default.isArray(c)?-1<c.indexOf(o):c===o,n=!g||isOptionVisible(t);r=u,a=v;const s=!!t.disabled||!(!a||!a.disabled)||!(!R.value||r);var a=U(t),r=l?l.default:null,l={option:t,group:null,$select:T};return n?(0,_vue.h)("div",{key:h||p?a:e,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i(l):i:"",{"is--disabled":s,"is--selected":u,"is--hover":d===o}],optid:a,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{s||J(e,o,t)},onMouseenter:()=>{s||G(t)}},b?N(b,l):r?N(r,l):(0,_utils.getFuncText)(t[f])):(0,_vue.createCommentVNode)()})},pe=()=>{const s=m["optionKey"];var e=E["visibleGroupList"],t=C.value;const a=c.value,r=P.value,v=t["useKey"],p=x.option;return e.map((e,t)=>{var{slots:l,className:i}=e,o=U(e),u=e.disabled,l=l?l.default:null,n={option:e,group:e,$select:T};return(0,_vue.h)("div",{key:v||s?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i(n):i:"",{"is--disabled":u}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},p?N(p,n):l?N(l,n):(0,_utils.getFuncText)(e[a])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},ve(e[r]||[],e))])})};n={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$select:T},t))},isPanelVisible(){return E.visiblePanel},togglePanel(){return(E.visiblePanel?g:_)(),(0,_vue.nextTick)()},hidePanel(){return E.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return E.visiblePanel||_(),(0,_vue.nextTick)()},refreshOption:d,focus(){var e=b.value;return E.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur(){return b.value.blur(),(E.isActivated=!1,_vue.nextTick)()}},Object.assign(T,n);return(0,_vue.watch)(()=>E.staticOptions,e=>{e.some(e=>e.options&&e.options.length)?(E.fullOptionList=[],E.fullGroupList=e):(E.fullGroupList=[],E.fullOptionList=e||[]),f()}),(0,_vue.watch)(()=>m.options,e=>{E.fullGroupList=[],E.fullOptionList=e||[],f()}),(0,_vue.watch)(()=>m.optionGroups,e=>{E.fullOptionList=[],E.fullGroupList=e||[],f()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=m;t?E.fullGroupList=t:e&&(E.fullOptionList=e),f()}),_ui.globalEvents.on(T,"mousewheel",Q),_ui.globalEvents.on(T,"mousedown",ee),_ui.globalEvents.on(T,"keydown",te),_ui.globalEvents.on(T,"blur",le)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(T,"mousewheel"),_ui.globalEvents.off(T,"mousedown"),_ui.globalEvents.off(T,"keydown"),_ui.globalEvents.off(T,"blur")}),(0,_vue.provide)("$xeSelect",T),T.renderVN=()=>{var{className:e,popupClassName:t,loading:l,filterable:i}=m,{initialized:o,isActivated:u,visiblePanel:n}=E,s=D.value,a=y.value,r=M.value,v=A.value,p=j.value,c=z.value,d=x.default,f=x.header,_=x.footer;const g=x.prefix;return p?(0,_vue.h)("div",{ref:h,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},[r])]):(0,_vue.h)("div",{ref:h,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:T}):e:"",{["size--"+s]:s,"is--visible":n,"is--disabled":a,"is--filter":i,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)(_input.default,{ref:b,clearable:m.clearable,placeholder:c,readonly:!0,disabled:a,type:"text",prefixIcon:m.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:n?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,modelValue:r,onClear:X,onClick:oe,onFocus:ie,onBlur:ue,onSuffixClick:re},g?{prefix:()=>g({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v||!o},[(0,_vue.h)("div",{ref:V,class:["vxe-table--ignore-clear vxe-select--panel",t?_xeUtils.default.isFunction(t)?t({$select:T}):t:"",{["size--"+s]:s,"is--transfer":v,"ani--leave":!l&&E.isAniVisible,"ani--enter":!l&&n}],placement:E.panelPlacement,style:E.panelStyle},o?[i?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:O,class:"vxe-select-search--input",modelValue:E.searchValue,clearable:!0,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ne,onFocus:se,onChange:ae,onSearch:ae})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[f?(0,_vue.h)("div",{class:"vxe-select--panel-header"},f({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-select-option--wrapper"},(()=>{var{visibleGroupList:e,visibleOptionList:t,searchLoading:l}=E,i=I.value;if(l)return[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])];if(i){if(e.length)return pe()}else if(t.length)return ve(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())]),_?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},_({})):(0,_vue.createCommentVNode)()])]:[])])])},T},render(){return this.renderVN()}});
|
package/lib/select/src/util.js
CHANGED
|
@@ -25,7 +25,7 @@ function watchOption(props, option) {
|
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
function assembleOption($xeSelect, el, option,
|
|
28
|
+
function assembleOption($xeSelect, el, option, $xeOptgroup) {
|
|
29
29
|
const {
|
|
30
30
|
reactData
|
|
31
31
|
} = $xeSelect;
|
|
@@ -33,7 +33,7 @@ function assembleOption($xeSelect, el, option, optGroup) {
|
|
|
33
33
|
staticOptions
|
|
34
34
|
} = reactData;
|
|
35
35
|
const parentElem = el.parentNode;
|
|
36
|
-
const parentOption =
|
|
36
|
+
const parentOption = $xeOptgroup ? $xeOptgroup.optionConfig : null;
|
|
37
37
|
const parentCols = parentOption ? parentOption.options : staticOptions;
|
|
38
38
|
if (parentElem && parentCols) {
|
|
39
39
|
parentCols.splice(_xeUtils.default.arrayIndexOf(parentElem.children, el), 0, option);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleOption=assembleOption,exports.createOption=createOption,exports.destroyOption=destroyOption,exports.isOption=isOption,exports.watchOption=watchOption;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_optionInfo=require("./option-info");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function isOption(t){return t instanceof _optionInfo.OptionInfo}function createOption(t,e){return isOption(e)?e:new _optionInfo.OptionInfo(t,e)}function watchOption(t,i){Object.keys(t).forEach(e=>{(0,_vue.watch)(()=>t[e],t=>{i.update(e,t)})})}function assembleOption(t,e,i,o){var t=t["reactData"],n=t["staticOptions"],s=e.parentNode,o=o?o.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleOption=assembleOption,exports.createOption=createOption,exports.destroyOption=destroyOption,exports.isOption=isOption,exports.watchOption=watchOption;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_optionInfo=require("./option-info");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function isOption(t){return t instanceof _optionInfo.OptionInfo}function createOption(t,e){return isOption(e)?e:new _optionInfo.OptionInfo(t,e)}function watchOption(t,i){Object.keys(t).forEach(e=>{(0,_vue.watch)(()=>t[e],t=>{i.update(e,t)})})}function assembleOption(t,e,i,o){var t=t["reactData"],n=t["staticOptions"],s=e.parentNode,o=o?o.optionConfig:null,o=o?o.options:n;s&&o&&(o.splice(_xeUtils.default.arrayIndexOf(s.children,e),0,i),t.staticOptions=n.slice(0))}function destroyOption(t,e){var t=t["reactData"],i=t["staticOptions"],o=_xeUtils.default.findTree(i,t=>t.id===e.id,{children:"options"});o&&o.items.splice(o.index,1),t.staticOptions=i.slice(0)}
|