vxe-pc-ui 4.7.5 → 4.7.6
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/es/icon/style.css +1 -1
- package/es/language/ar-EG.js +19 -1
- package/es/language/de-DE.js +19 -1
- package/es/language/en-US.js +20 -2
- package/es/language/es-ES.js +19 -1
- package/es/language/fr-FR.js +19 -1
- package/es/language/hu-HU.js +19 -1
- package/es/language/hy-AM.js +18 -0
- package/es/language/id-ID.js +19 -1
- package/es/language/it-IT.js +19 -1
- package/es/language/ja-JP.js +19 -1
- package/es/language/ko-KR.js +19 -1
- package/es/language/ms-MY.js +19 -1
- package/es/language/nb-NO.js +19 -1
- package/es/language/pt-BR.js +19 -1
- package/es/language/ru-RU.js +19 -1
- package/es/language/th-TH.js +19 -1
- package/es/language/ug-CN.js +19 -1
- package/es/language/uk-UA.js +19 -1
- package/es/language/uz-UZ.js +19 -1
- package/es/language/vi-VN.js +19 -1
- package/es/language/zh-CHT.js +19 -1
- package/es/language/zh-CN.js +18 -0
- package/es/list/src/list.js +1 -1
- package/es/select/src/select.js +135 -42
- package/es/select/style.css +21 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree/src/tree.js +918 -407
- package/es/tree/src/util.js +32 -0
- package/es/tree/style.css +23 -26
- package/es/tree/style.min.css +1 -1
- package/es/tree-select/src/tree-select.js +227 -18
- package/es/tree-select/style.css +36 -1
- package/es/tree-select/style.min.css +1 -1
- package/es/ui/index.js +19 -3
- package/es/ui/src/dom.js +9 -0
- package/es/ui/src/log.js +1 -1
- package/es/vxe-select/style.css +21 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tree/style.css +23 -26
- package/es/vxe-tree/style.min.css +1 -1
- package/es/vxe-tree-select/style.css +36 -1
- package/es/vxe-tree-select/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +1505 -530
- package/lib/index.umd.min.js +1 -1
- package/lib/language/ar-EG.js +19 -1
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +19 -1
- package/lib/language/de-DE.js +19 -1
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +19 -1
- package/lib/language/en-US.js +20 -2
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +20 -2
- package/lib/language/es-ES.js +19 -1
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +19 -1
- package/lib/language/fr-FR.js +19 -1
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +19 -1
- package/lib/language/hu-HU.js +19 -1
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +19 -1
- package/lib/language/hy-AM.js +18 -0
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +18 -0
- package/lib/language/id-ID.js +19 -1
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +19 -1
- package/lib/language/it-IT.js +19 -1
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +19 -1
- package/lib/language/ja-JP.js +19 -1
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +19 -1
- package/lib/language/ko-KR.js +19 -1
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +19 -1
- package/lib/language/ms-MY.js +19 -1
- package/lib/language/ms-MY.min.js +1 -1
- package/lib/language/ms-MY.umd.js +19 -1
- package/lib/language/nb-NO.js +19 -1
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +19 -1
- package/lib/language/pt-BR.js +19 -1
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +19 -1
- package/lib/language/ru-RU.js +19 -1
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +19 -1
- package/lib/language/th-TH.js +19 -1
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +19 -1
- package/lib/language/ug-CN.js +19 -1
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +19 -1
- package/lib/language/uk-UA.js +19 -1
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +19 -1
- package/lib/language/uz-UZ.js +19 -1
- package/lib/language/uz-UZ.min.js +1 -1
- package/lib/language/uz-UZ.umd.js +19 -1
- package/lib/language/vi-VN.js +19 -1
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +19 -1
- package/lib/language/zh-CHT.js +19 -1
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +19 -1
- package/lib/language/zh-CN.js +18 -0
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +18 -0
- package/lib/list/src/list.js +1 -1
- package/lib/list/src/list.min.js +1 -1
- package/lib/select/src/select.js +139 -44
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +21 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree/src/tree.js +1147 -572
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree/src/util.js +51 -0
- package/lib/tree/src/util.min.js +1 -0
- package/lib/tree/style/style.css +23 -26
- package/lib/tree/style/style.min.css +1 -1
- package/lib/tree-select/src/tree-select.js +237 -21
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/tree-select/style/style.css +36 -1
- package/lib/tree-select/style/style.min.css +1 -1
- package/lib/ui/index.js +19 -3
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +10 -0
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-select/style/style.css +21 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tree/style/style.css +23 -26
- package/lib/vxe-tree/style/style.min.css +1 -1
- package/lib/vxe-tree-select/style/style.css +36 -1
- package/lib/vxe-tree-select/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/language/ar-EG.ts +19 -1
- package/packages/language/de-DE.ts +19 -1
- package/packages/language/en-US.ts +20 -2
- package/packages/language/es-ES.ts +19 -1
- package/packages/language/fr-FR.ts +19 -1
- package/packages/language/hu-HU.ts +19 -1
- package/packages/language/hy-AM.ts +18 -0
- package/packages/language/id-ID.ts +19 -1
- package/packages/language/it-IT.ts +19 -1
- package/packages/language/ja-JP.ts +19 -1
- package/packages/language/ko-KR.ts +19 -1
- package/packages/language/ms-MY.ts +19 -1
- package/packages/language/nb-NO.ts +19 -1
- package/packages/language/pt-BR.ts +19 -1
- package/packages/language/ru-RU.ts +19 -1
- package/packages/language/th-TH.ts +19 -1
- package/packages/language/ug-CN.ts +19 -1
- package/packages/language/uk-UA.ts +19 -1
- package/packages/language/uz-UZ.ts +19 -1
- package/packages/language/vi-VN.ts +19 -1
- package/packages/language/zh-CHT.ts +19 -1
- package/packages/language/zh-CN.ts +18 -0
- package/packages/list/src/list.ts +1 -1
- package/packages/select/src/select.ts +146 -50
- package/packages/tree/src/tree.ts +941 -410
- package/packages/tree/src/util.ts +35 -0
- package/packages/tree-select/src/tree-select.ts +240 -19
- package/packages/ui/index.ts +18 -2
- package/packages/ui/src/dom.ts +10 -0
- package/styles/components/select.scss +19 -0
- package/styles/components/tree-select.scss +36 -1
- package/styles/components/tree.scss +28 -31
- package/types/components/button.d.ts +11 -1
- package/types/components/grid.d.ts +5 -0
- package/types/components/icon-picker.d.ts +11 -1
- package/types/components/input.d.ts +2 -2
- package/types/components/select.d.ts +28 -39
- package/types/components/tree-select.d.ts +73 -12
- package/types/components/tree.d.ts +125 -8
- /package/es/icon/{iconfont.1752151733538.ttf → iconfont.1752416456948.ttf} +0 -0
- /package/es/icon/{iconfont.1752151733538.woff → iconfont.1752416456948.woff} +0 -0
- /package/es/icon/{iconfont.1752151733538.woff2 → iconfont.1752416456948.woff2} +0 -0
- /package/es/{iconfont.1752151733538.ttf → iconfont.1752416456948.ttf} +0 -0
- /package/es/{iconfont.1752151733538.woff → iconfont.1752416456948.woff} +0 -0
- /package/es/{iconfont.1752151733538.woff2 → iconfont.1752416456948.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1752151733538.ttf → iconfont.1752416456948.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1752151733538.woff → iconfont.1752416456948.woff} +0 -0
- /package/lib/icon/style/{iconfont.1752151733538.woff2 → iconfont.1752416456948.woff2} +0 -0
- /package/lib/{iconfont.1752151733538.ttf → iconfont.1752416456948.ttf} +0 -0
- /package/lib/{iconfont.1752151733538.woff → iconfont.1752416456948.woff} +0 -0
- /package/lib/{iconfont.1752151733538.woff2 → iconfont.1752416456948.woff2} +0 -0
package/es/language/ug-CN.js
CHANGED
|
@@ -96,9 +96,27 @@ export default {
|
|
|
96
96
|
operError: 'خاتالىق كۆرۈلدى،مەشخۇلات مەغلۇپ بولدى'
|
|
97
97
|
},
|
|
98
98
|
select: {
|
|
99
|
+
clear: '清除',
|
|
100
|
+
allChecked: '全选',
|
|
101
|
+
total: '{0} / {1}',
|
|
99
102
|
search: 'ئىزدەش',
|
|
100
103
|
loadingText: 'يۈكلىنىۋاتىدۇ',
|
|
101
|
-
emptyText: 'ھازىرچە ئۇچۇر يوق'
|
|
104
|
+
emptyText: 'ھازىرچە ئۇچۇر يوق',
|
|
105
|
+
maxOpt: '最大可选择的数量不能超过 {0} 个',
|
|
106
|
+
overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
|
|
107
|
+
searchEmpty: '未匹配到数据!'
|
|
108
|
+
},
|
|
109
|
+
tree: {
|
|
110
|
+
searchEmpty: '未匹配到数据!'
|
|
111
|
+
},
|
|
112
|
+
treeSelect: {
|
|
113
|
+
clearChecked: '清除',
|
|
114
|
+
allChecked: '全选',
|
|
115
|
+
allExpand: '全部展开',
|
|
116
|
+
clearExpand: '全部收起',
|
|
117
|
+
total: '已选 {0}',
|
|
118
|
+
search: '搜索',
|
|
119
|
+
emptyText: '暂无数据'
|
|
102
120
|
},
|
|
103
121
|
pager: {
|
|
104
122
|
goto: 'ئالغا',
|
package/es/language/uk-UA.js
CHANGED
|
@@ -96,9 +96,27 @@ export default {
|
|
|
96
96
|
operError: 'Сталася помилка, і операція не вдалася!'
|
|
97
97
|
},
|
|
98
98
|
select: {
|
|
99
|
+
clear: '清除',
|
|
100
|
+
allChecked: '全选',
|
|
101
|
+
total: '{0} / {1}',
|
|
99
102
|
search: 'обшук',
|
|
100
103
|
loadingText: 'навантаження',
|
|
101
|
-
emptyText: 'Ще немає даних'
|
|
104
|
+
emptyText: 'Ще немає даних',
|
|
105
|
+
maxOpt: '最大可选择的数量不能超过 {0} 个',
|
|
106
|
+
overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
|
|
107
|
+
searchEmpty: '未匹配到数据!'
|
|
108
|
+
},
|
|
109
|
+
tree: {
|
|
110
|
+
searchEmpty: '未匹配到数据!'
|
|
111
|
+
},
|
|
112
|
+
treeSelect: {
|
|
113
|
+
clearChecked: '清除',
|
|
114
|
+
allChecked: '全选',
|
|
115
|
+
allExpand: '全部展开',
|
|
116
|
+
clearExpand: '全部收起',
|
|
117
|
+
total: '已选 {0}',
|
|
118
|
+
search: '搜索',
|
|
119
|
+
emptyText: '暂无数据'
|
|
102
120
|
},
|
|
103
121
|
pager: {
|
|
104
122
|
goto: 'Йти',
|
package/es/language/uz-UZ.js
CHANGED
|
@@ -96,9 +96,27 @@ export default {
|
|
|
96
96
|
operError: "Xato yuz berdi va operatsiya muvaffaqiyatsiz bo'ldi!"
|
|
97
97
|
},
|
|
98
98
|
select: {
|
|
99
|
+
clear: '清除',
|
|
100
|
+
allChecked: '全选',
|
|
101
|
+
total: '{0} / {1}',
|
|
99
102
|
search: 'qidirish',
|
|
100
103
|
loadingText: 'yuklamoq',
|
|
101
|
-
emptyText: "Hali ma'lumot yo'q"
|
|
104
|
+
emptyText: "Hali ma'lumot yo'q",
|
|
105
|
+
maxOpt: '最大可选择的数量不能超过 {0} 个',
|
|
106
|
+
overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
|
|
107
|
+
searchEmpty: '未匹配到数据!'
|
|
108
|
+
},
|
|
109
|
+
tree: {
|
|
110
|
+
searchEmpty: '未匹配到数据!'
|
|
111
|
+
},
|
|
112
|
+
treeSelect: {
|
|
113
|
+
clearChecked: '清除',
|
|
114
|
+
allChecked: '全选',
|
|
115
|
+
allExpand: '全部展开',
|
|
116
|
+
clearExpand: '全部收起',
|
|
117
|
+
total: '{0} / {1}',
|
|
118
|
+
search: '搜索',
|
|
119
|
+
emptyText: '暂无数据'
|
|
102
120
|
},
|
|
103
121
|
pager: {
|
|
104
122
|
goto: 'Bormoq',
|
package/es/language/vi-VN.js
CHANGED
|
@@ -96,9 +96,27 @@ export default {
|
|
|
96
96
|
operError: 'Một lỗi đã xảy ra và hoạt động không thành công!'
|
|
97
97
|
},
|
|
98
98
|
select: {
|
|
99
|
+
clear: '清除',
|
|
100
|
+
allChecked: '全选',
|
|
101
|
+
total: '{0} / {1}',
|
|
99
102
|
search: 'tìm kiếm',
|
|
100
103
|
loadingText: 'đang tải',
|
|
101
|
-
emptyText: 'Chưa có dữ liệu'
|
|
104
|
+
emptyText: 'Chưa có dữ liệu',
|
|
105
|
+
maxOpt: '最大可选择的数量不能超过 {0} 个',
|
|
106
|
+
overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
|
|
107
|
+
searchEmpty: '未匹配到数据!'
|
|
108
|
+
},
|
|
109
|
+
tree: {
|
|
110
|
+
searchEmpty: '未匹配到数据!'
|
|
111
|
+
},
|
|
112
|
+
treeSelect: {
|
|
113
|
+
clearChecked: '清除',
|
|
114
|
+
allChecked: '全选',
|
|
115
|
+
allExpand: '全部展开',
|
|
116
|
+
clearExpand: '全部收起',
|
|
117
|
+
total: '已选 {0}',
|
|
118
|
+
search: '搜索',
|
|
119
|
+
emptyText: '暂无数据'
|
|
102
120
|
},
|
|
103
121
|
pager: {
|
|
104
122
|
goto: 'Đi',
|
package/es/language/zh-CHT.js
CHANGED
|
@@ -96,9 +96,27 @@ export default {
|
|
|
96
96
|
operError: '發生錯誤,操作失敗!'
|
|
97
97
|
},
|
|
98
98
|
select: {
|
|
99
|
+
clear: '清除',
|
|
100
|
+
allChecked: '全选',
|
|
101
|
+
total: '{0} / {1}',
|
|
99
102
|
search: '搜尋',
|
|
100
103
|
loadingText: '載入中',
|
|
101
|
-
emptyText: '暫無數據'
|
|
104
|
+
emptyText: '暫無數據',
|
|
105
|
+
maxOpt: '最大可选择的数量不能超过 {0} 个',
|
|
106
|
+
overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
|
|
107
|
+
searchEmpty: '未匹配到数据!'
|
|
108
|
+
},
|
|
109
|
+
tree: {
|
|
110
|
+
searchEmpty: '未匹配到数据!'
|
|
111
|
+
},
|
|
112
|
+
treeSelect: {
|
|
113
|
+
clearChecked: '清除',
|
|
114
|
+
allChecked: '全选',
|
|
115
|
+
allExpand: '全部展开',
|
|
116
|
+
clearExpand: '全部收起',
|
|
117
|
+
total: '已选 {0}',
|
|
118
|
+
search: '搜索',
|
|
119
|
+
emptyText: '暂无数据'
|
|
102
120
|
},
|
|
103
121
|
pager: {
|
|
104
122
|
goto: '前往',
|
package/es/language/zh-CN.js
CHANGED
|
@@ -96,8 +96,26 @@ export default {
|
|
|
96
96
|
operError: '发生错误,操作失败!'
|
|
97
97
|
},
|
|
98
98
|
select: {
|
|
99
|
+
clear: '清除',
|
|
100
|
+
allChecked: '全选',
|
|
101
|
+
total: '{0} / {1}',
|
|
99
102
|
search: '搜索',
|
|
100
103
|
loadingText: '加载中',
|
|
104
|
+
emptyText: '暂无数据',
|
|
105
|
+
maxSize: '最大可选择的数量不能超过 {0} 个',
|
|
106
|
+
overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
|
|
107
|
+
searchEmpty: '未匹配到数据!'
|
|
108
|
+
},
|
|
109
|
+
tree: {
|
|
110
|
+
searchEmpty: '未匹配到数据!'
|
|
111
|
+
},
|
|
112
|
+
treeSelect: {
|
|
113
|
+
clearChecked: '清除',
|
|
114
|
+
allChecked: '全选',
|
|
115
|
+
allExpand: '全部展开',
|
|
116
|
+
clearExpand: '全部收起',
|
|
117
|
+
total: '已选 {0}',
|
|
118
|
+
search: '搜索',
|
|
101
119
|
emptyText: '暂无数据'
|
|
102
120
|
},
|
|
103
121
|
pager: {
|
package/es/list/src/list.js
CHANGED
|
@@ -363,7 +363,7 @@ export default defineVxeComponent({
|
|
|
363
363
|
ref: refVirtualBody,
|
|
364
364
|
class: 'vxe-list--body',
|
|
365
365
|
style: {
|
|
366
|
-
|
|
366
|
+
transform: `translateY(${topSpaceHeight}px)`
|
|
367
367
|
}
|
|
368
368
|
}, defaultSlot ? defaultSlot({ items, $list: $xeList }) : [])
|
|
369
369
|
]),
|
package/es/select/src/select.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { h, Teleport, ref, inject, computed, provide, onUnmounted, reactive, nextTick, watch, onMounted } from 'vue';
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp';
|
|
3
3
|
import XEUtils from 'xe-utils';
|
|
4
|
-
import { getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, useSize, renderEmptyElement } from '../../ui';
|
|
4
|
+
import { VxeUI, getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, useSize, renderEmptyElement } from '../../ui';
|
|
5
5
|
import { getEventTargetNode, updatePanelPlacement } from '../../ui/src/dom';
|
|
6
6
|
import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils';
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
8
8
|
import VxeInputComponent from '../../input/src/input';
|
|
9
|
+
import VxeButtonComponent from '../../button/src/button';
|
|
9
10
|
function isOptionVisible(option) {
|
|
10
11
|
return option.visible !== false;
|
|
11
12
|
}
|
|
@@ -57,27 +58,49 @@ export default defineVxeComponent({
|
|
|
57
58
|
filterable: Boolean,
|
|
58
59
|
filterMethod: Function,
|
|
59
60
|
remote: Boolean,
|
|
60
|
-
// 已废弃,被 remote-config.queryMethod 替换
|
|
61
|
-
remoteMethod: Function,
|
|
62
61
|
remoteConfig: Object,
|
|
63
62
|
emptyText: String,
|
|
63
|
+
showTotalButoon: {
|
|
64
|
+
type: Boolean,
|
|
65
|
+
default: () => getConfig().select.showTotalButoon
|
|
66
|
+
},
|
|
67
|
+
showCheckedButoon: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: () => getConfig().select.showCheckedButoon
|
|
70
|
+
},
|
|
71
|
+
showClearButton: {
|
|
72
|
+
type: Boolean,
|
|
73
|
+
default: () => getConfig().select.showClearButton
|
|
74
|
+
},
|
|
64
75
|
transfer: {
|
|
65
76
|
type: Boolean,
|
|
66
77
|
default: null
|
|
67
78
|
},
|
|
68
79
|
virtualYConfig: Object,
|
|
69
80
|
scrollY: Object,
|
|
70
|
-
|
|
81
|
+
/**
|
|
82
|
+
* 已废弃,被 remote-config.queryMethod 替换
|
|
83
|
+
* @deprecated
|
|
84
|
+
*/
|
|
85
|
+
remoteMethod: Function,
|
|
86
|
+
/**
|
|
87
|
+
* 已废弃,被 option-config.keyField 替换
|
|
88
|
+
* @deprecated
|
|
89
|
+
*/
|
|
71
90
|
optionId: {
|
|
72
91
|
type: String,
|
|
73
92
|
default: () => getConfig().select.optionId
|
|
74
93
|
},
|
|
75
|
-
|
|
94
|
+
/**
|
|
95
|
+
* 已废弃,被 option-config.useKey 替换
|
|
96
|
+
* @deprecated
|
|
97
|
+
*/
|
|
76
98
|
optionKey: Boolean
|
|
77
99
|
},
|
|
78
100
|
emits: [
|
|
79
101
|
'update:modelValue',
|
|
80
102
|
'change',
|
|
103
|
+
'all-change',
|
|
81
104
|
'clear',
|
|
82
105
|
'blur',
|
|
83
106
|
'focus',
|
|
@@ -106,7 +129,6 @@ export default defineVxeComponent({
|
|
|
106
129
|
bodyHeight: 0,
|
|
107
130
|
topSpaceHeight: 0,
|
|
108
131
|
optList: [],
|
|
109
|
-
afterVisibleList: [],
|
|
110
132
|
staticOptions: [],
|
|
111
133
|
reactFlag: 0,
|
|
112
134
|
currentOption: null,
|
|
@@ -123,6 +145,7 @@ export default defineVxeComponent({
|
|
|
123
145
|
const internalData = {
|
|
124
146
|
synchData: [],
|
|
125
147
|
fullData: [],
|
|
148
|
+
afterVisibleList: [],
|
|
126
149
|
optAddMaps: {},
|
|
127
150
|
optGroupKeyMaps: {},
|
|
128
151
|
optFullValMaps: {},
|
|
@@ -220,13 +243,10 @@ export default defineVxeComponent({
|
|
|
220
243
|
return groupPropsOpts.options || 'options';
|
|
221
244
|
});
|
|
222
245
|
const computeIsMaximize = computed(() => {
|
|
223
|
-
const { modelValue
|
|
224
|
-
|
|
225
|
-
return (XEUtils.isArray(modelValue) ? modelValue.length : (XEUtils.eqNull(modelValue) ? 0 : 1)) >= XEUtils.toNumber(max);
|
|
226
|
-
}
|
|
227
|
-
return false;
|
|
246
|
+
const { modelValue } = props;
|
|
247
|
+
return checkMaxLimit(modelValue);
|
|
228
248
|
});
|
|
229
|
-
const
|
|
249
|
+
const computeVirtualYOpts = computed(() => {
|
|
230
250
|
return Object.assign({}, getConfig().select.virtualYConfig || getConfig().select.scrollY, props.virtualYConfig || props.scrollY);
|
|
231
251
|
});
|
|
232
252
|
const computeRemoteOpts = computed(() => {
|
|
@@ -282,6 +302,13 @@ export default defineVxeComponent({
|
|
|
282
302
|
const optid = option[getOptKey()];
|
|
283
303
|
return optid ? encodeURIComponent(optid) : '';
|
|
284
304
|
};
|
|
305
|
+
const checkMaxLimit = (selectVals) => {
|
|
306
|
+
const { multiple, max } = props;
|
|
307
|
+
if (multiple && max) {
|
|
308
|
+
return (XEUtils.isArray(selectVals) ? selectVals.length : (XEUtils.eqNull(selectVals) ? 0 : 1)) >= XEUtils.toNumber(max);
|
|
309
|
+
}
|
|
310
|
+
return false;
|
|
311
|
+
};
|
|
285
312
|
const getRemoteSelectLabel = (value) => {
|
|
286
313
|
const { remoteValMaps, optFullValMaps } = internalData;
|
|
287
314
|
const labelField = computeLabelField.value;
|
|
@@ -354,7 +381,7 @@ export default defineVxeComponent({
|
|
|
354
381
|
cacheItem._index = index;
|
|
355
382
|
}
|
|
356
383
|
});
|
|
357
|
-
|
|
384
|
+
internalData.afterVisibleList = avList;
|
|
358
385
|
return nextTick();
|
|
359
386
|
};
|
|
360
387
|
const setCurrentOption = (option) => {
|
|
@@ -404,7 +431,7 @@ export default defineVxeComponent({
|
|
|
404
431
|
reactData.isAniVisible = true;
|
|
405
432
|
if (filterable) {
|
|
406
433
|
if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !fullData.length) {
|
|
407
|
-
|
|
434
|
+
handleSearchEvent();
|
|
408
435
|
}
|
|
409
436
|
else {
|
|
410
437
|
handleOption();
|
|
@@ -453,6 +480,40 @@ export default defineVxeComponent({
|
|
|
453
480
|
clearValueEvent($event, null);
|
|
454
481
|
hideOptionPanel();
|
|
455
482
|
};
|
|
483
|
+
const allCheckedPanelEvent = (params) => {
|
|
484
|
+
const { $event } = params;
|
|
485
|
+
const { modelValue, multiple, max } = props;
|
|
486
|
+
const { optList } = reactData;
|
|
487
|
+
const valueField = computeValueField.value;
|
|
488
|
+
if (multiple) {
|
|
489
|
+
const multipleValue = XEUtils.eqNull(modelValue) ? [] : (XEUtils.isArray(modelValue) ? modelValue : [modelValue]);
|
|
490
|
+
for (let i = 0; i < optList.length; i++) {
|
|
491
|
+
const option = optList[i];
|
|
492
|
+
const selectValue = option[valueField];
|
|
493
|
+
// 检测是否超过最大可选数量
|
|
494
|
+
if (checkMaxLimit(multipleValue)) {
|
|
495
|
+
if (VxeUI) {
|
|
496
|
+
VxeUI.modal.message({
|
|
497
|
+
content: getI18n('vxe.select.overSizeErr', [max]),
|
|
498
|
+
status: 'warning'
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
503
|
+
if (!multipleValue.some(val => val === selectValue)) {
|
|
504
|
+
multipleValue.push(selectValue);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
changeEvent($event, multipleValue);
|
|
508
|
+
dispatchEvent('all-change', { value: multipleValue }, $event);
|
|
509
|
+
hideOptionPanel();
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
const clearCheckedPanelEvent = (params) => {
|
|
513
|
+
const { $event } = params;
|
|
514
|
+
clearValueEvent($event, null);
|
|
515
|
+
hideOptionPanel();
|
|
516
|
+
};
|
|
456
517
|
const changeOptionEvent = (evnt, option) => {
|
|
457
518
|
const { modelValue, multiple } = props;
|
|
458
519
|
const { remoteValMaps } = internalData;
|
|
@@ -527,8 +588,8 @@ export default defineVxeComponent({
|
|
|
527
588
|
};
|
|
528
589
|
const findOffsetOption = (option, isDwArrow) => {
|
|
529
590
|
const { allowCreate } = props;
|
|
530
|
-
const {
|
|
531
|
-
const { optFullValMaps, optAddMaps } = internalData;
|
|
591
|
+
const { optList } = reactData;
|
|
592
|
+
const { optFullValMaps, optAddMaps, afterVisibleList } = internalData;
|
|
532
593
|
const valueField = computeValueField.value;
|
|
533
594
|
let fullList = afterVisibleList;
|
|
534
595
|
let offsetAddIndex = 0;
|
|
@@ -724,13 +785,10 @@ export default defineVxeComponent({
|
|
|
724
785
|
}
|
|
725
786
|
}
|
|
726
787
|
};
|
|
727
|
-
const checkOptionDisabled = (isSelected, option
|
|
788
|
+
const checkOptionDisabled = (isSelected, option) => {
|
|
728
789
|
if (option.disabled) {
|
|
729
790
|
return true;
|
|
730
791
|
}
|
|
731
|
-
if (group && group.disabled) {
|
|
732
|
-
return true;
|
|
733
|
-
}
|
|
734
792
|
const isMaximize = computeIsMaximize.value;
|
|
735
793
|
if (isMaximize && !isSelected) {
|
|
736
794
|
return true;
|
|
@@ -738,15 +796,15 @@ export default defineVxeComponent({
|
|
|
738
796
|
return false;
|
|
739
797
|
};
|
|
740
798
|
const updateYSpace = () => {
|
|
741
|
-
const { scrollYLoad
|
|
742
|
-
const { scrollYStore } = internalData;
|
|
799
|
+
const { scrollYLoad } = reactData;
|
|
800
|
+
const { scrollYStore, afterVisibleList } = internalData;
|
|
743
801
|
reactData.bodyHeight = scrollYLoad ? afterVisibleList.length * scrollYStore.rowHeight : 0;
|
|
744
802
|
reactData.topSpaceHeight = scrollYLoad ? Math.max(scrollYStore.startIndex * scrollYStore.rowHeight, 0) : 0;
|
|
745
803
|
};
|
|
746
804
|
const handleData = () => {
|
|
747
805
|
const { filterable, allowCreate } = props;
|
|
748
|
-
const { scrollYLoad,
|
|
749
|
-
const { optAddMaps, scrollYStore } = internalData;
|
|
806
|
+
const { scrollYLoad, searchValue } = reactData;
|
|
807
|
+
const { optAddMaps, scrollYStore, afterVisibleList } = internalData;
|
|
750
808
|
const labelField = computeLabelField.value;
|
|
751
809
|
const valueField = computeValueField.value;
|
|
752
810
|
const restList = scrollYLoad ? afterVisibleList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : afterVisibleList.slice(0);
|
|
@@ -773,13 +831,10 @@ export default defineVxeComponent({
|
|
|
773
831
|
const { scrollYLoad } = reactData;
|
|
774
832
|
const { scrollYStore } = internalData;
|
|
775
833
|
const virtualBodyElem = refVirtualBody.value;
|
|
776
|
-
const
|
|
834
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
777
835
|
let rowHeight = 0;
|
|
778
836
|
let firstItemElem;
|
|
779
837
|
if (virtualBodyElem) {
|
|
780
|
-
if (sYOpts.sItem) {
|
|
781
|
-
firstItemElem = virtualBodyElem.querySelector(sYOpts.sItem);
|
|
782
|
-
}
|
|
783
838
|
if (!firstItemElem) {
|
|
784
839
|
firstItemElem = virtualBodyElem.children[0];
|
|
785
840
|
}
|
|
@@ -793,7 +848,7 @@ export default defineVxeComponent({
|
|
|
793
848
|
if (scrollYLoad) {
|
|
794
849
|
const scrollBodyElem = refVirtualWrapper.value;
|
|
795
850
|
const visibleYSize = Math.max(8, scrollBodyElem ? Math.ceil(scrollBodyElem.clientHeight / rowHeight) : 0);
|
|
796
|
-
const offsetYSize = Math.max(0, Math.min(2, XEUtils.toNumber(
|
|
851
|
+
const offsetYSize = Math.max(0, Math.min(2, XEUtils.toNumber(virtualYOpts.oSize)));
|
|
797
852
|
scrollYStore.offsetSize = offsetYSize;
|
|
798
853
|
scrollYStore.visibleSize = visibleYSize;
|
|
799
854
|
scrollYStore.endIndex = Math.max(scrollYStore.startIndex, visibleYSize + offsetYSize, scrollYStore.endIndex);
|
|
@@ -815,6 +870,9 @@ export default defineVxeComponent({
|
|
|
815
870
|
if (avIndex > -1) {
|
|
816
871
|
const optWrapperElem = refVirtualWrapper.value;
|
|
817
872
|
const panelElem = refOptionPanel.value;
|
|
873
|
+
if (!panelElem) {
|
|
874
|
+
return;
|
|
875
|
+
}
|
|
818
876
|
const optElem = panelElem.querySelector(`[optid='${optid}']`);
|
|
819
877
|
if (optWrapperElem) {
|
|
820
878
|
if (optElem) {
|
|
@@ -942,7 +1000,7 @@ export default defineVxeComponent({
|
|
|
942
1000
|
cacheItemMap(datas || []);
|
|
943
1001
|
const { isLoaded, fullData, scrollYStore } = internalData;
|
|
944
1002
|
const defaultOpts = computeDefaultOpts.value;
|
|
945
|
-
const
|
|
1003
|
+
const virtualYOpts = computeVirtualYOpts.value;
|
|
946
1004
|
const valueField = computeValueField.value;
|
|
947
1005
|
Object.assign(scrollYStore, {
|
|
948
1006
|
startIndex: 0,
|
|
@@ -951,7 +1009,7 @@ export default defineVxeComponent({
|
|
|
951
1009
|
});
|
|
952
1010
|
internalData.synchData = datas || [];
|
|
953
1011
|
// 如果gt为0,则总是启用
|
|
954
|
-
reactData.scrollYLoad = !!
|
|
1012
|
+
reactData.scrollYLoad = !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt <= fullData.length);
|
|
955
1013
|
handleData();
|
|
956
1014
|
if (!isLoaded) {
|
|
957
1015
|
const { selectMode } = defaultOpts;
|
|
@@ -1026,13 +1084,17 @@ export default defineVxeComponent({
|
|
|
1026
1084
|
},
|
|
1027
1085
|
focus() {
|
|
1028
1086
|
const $input = refInput.value;
|
|
1087
|
+
if ($input) {
|
|
1088
|
+
$input.blur();
|
|
1089
|
+
}
|
|
1029
1090
|
reactData.isActivated = true;
|
|
1030
|
-
$input.blur();
|
|
1031
1091
|
return nextTick();
|
|
1032
1092
|
},
|
|
1033
1093
|
blur() {
|
|
1034
1094
|
const $input = refInput.value;
|
|
1035
|
-
$input
|
|
1095
|
+
if ($input) {
|
|
1096
|
+
$input.blur();
|
|
1097
|
+
}
|
|
1036
1098
|
reactData.isActivated = false;
|
|
1037
1099
|
return nextTick();
|
|
1038
1100
|
},
|
|
@@ -1040,7 +1102,7 @@ export default defineVxeComponent({
|
|
|
1040
1102
|
clearScroll
|
|
1041
1103
|
};
|
|
1042
1104
|
Object.assign($xeSelect, selectMethods);
|
|
1043
|
-
const renderOption = (list
|
|
1105
|
+
const renderOption = (list) => {
|
|
1044
1106
|
const { allowCreate, optionKey, modelValue } = props;
|
|
1045
1107
|
const { currentOption } = reactData;
|
|
1046
1108
|
const { optAddMaps } = internalData;
|
|
@@ -1058,9 +1120,9 @@ export default defineVxeComponent({
|
|
|
1058
1120
|
const isAdd = !!(allowCreate && optAddMaps[optid]);
|
|
1059
1121
|
const isSelected = !isAdd && (XEUtils.isArray(modelValue) ? modelValue.indexOf(optionValue) > -1 : modelValue === optionValue);
|
|
1060
1122
|
const isVisible = isAdd || (!isOptGroup || isOptionVisible(option));
|
|
1061
|
-
const isDisabled = !isAdd && checkOptionDisabled(isSelected, option
|
|
1123
|
+
const isDisabled = !isAdd && checkOptionDisabled(isSelected, option);
|
|
1062
1124
|
const defaultSlot = slots ? slots.default : null;
|
|
1063
|
-
const optParams = { option, group: null, $select: $xeSelect };
|
|
1125
|
+
const optParams = { option, group: isOptGroup ? option : null, $select: $xeSelect };
|
|
1064
1126
|
let optLabel = '';
|
|
1065
1127
|
let optVNs = [];
|
|
1066
1128
|
if (optionSlot) {
|
|
@@ -1148,8 +1210,8 @@ export default defineVxeComponent({
|
|
|
1148
1210
|
];
|
|
1149
1211
|
};
|
|
1150
1212
|
const renderVN = () => {
|
|
1151
|
-
const { className, popupClassName, loading, filterable } = props;
|
|
1152
|
-
const { initialized, isActivated, isAniVisible, visiblePanel, bodyHeight, topSpaceHeight } = reactData;
|
|
1213
|
+
const { modelValue, className, popupClassName, multiple, loading, filterable, showTotalButoon, showCheckedButoon, showClearButton } = props;
|
|
1214
|
+
const { initialized, isActivated, isAniVisible, optList, visiblePanel, bodyHeight, topSpaceHeight } = reactData;
|
|
1153
1215
|
const vSize = computeSize.value;
|
|
1154
1216
|
const isDisabled = computeIsDisabled.value;
|
|
1155
1217
|
const selectLabel = computeSelectLabel.value;
|
|
@@ -1174,6 +1236,7 @@ export default defineVxeComponent({
|
|
|
1174
1236
|
}, selectLabel)
|
|
1175
1237
|
]);
|
|
1176
1238
|
}
|
|
1239
|
+
const selectVals = XEUtils.eqNull(modelValue) ? [] : (XEUtils.isArray(modelValue) ? modelValue : [modelValue]);
|
|
1177
1240
|
return h('div', {
|
|
1178
1241
|
ref: refElem,
|
|
1179
1242
|
class: ['vxe-select', className ? (XEUtils.isFunction(className) ? className({ $select: $xeSelect }) : className) : '', {
|
|
@@ -1250,10 +1313,40 @@ export default defineVxeComponent({
|
|
|
1250
1313
|
})
|
|
1251
1314
|
])
|
|
1252
1315
|
: renderEmptyElement($xeSelect),
|
|
1253
|
-
headerSlot
|
|
1316
|
+
showTotalButoon || (showCheckedButoon && multiple) || showClearButton || headerSlot
|
|
1254
1317
|
? h('div', {
|
|
1255
1318
|
class: 'vxe-select--panel-header'
|
|
1256
|
-
}, headerSlot
|
|
1319
|
+
}, headerSlot
|
|
1320
|
+
? callSlot(headerSlot, {})
|
|
1321
|
+
: [
|
|
1322
|
+
h('div', {
|
|
1323
|
+
class: 'vxe-select--header-button'
|
|
1324
|
+
}, [
|
|
1325
|
+
showTotalButoon
|
|
1326
|
+
? h('div', {
|
|
1327
|
+
class: 'vxe-select--header-total'
|
|
1328
|
+
}, getI18n('vxe.select.total', [selectVals.length, optList.length]))
|
|
1329
|
+
: renderEmptyElement($xeSelect),
|
|
1330
|
+
h('div', {
|
|
1331
|
+
class: 'vxe-select--header-btns'
|
|
1332
|
+
}, [
|
|
1333
|
+
(showCheckedButoon && multiple)
|
|
1334
|
+
? h(VxeButtonComponent, {
|
|
1335
|
+
content: getI18n('vxe.select.allChecked'),
|
|
1336
|
+
mode: 'text',
|
|
1337
|
+
onClick: allCheckedPanelEvent
|
|
1338
|
+
})
|
|
1339
|
+
: renderEmptyElement($xeSelect),
|
|
1340
|
+
showClearButton
|
|
1341
|
+
? h(VxeButtonComponent, {
|
|
1342
|
+
content: getI18n('vxe.select.clear'),
|
|
1343
|
+
mode: 'text',
|
|
1344
|
+
onClick: clearCheckedPanelEvent
|
|
1345
|
+
})
|
|
1346
|
+
: renderEmptyElement($xeSelect)
|
|
1347
|
+
])
|
|
1348
|
+
])
|
|
1349
|
+
])
|
|
1257
1350
|
: renderEmptyElement($xeSelect),
|
|
1258
1351
|
h('div', {
|
|
1259
1352
|
class: 'vxe-select--panel-body'
|
|
@@ -1273,7 +1366,7 @@ export default defineVxeComponent({
|
|
|
1273
1366
|
ref: refVirtualBody,
|
|
1274
1367
|
class: 'vxe-select--body',
|
|
1275
1368
|
style: {
|
|
1276
|
-
|
|
1369
|
+
transform: `translateY(${topSpaceHeight}px)`
|
|
1277
1370
|
}
|
|
1278
1371
|
}, renderOpts())
|
|
1279
1372
|
])
|
|
@@ -1281,7 +1374,7 @@ export default defineVxeComponent({
|
|
|
1281
1374
|
footerSlot
|
|
1282
1375
|
? h('div', {
|
|
1283
1376
|
class: 'vxe-select--panel-footer'
|
|
1284
|
-
}, footerSlot
|
|
1377
|
+
}, callSlot(footerSlot, {}))
|
|
1285
1378
|
: renderEmptyElement($xeSelect)
|
|
1286
1379
|
])
|
|
1287
1380
|
]
|
package/es/select/style.css
CHANGED
|
@@ -95,6 +95,27 @@
|
|
|
95
95
|
background-color: var(--vxe-ui-layout-background-color);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
.vxe-select--header-button {
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-direction: row;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.vxe-select--header-total {
|
|
104
|
+
display: flex;
|
|
105
|
+
flex-direction: row;
|
|
106
|
+
align-items: center;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
flex-shrink: 0;
|
|
109
|
+
padding-left: 0.8em;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.vxe-select--header-btns {
|
|
113
|
+
display: flex;
|
|
114
|
+
flex-direction: row;
|
|
115
|
+
flex-grow: 1;
|
|
116
|
+
justify-content: right;
|
|
117
|
+
}
|
|
118
|
+
|
|
98
119
|
.vxe-select--panel-header {
|
|
99
120
|
border-bottom: 1px solid var(--vxe-ui-base-popup-border-color);
|
|
100
121
|
}
|
package/es/select/style.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-select-slots{display:none}.vxe-select--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel.ani--enter>div::after{display:none}.vxe-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-select--panel-search{display:block;padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer,.vxe-select--panel-header{padding:4px 0}.vxe-select-option--wrapper{position:relative;overflow-x:hidden;overflow-y:auto}.vxe-select--y-space{width:0;float:left}.vxe-select--body,.vxe-select-option--wrapper{padding:0;margin:0;border:0;outline:0}.vxe-select-option--wrapper{max-height:18em}.vxe-select-option{position:relative;padding:0 .6em;max-width:600px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.vxe-select-option.is--add{padding-right:2em}.vxe-select-option.is--add:hover .vxe-select-option--add-icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option.is--add .vxe-select-option--add-icon{display:block}.vxe-select-option.is--selected{color:var(--vxe-ui-font-primary-color)}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-select-optgroup{color:var(--vxe-ui-select-title-color);font-size:12px;cursor:default}.vxe-select-option--add-icon{display:none;position:absolute;top:0;right:.6em}.vxe-select--search-icon{margin-right:.5em}.vxe-select--empty-placeholder,.vxe-select--search-loading{padding:0 .6em;text-align:center;color:var(--vxe-ui-select-empty-color)}.vxe-select,.vxe-select--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-select--panel.size--medium,.vxe-select.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-select--panel.size--small,.vxe-select.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-select--panel.size--mini,.vxe-select.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-select--panel .vxe-select-option{height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel .vxe-select--empty-placeholder,.vxe-select--panel .vxe-select--search-loading,.vxe-select--panel .vxe-select-option{line-height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel.size--medium .vxe-select-option{height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--medium .vxe-select--empty-placeholder,.vxe-select--panel.size--medium .vxe-select--search-loading,.vxe-select--panel.size--medium .vxe-select-option{line-height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--small .vxe-select-option{height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--small .vxe-select--empty-placeholder,.vxe-select--panel.size--small .vxe-select--search-loading,.vxe-select--panel.size--small .vxe-select-option{line-height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--mini .vxe-select-option{height:var(--vxe-ui-select-option-height-mini)}.vxe-select--panel.size--mini .vxe-select--empty-placeholder,.vxe-select--panel.size--mini .vxe-select--search-loading,.vxe-select--panel.size--mini .vxe-select-option{line-height:var(--vxe-ui-select-option-height-mini)}
|
|
1
|
+
.vxe-select{position:relative;display:inline-block;width:180px;color:var(--vxe-ui-font-color);text-align:left}.vxe-select>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-select.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-select.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-select>.vxe-input{width:100%}.vxe-select>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-select.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-select--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-select-slots{display:none}.vxe-select--panel{display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-select--panel:not(.is--transfer){min-width:100%}.vxe-select--panel.is--transfer{position:fixed}.vxe-select--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-select--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-select--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-select--panel.ani--enter>div::after{display:none}.vxe-select--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-select--panel-search{display:block;padding:var(--vxe-ui-layout-padding-default)}.vxe-select--panel-search .vxe-select-search--input{width:100%}.vxe-select--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-select--header-button{display:flex;flex-direction:row}.vxe-select--header-total{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-shrink:0;padding-left:.8em}.vxe-select--header-btns{display:flex;flex-direction:row;flex-grow:1;justify-content:right}.vxe-select--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-select--panel-footer,.vxe-select--panel-header{padding:4px 0}.vxe-select-option--wrapper{position:relative;overflow-x:hidden;overflow-y:auto}.vxe-select--y-space{width:0;float:left}.vxe-select--body,.vxe-select-option--wrapper{padding:0;margin:0;border:0;outline:0}.vxe-select-option--wrapper{max-height:18em}.vxe-select-option{position:relative;padding:0 .6em;max-width:600px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.vxe-select-option.is--add{padding-right:2em}.vxe-select-option.is--add:hover .vxe-select-option--add-icon{color:var(--vxe-ui-font-primary-color)}.vxe-select-option.is--add .vxe-select-option--add-icon{display:block}.vxe-select-option.is--selected{color:var(--vxe-ui-font-primary-color)}.vxe-select-option:not(.is--disabled).is--hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-select-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-select-optgroup{color:var(--vxe-ui-select-title-color);font-size:12px;cursor:default}.vxe-select-option--add-icon{display:none;position:absolute;top:0;right:.6em}.vxe-select--search-icon{margin-right:.5em}.vxe-select--empty-placeholder,.vxe-select--search-loading{padding:0 .6em;text-align:center;color:var(--vxe-ui-select-empty-color)}.vxe-select,.vxe-select--panel{font-size:var(--vxe-ui-font-size-default)}.vxe-select--panel.size--medium,.vxe-select.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-select--panel.size--small,.vxe-select.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-select--panel.size--mini,.vxe-select.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-select--panel .vxe-select-option{height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel .vxe-select--empty-placeholder,.vxe-select--panel .vxe-select--search-loading,.vxe-select--panel .vxe-select-option{line-height:var(--vxe-ui-select-option-height-default)}.vxe-select--panel.size--medium .vxe-select-option{height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--medium .vxe-select--empty-placeholder,.vxe-select--panel.size--medium .vxe-select--search-loading,.vxe-select--panel.size--medium .vxe-select-option{line-height:var(--vxe-ui-select-option-height-medium)}.vxe-select--panel.size--small .vxe-select-option{height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--small .vxe-select--empty-placeholder,.vxe-select--panel.size--small .vxe-select--search-loading,.vxe-select--panel.size--small .vxe-select-option{line-height:var(--vxe-ui-select-option-height-small)}.vxe-select--panel.size--mini .vxe-select-option{height:var(--vxe-ui-select-option-height-mini)}.vxe-select--panel.size--mini .vxe-select--empty-placeholder,.vxe-select--panel.size--mini .vxe-select--search-loading,.vxe-select--panel.size--mini .vxe-select-option{line-height:var(--vxe-ui-select-option-height-mini)}
|