vxe-pc-ui 4.20.9 → 4.20.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +1874 -2040
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/date-panel/src/date-panel.js +58 -36
- package/es/date-panel/style.css +22 -20
- package/es/date-panel/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +74 -38
- package/es/icon-picker/style.css +9 -3
- package/es/icon-picker/style.min.css +1 -1
- package/es/list/src/list.js +12 -165
- package/es/scrollbar/src/scrollbar.js +20 -173
- package/es/select/src/select.js +246 -8
- package/es/select/style.css +44 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tooltip/src/tooltip.js +2 -4
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +21 -173
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/style.css +22 -20
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +9 -3
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-select/style.css +44 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -0
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/date-panel/src/date-panel.js +56 -34
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/style/style.css +22 -20
- package/lib/date-panel/style/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +101 -45
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +9 -3
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +827 -761
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +29 -195
- package/lib/list/src/list.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +34 -199
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +318 -68
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +44 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tooltip/src/tooltip.js +2 -4
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -0
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree/src/tree.js +40 -202
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-date-panel/style/style.css +22 -20
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +9 -3
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +44 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -0
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/date-panel/src/date-panel.ts +58 -36
- package/packages/icon-picker/src/icon-picker.ts +80 -38
- package/packages/list/src/list.ts +28 -182
- package/packages/scrollbar/src/scrollbar.ts +36 -188
- package/packages/select/src/select.ts +281 -8
- package/packages/tooltip/src/tooltip.ts +2 -4
- package/packages/tree/src/tree.ts +37 -190
- package/styles/components/date-panel.scss +31 -29
- package/styles/components/icon-picker.scss +9 -3
- package/styles/components/select.scss +77 -0
- package/styles/components/tooltip.scss +1 -0
- package/types/components/gantt-module/gantt-view.d.ts +16 -16
- package/types/components/icon-picker.d.ts +21 -1
- package/types/components/list.d.ts +4 -0
- package/types/components/scrollbar.d.ts +7 -14
- package/types/components/select.d.ts +28 -3
- package/types/components/table.d.ts +30 -18
- package/types/components/tree.d.ts +7 -16
- /package/es/icon/{iconfont.1792139440389.ttf → iconfont.1792226845944.ttf} +0 -0
- /package/es/icon/{iconfont.1792139440389.woff → iconfont.1792226845944.woff} +0 -0
- /package/es/icon/{iconfont.1792139440389.woff2 → iconfont.1792226845944.woff2} +0 -0
- /package/es/{iconfont.1792139440389.ttf → iconfont.1792226845944.ttf} +0 -0
- /package/es/{iconfont.1792139440389.woff → iconfont.1792226845944.woff} +0 -0
- /package/es/{iconfont.1792139440389.woff2 → iconfont.1792226845944.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.ttf → iconfont.1792226845944.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.woff → iconfont.1792226845944.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.woff2 → iconfont.1792226845944.woff2} +0 -0
- /package/lib/{iconfont.1792139440389.ttf → iconfont.1792226845944.ttf} +0 -0
- /package/lib/{iconfont.1792139440389.woff → iconfont.1792226845944.woff} +0 -0
- /package/lib/{iconfont.1792139440389.woff2 → iconfont.1792226845944.woff2} +0 -0
package/lib/select/src/select.js
CHANGED
|
@@ -15,6 +15,21 @@ var _log = require("../../ui/src/log");
|
|
|
15
15
|
var _input = _interopRequireDefault(require("../../input"));
|
|
16
16
|
var _button = _interopRequireDefault(require("../../button"));
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
const {
|
|
19
|
+
getConfig,
|
|
20
|
+
getIcon,
|
|
21
|
+
getI18n,
|
|
22
|
+
baseUtils,
|
|
23
|
+
domUtils,
|
|
24
|
+
globalEvents,
|
|
25
|
+
GLOBAL_EVENT_KEYS,
|
|
26
|
+
globalResize,
|
|
27
|
+
createEvent,
|
|
28
|
+
renderEmptyElement
|
|
29
|
+
} = _ui.VxeUI;
|
|
30
|
+
const {
|
|
31
|
+
getDefVal
|
|
32
|
+
} = baseUtils;
|
|
18
33
|
const {
|
|
19
34
|
errLog
|
|
20
35
|
} = (0, _log.createComponentLog)('select');
|
|
@@ -36,6 +51,9 @@ function createReactData() {
|
|
|
36
51
|
currentOption: null,
|
|
37
52
|
searchValue: '',
|
|
38
53
|
searchLoading: false,
|
|
54
|
+
// 滚动条
|
|
55
|
+
yThumbHeight: 0,
|
|
56
|
+
xThumbWidth: 0,
|
|
39
57
|
panelIndex: 0,
|
|
40
58
|
panelStyle: {},
|
|
41
59
|
panelPlacement: null,
|
|
@@ -55,8 +73,14 @@ function createInternalData() {
|
|
|
55
73
|
optGroupKeyMaps: {},
|
|
56
74
|
optFullValMaps: {},
|
|
57
75
|
remoteValMaps: {},
|
|
58
|
-
|
|
76
|
+
// 滚动条
|
|
77
|
+
// scrollObserver: undefined,
|
|
78
|
+
// isThumbDrag: false,
|
|
79
|
+
thumbDragOffset: 0,
|
|
80
|
+
yThumbTop: 0,
|
|
81
|
+
xThumbLeft: 0,
|
|
59
82
|
lastScrollTop: 0,
|
|
83
|
+
lastScrollLeft: 0,
|
|
60
84
|
scrollYStore: {
|
|
61
85
|
startIndex: 0,
|
|
62
86
|
endIndex: 0,
|
|
@@ -75,11 +99,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
75
99
|
defaultConfig: Object,
|
|
76
100
|
emptyValue: {
|
|
77
101
|
type: [String, Number, Boolean, Array],
|
|
78
|
-
default: () =>
|
|
102
|
+
default: () => getConfig().select.emptyValue
|
|
79
103
|
},
|
|
80
104
|
clearable: {
|
|
81
105
|
type: Boolean,
|
|
82
|
-
default: () =>
|
|
106
|
+
default: () => getConfig().select.clearable
|
|
83
107
|
},
|
|
84
108
|
placeholder: String,
|
|
85
109
|
readonly: {
|
|
@@ -94,12 +118,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
94
118
|
multiple: Boolean,
|
|
95
119
|
multiCharOverflow: {
|
|
96
120
|
type: [Number, String],
|
|
97
|
-
default: () =>
|
|
121
|
+
default: () => getConfig().select.multiCharOverflow
|
|
98
122
|
},
|
|
99
123
|
prefixIcon: String,
|
|
100
124
|
allowCreate: {
|
|
101
125
|
type: Boolean,
|
|
102
|
-
default: () =>
|
|
126
|
+
default: () => getConfig().select.allowCreate
|
|
103
127
|
},
|
|
104
128
|
placement: String,
|
|
105
129
|
lazyOptions: Array,
|
|
@@ -121,12 +145,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
121
145
|
},
|
|
122
146
|
showRadio: {
|
|
123
147
|
type: Boolean,
|
|
124
|
-
default: () =>
|
|
148
|
+
default: () => getConfig().select.showRadio
|
|
125
149
|
},
|
|
126
150
|
radioConfig: Object,
|
|
127
151
|
showCheckbox: {
|
|
128
152
|
type: Boolean,
|
|
129
|
-
default: () =>
|
|
153
|
+
default: () => getConfig().select.showCheckedButton
|
|
130
154
|
},
|
|
131
155
|
checkboxConfig: Object,
|
|
132
156
|
/**
|
|
@@ -136,7 +160,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
136
160
|
zIndex: Number,
|
|
137
161
|
size: {
|
|
138
162
|
type: String,
|
|
139
|
-
default: () =>
|
|
163
|
+
default: () => getConfig().select.size || getConfig().size
|
|
140
164
|
},
|
|
141
165
|
filterable: Boolean,
|
|
142
166
|
/**
|
|
@@ -150,27 +174,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
150
174
|
emptyText: String,
|
|
151
175
|
checkedClosable: {
|
|
152
176
|
type: Boolean,
|
|
153
|
-
default: () =>
|
|
177
|
+
default: () => getConfig().select.checkedClosable
|
|
154
178
|
},
|
|
155
179
|
clearClosable: {
|
|
156
180
|
type: Boolean,
|
|
157
|
-
default: () =>
|
|
181
|
+
default: () => getConfig().select.clearClosable
|
|
158
182
|
},
|
|
159
183
|
showCloseButton: {
|
|
160
184
|
type: Boolean,
|
|
161
|
-
default: () =>
|
|
185
|
+
default: () => getConfig().select.showCloseButton
|
|
162
186
|
},
|
|
163
187
|
showTotalButton: {
|
|
164
188
|
type: Boolean,
|
|
165
|
-
default: () =>
|
|
189
|
+
default: () => getConfig().select.showTotalButton
|
|
166
190
|
},
|
|
167
191
|
showCheckedButton: {
|
|
168
192
|
type: Boolean,
|
|
169
|
-
default: () =>
|
|
193
|
+
default: () => getConfig().select.showCheckedButton
|
|
170
194
|
},
|
|
171
195
|
showClearButton: {
|
|
172
196
|
type: Boolean,
|
|
173
|
-
default: () =>
|
|
197
|
+
default: () => getConfig().select.showClearButton
|
|
174
198
|
},
|
|
175
199
|
transfer: {
|
|
176
200
|
type: Boolean,
|
|
@@ -179,6 +203,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
179
203
|
popupConfig: Object,
|
|
180
204
|
virtualYConfig: Object,
|
|
181
205
|
scrollY: Object,
|
|
206
|
+
useScrollbar: {
|
|
207
|
+
type: Boolean,
|
|
208
|
+
default: () => getDefVal(getConfig().select.useScrollbar, getConfig().useScrollbar)
|
|
209
|
+
},
|
|
210
|
+
scrollbarConfig: Object,
|
|
182
211
|
/**
|
|
183
212
|
* 已废弃,被 remote-config.queryMethod 替换
|
|
184
213
|
* @deprecated
|
|
@@ -190,7 +219,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
190
219
|
*/
|
|
191
220
|
optionId: {
|
|
192
221
|
type: String,
|
|
193
|
-
default: () =>
|
|
222
|
+
default: () => getConfig().select.optionId
|
|
194
223
|
},
|
|
195
224
|
/**
|
|
196
225
|
* 已废弃,被 option-config.useKey 替换
|
|
@@ -216,10 +245,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
216
245
|
const refInpSearch = (0, _vue.ref)();
|
|
217
246
|
const refVirtualWrapper = (0, _vue.ref)();
|
|
218
247
|
const refOptionPanel = (0, _vue.ref)();
|
|
248
|
+
const refVirtualSpaceElem = (0, _vue.ref)();
|
|
219
249
|
const refVirtualBody = (0, _vue.ref)();
|
|
220
250
|
const {
|
|
221
251
|
computeSize
|
|
222
|
-
} =
|
|
252
|
+
} = _ui.useFns.useSize(props);
|
|
253
|
+
const {
|
|
254
|
+
computeIsVScrollbar
|
|
255
|
+
} = _ui.useFns.useVScrollbar(props);
|
|
223
256
|
const reactData = (0, _vue.reactive)(createReactData());
|
|
224
257
|
const internalData = createInternalData();
|
|
225
258
|
const refMaps = {
|
|
@@ -233,6 +266,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
233
266
|
internalData,
|
|
234
267
|
getRefMaps: () => refMaps
|
|
235
268
|
};
|
|
269
|
+
const {
|
|
270
|
+
refTrackXElem,
|
|
271
|
+
refTrackYElem,
|
|
272
|
+
refThumbXElem,
|
|
273
|
+
refThumbYElem,
|
|
274
|
+
updateThumbSize,
|
|
275
|
+
updateThumbOffset,
|
|
276
|
+
clickTrackXEvent,
|
|
277
|
+
clickTrackYEvent,
|
|
278
|
+
pointerdownThumbXEvent,
|
|
279
|
+
pointermoveThumbXEvent,
|
|
280
|
+
cleatPointerThumbEvent,
|
|
281
|
+
pointerdownThumbYEvent,
|
|
282
|
+
pointermoveThumbYEvent
|
|
283
|
+
} = _ui.useFns.useInitVScrollbar($xeSelect);
|
|
236
284
|
const computeFormReadonly = (0, _vue.computed)(() => {
|
|
237
285
|
const {
|
|
238
286
|
readonly
|
|
@@ -266,7 +314,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
266
314
|
return popupOpts.transfer;
|
|
267
315
|
}
|
|
268
316
|
if (transfer === null) {
|
|
269
|
-
const globalTransfer =
|
|
317
|
+
const globalTransfer = getConfig().select.transfer;
|
|
270
318
|
if (_xeUtils.default.isBoolean(globalTransfer)) {
|
|
271
319
|
return globalTransfer;
|
|
272
320
|
}
|
|
@@ -283,11 +331,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
283
331
|
if (placeholder) {
|
|
284
332
|
return (0, _utils.getFuncText)(placeholder);
|
|
285
333
|
}
|
|
286
|
-
const globalPlaceholder =
|
|
334
|
+
const globalPlaceholder = getConfig().select.placeholder;
|
|
287
335
|
if (globalPlaceholder) {
|
|
288
336
|
return (0, _utils.getFuncText)(globalPlaceholder);
|
|
289
337
|
}
|
|
290
|
-
return
|
|
338
|
+
return getI18n('vxe.base.pleaseSelect');
|
|
291
339
|
});
|
|
292
340
|
const computeDefaultOpts = (0, _vue.computed)(() => {
|
|
293
341
|
return Object.assign({}, props.defaultConfig);
|
|
@@ -319,25 +367,25 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
319
367
|
return checkMaxLimit(selectVals);
|
|
320
368
|
});
|
|
321
369
|
const computePopupOpts = (0, _vue.computed)(() => {
|
|
322
|
-
return Object.assign({},
|
|
370
|
+
return Object.assign({}, getConfig().select.popupConfig, props.popupConfig);
|
|
323
371
|
});
|
|
324
372
|
const computeVirtualYOpts = (0, _vue.computed)(() => {
|
|
325
|
-
return Object.assign({},
|
|
373
|
+
return Object.assign({}, getConfig().select.virtualYConfig || getConfig().select.scrollY, props.virtualYConfig || props.scrollY);
|
|
326
374
|
});
|
|
327
375
|
const computeRemoteOpts = (0, _vue.computed)(() => {
|
|
328
|
-
return Object.assign({},
|
|
376
|
+
return Object.assign({}, getConfig().select.remoteConfig, props.remoteConfig);
|
|
329
377
|
});
|
|
330
378
|
const computeFilterOpts = (0, _vue.computed)(() => {
|
|
331
|
-
return Object.assign({},
|
|
379
|
+
return Object.assign({}, getConfig().select.filterConfig, props.filterConfig);
|
|
332
380
|
});
|
|
333
381
|
const computeOptionOpts = (0, _vue.computed)(() => {
|
|
334
|
-
return Object.assign({},
|
|
382
|
+
return Object.assign({}, getConfig().select.optionConfig, props.optionConfig);
|
|
335
383
|
});
|
|
336
384
|
const computeRadioOpts = (0, _vue.computed)(() => {
|
|
337
|
-
return Object.assign({},
|
|
385
|
+
return Object.assign({}, getConfig().select.radioConfig, props.radioConfig);
|
|
338
386
|
});
|
|
339
387
|
const computeCheckboxOpts = (0, _vue.computed)(() => {
|
|
340
|
-
return Object.assign({},
|
|
388
|
+
return Object.assign({}, getConfig().select.checkboxConfig, props.checkboxConfig);
|
|
341
389
|
});
|
|
342
390
|
const computeMultiMaxCharNum = (0, _vue.computed)(() => {
|
|
343
391
|
return _xeUtils.default.toNumber(props.multiCharOverflow);
|
|
@@ -419,6 +467,71 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
419
467
|
}
|
|
420
468
|
return labels.join(', ');
|
|
421
469
|
});
|
|
470
|
+
const computeScrollbarOpts = (0, _vue.computed)(() => {
|
|
471
|
+
return Object.assign({}, getConfig().tree.scrollbarConfig, props.scrollbarConfig);
|
|
472
|
+
});
|
|
473
|
+
const computeScrollbarXOpts = (0, _vue.computed)(() => {
|
|
474
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
475
|
+
return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
|
|
476
|
+
visible: false
|
|
477
|
+
});
|
|
478
|
+
});
|
|
479
|
+
const computeScrollbarYOpts = (0, _vue.computed)(() => {
|
|
480
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
481
|
+
return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
|
|
482
|
+
});
|
|
483
|
+
const computeScrollXHeight = (0, _vue.computed)(() => {
|
|
484
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
485
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
486
|
+
return getDefVal(getDefVal(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
|
|
487
|
+
});
|
|
488
|
+
const computeScrollYWidth = (0, _vue.computed)(() => {
|
|
489
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
490
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
491
|
+
return getDefVal(getDefVal(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
|
|
492
|
+
});
|
|
493
|
+
const computeScrollXVisible = (0, _vue.computed)(() => {
|
|
494
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
495
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
496
|
+
return getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
497
|
+
});
|
|
498
|
+
const computeScrollYVisible = (0, _vue.computed)(() => {
|
|
499
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
500
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
501
|
+
return getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
502
|
+
});
|
|
503
|
+
const computeScrollXAutoHide = (0, _vue.computed)(() => {
|
|
504
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
505
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
506
|
+
return getDefVal(getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
507
|
+
});
|
|
508
|
+
const computeScrollYAutoHide = (0, _vue.computed)(() => {
|
|
509
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
510
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
511
|
+
return getDefVal(getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
512
|
+
});
|
|
513
|
+
const computeScrollbarWrapperClss = (0, _vue.computed)(() => {
|
|
514
|
+
const {
|
|
515
|
+
yThumbHeight,
|
|
516
|
+
xThumbWidth
|
|
517
|
+
} = reactData;
|
|
518
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
519
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
520
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
521
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
522
|
+
return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`, `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
|
|
523
|
+
'overflow-y': yThumbHeight,
|
|
524
|
+
'overflow-x': xThumbWidth
|
|
525
|
+
});
|
|
526
|
+
});
|
|
527
|
+
const computeScrollbarXToTop = (0, _vue.computed)(() => {
|
|
528
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
529
|
+
return scrollbarXOpts.position === 'top';
|
|
530
|
+
});
|
|
531
|
+
const computeScrollbarYToLeft = (0, _vue.computed)(() => {
|
|
532
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
533
|
+
return scrollbarYOpts.position === 'left';
|
|
534
|
+
});
|
|
422
535
|
const callSlot = (slotFunc, params) => {
|
|
423
536
|
if (slotFunc) {
|
|
424
537
|
if (_xeUtils.default.isString(slotFunc)) {
|
|
@@ -431,7 +544,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
431
544
|
return [];
|
|
432
545
|
};
|
|
433
546
|
const dispatchEvent = (type, params, evnt) => {
|
|
434
|
-
emit(type,
|
|
547
|
+
emit(type, createEvent(evnt, {
|
|
435
548
|
$select: $xeSelect
|
|
436
549
|
}, params));
|
|
437
550
|
};
|
|
@@ -780,7 +893,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
780
893
|
if (checkMaxLimit(currVlas)) {
|
|
781
894
|
if (_ui.VxeUI) {
|
|
782
895
|
_ui.VxeUI.modal.message({
|
|
783
|
-
content:
|
|
896
|
+
content: getI18n('vxe.select.overSizeErr', [max]),
|
|
784
897
|
status: 'warning'
|
|
785
898
|
});
|
|
786
899
|
}
|
|
@@ -965,12 +1078,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
965
1078
|
trigger
|
|
966
1079
|
} = popupOpts;
|
|
967
1080
|
if (!isDisabled) {
|
|
968
|
-
const isTab =
|
|
969
|
-
const isEnter =
|
|
970
|
-
const isEsc =
|
|
971
|
-
const isUpArrow =
|
|
972
|
-
const isDwArrow =
|
|
973
|
-
const isDel =
|
|
1081
|
+
const isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
|
|
1082
|
+
const isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
|
|
1083
|
+
const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
|
|
1084
|
+
const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
|
|
1085
|
+
const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
|
|
1086
|
+
const isDel = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.DELETE);
|
|
974
1087
|
if (isTab) {
|
|
975
1088
|
reactData.isActivated = false;
|
|
976
1089
|
}
|
|
@@ -1336,13 +1449,25 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1336
1449
|
}
|
|
1337
1450
|
});
|
|
1338
1451
|
};
|
|
1452
|
+
const updateScrollbar = () => {
|
|
1453
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1454
|
+
if (isVScrollbar) {
|
|
1455
|
+
return (0, _vue.nextTick)().then(() => {
|
|
1456
|
+
updateThumbSize();
|
|
1457
|
+
updateThumbOffset();
|
|
1458
|
+
});
|
|
1459
|
+
}
|
|
1460
|
+
return Promise.resolve();
|
|
1461
|
+
};
|
|
1339
1462
|
/**
|
|
1340
1463
|
* 重新计算列表
|
|
1341
1464
|
*/
|
|
1342
1465
|
const recalculate = () => {
|
|
1343
1466
|
const el = refElem.value;
|
|
1344
1467
|
if (el && el.clientWidth && el.clientHeight) {
|
|
1345
|
-
return computeScrollLoad()
|
|
1468
|
+
return computeScrollLoad().then(() => {
|
|
1469
|
+
return updateScrollbar();
|
|
1470
|
+
});
|
|
1346
1471
|
}
|
|
1347
1472
|
return Promise.resolve();
|
|
1348
1473
|
};
|
|
@@ -1384,6 +1509,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1384
1509
|
const scrollLeft = scrollBodyElem.scrollLeft;
|
|
1385
1510
|
const isX = scrollLeft !== internalData.lastScrollLeft;
|
|
1386
1511
|
const isY = scrollTop !== internalData.lastScrollTop;
|
|
1512
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1513
|
+
if (isVScrollbar) {
|
|
1514
|
+
updateThumbOffset();
|
|
1515
|
+
}
|
|
1387
1516
|
internalData.lastScrollTop = scrollTop;
|
|
1388
1517
|
internalData.lastScrollLeft = scrollLeft;
|
|
1389
1518
|
if (reactData.scrollYLoad) {
|
|
@@ -1471,6 +1600,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1471
1600
|
};
|
|
1472
1601
|
const selectMethods = {
|
|
1473
1602
|
dispatchEvent,
|
|
1603
|
+
getScrollViewElem() {
|
|
1604
|
+
const viewEl = refVirtualWrapper.value;
|
|
1605
|
+
return viewEl || null;
|
|
1606
|
+
},
|
|
1474
1607
|
loadData,
|
|
1475
1608
|
reloadData(datas) {
|
|
1476
1609
|
internalData.isLoaded = false;
|
|
@@ -1524,6 +1657,28 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1524
1657
|
recalculate,
|
|
1525
1658
|
clearScroll
|
|
1526
1659
|
};
|
|
1660
|
+
const bindScrollbarResize = () => {
|
|
1661
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1662
|
+
const {
|
|
1663
|
+
scrollObserver
|
|
1664
|
+
} = internalData;
|
|
1665
|
+
if (isVScrollbar) {
|
|
1666
|
+
if (!scrollObserver) {
|
|
1667
|
+
const el = refElem.value;
|
|
1668
|
+
const viewInnerEl = refVirtualSpaceElem.value;
|
|
1669
|
+
const scrollObserver = globalResize.create(() => {
|
|
1670
|
+
reScrollFlag.value++;
|
|
1671
|
+
});
|
|
1672
|
+
if (el) {
|
|
1673
|
+
scrollObserver.observe(el);
|
|
1674
|
+
}
|
|
1675
|
+
if (viewInnerEl) {
|
|
1676
|
+
scrollObserver.observe(viewInnerEl);
|
|
1677
|
+
}
|
|
1678
|
+
internalData.scrollObserver = scrollObserver;
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1681
|
+
};
|
|
1527
1682
|
Object.assign($xeSelect, selectMethods);
|
|
1528
1683
|
const renderRadio = (option, isOptGroup, isChecked, isDisabled) => {
|
|
1529
1684
|
const radioOpts = computeRadioOpts.value;
|
|
@@ -1532,7 +1687,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1532
1687
|
trigger
|
|
1533
1688
|
} = radioOpts;
|
|
1534
1689
|
if (isOptGroup || showIcon === false) {
|
|
1535
|
-
return
|
|
1690
|
+
return renderEmptyElement($xeSelect);
|
|
1536
1691
|
}
|
|
1537
1692
|
const ons = {};
|
|
1538
1693
|
if (!trigger || trigger === 'default') {
|
|
@@ -1549,7 +1704,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1549
1704
|
'is--disabled': isDisabled
|
|
1550
1705
|
}]
|
|
1551
1706
|
}, ons), [(0, _vue.h)('span', {
|
|
1552
|
-
class: ['vxe-radio--icon', isChecked ?
|
|
1707
|
+
class: ['vxe-radio--icon', isChecked ? getIcon().RADIO_CHECKED : isDisabled ? getIcon().RADIO_DISABLED_UNCHECKED : getIcon().RADIO_UNCHECKED]
|
|
1553
1708
|
})]);
|
|
1554
1709
|
};
|
|
1555
1710
|
const renderCheckbox = (option, isOptGroup, isChecked, isDisabled) => {
|
|
@@ -1559,7 +1714,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1559
1714
|
trigger
|
|
1560
1715
|
} = checkboxOpts;
|
|
1561
1716
|
if (isOptGroup || showIcon === false) {
|
|
1562
|
-
return
|
|
1717
|
+
return renderEmptyElement($xeSelect);
|
|
1563
1718
|
}
|
|
1564
1719
|
const ons = {};
|
|
1565
1720
|
if (!trigger || trigger === 'default') {
|
|
@@ -1576,7 +1731,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1576
1731
|
'is--disabled': isDisabled
|
|
1577
1732
|
}]
|
|
1578
1733
|
}, ons), [(0, _vue.h)('span', {
|
|
1579
|
-
class: ['vxe-checkbox--icon', isChecked ?
|
|
1734
|
+
class: ['vxe-checkbox--icon', isChecked ? getIcon().CHECKBOX_CHECKED : isDisabled ? getIcon().CHECKBOX_DISABLED_UNCHECKED : getIcon().CHECKBOX_UNCHECKED]
|
|
1580
1735
|
})]);
|
|
1581
1736
|
};
|
|
1582
1737
|
const renderOption = list => {
|
|
@@ -1685,8 +1840,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1685
1840
|
key: 2,
|
|
1686
1841
|
class: 'vxe-select-option--add-icon'
|
|
1687
1842
|
}, [(0, _vue.h)('i', {
|
|
1688
|
-
class:
|
|
1689
|
-
})]) :
|
|
1843
|
+
class: getIcon().SELECT_ADD_OPTION
|
|
1844
|
+
})]) : renderEmptyElement($xeSelect)] : optVNs) : renderEmptyElement($xeSelect);
|
|
1690
1845
|
});
|
|
1691
1846
|
};
|
|
1692
1847
|
const renderOpts = () => {
|
|
@@ -1698,17 +1853,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1698
1853
|
return [(0, _vue.h)('div', {
|
|
1699
1854
|
class: 'vxe-select--search-loading'
|
|
1700
1855
|
}, [(0, _vue.h)('i', {
|
|
1701
|
-
class: ['vxe-select--search-icon',
|
|
1856
|
+
class: ['vxe-select--search-icon', getIcon().SELECT_LOADED]
|
|
1702
1857
|
}), (0, _vue.h)('span', {
|
|
1703
1858
|
class: 'vxe-select--search-text'
|
|
1704
|
-
},
|
|
1859
|
+
}, getI18n('vxe.select.loadingText'))])];
|
|
1705
1860
|
}
|
|
1706
1861
|
if (optList.length) {
|
|
1707
1862
|
return renderOption(optList);
|
|
1708
1863
|
}
|
|
1709
1864
|
return [(0, _vue.h)('div', {
|
|
1710
1865
|
class: 'vxe-select--empty-placeholder'
|
|
1711
|
-
}, props.emptyText ||
|
|
1866
|
+
}, props.emptyText || getI18n('vxe.select.emptyText'))];
|
|
1712
1867
|
};
|
|
1713
1868
|
const renderVN = () => {
|
|
1714
1869
|
const {
|
|
@@ -1728,9 +1883,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1728
1883
|
optList,
|
|
1729
1884
|
visiblePanel,
|
|
1730
1885
|
bodyHeight,
|
|
1731
|
-
topSpaceHeight
|
|
1886
|
+
topSpaceHeight,
|
|
1887
|
+
xThumbWidth,
|
|
1888
|
+
yThumbHeight
|
|
1732
1889
|
} = reactData;
|
|
1733
1890
|
const vSize = computeSize.value;
|
|
1891
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1734
1892
|
const isDisabled = computeIsDisabled.value;
|
|
1735
1893
|
const selectLabel = computeSelectLabel.value;
|
|
1736
1894
|
const fullLabel = computeFullLabel.value;
|
|
@@ -1761,6 +1919,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1761
1919
|
appendTo
|
|
1762
1920
|
} = popupOpts;
|
|
1763
1921
|
const ppClassName = popupOpts.className || props.popupClassName;
|
|
1922
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
1923
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
1924
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
1925
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
1926
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
1927
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
1928
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
1929
|
+
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
1764
1930
|
return (0, _vue.h)('div', {
|
|
1765
1931
|
ref: refElem,
|
|
1766
1932
|
class: ['vxe-select', className ? _xeUtils.default.isFunction(className) ? className({
|
|
@@ -1785,7 +1951,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1785
1951
|
disabled: isDisabled,
|
|
1786
1952
|
type: 'text',
|
|
1787
1953
|
prefixIcon: props.prefixIcon,
|
|
1788
|
-
suffixIcon: loading ?
|
|
1954
|
+
suffixIcon: loading ? getIcon().SELECT_LOADED : visiblePanel ? getIcon().SELECT_OPEN : getIcon().SELECT_CLOSE,
|
|
1789
1955
|
autoFocus: false,
|
|
1790
1956
|
title: fullLabel,
|
|
1791
1957
|
modelValue: selectLabel,
|
|
@@ -1824,33 +1990,41 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1824
1990
|
clearable: true,
|
|
1825
1991
|
disabled: false,
|
|
1826
1992
|
readonly: false,
|
|
1827
|
-
placeholder:
|
|
1828
|
-
prefixIcon:
|
|
1993
|
+
placeholder: getI18n('vxe.select.search'),
|
|
1994
|
+
prefixIcon: getIcon().INPUT_SEARCH,
|
|
1829
1995
|
'onUpdate:modelValue': modelSearchEvent,
|
|
1830
1996
|
onFocus: focusSearchEvent,
|
|
1831
1997
|
onChange: triggerSearchEvent,
|
|
1832
1998
|
onSearch: triggerSearchEvent
|
|
1833
|
-
})]) :
|
|
1999
|
+
})]) : renderEmptyElement($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? (0, _vue.h)('div', {
|
|
1834
2000
|
class: 'vxe-select--panel-header'
|
|
1835
2001
|
}, headerSlot ? callSlot(headerSlot, {}) : [(0, _vue.h)('div', {
|
|
1836
2002
|
class: 'vxe-select--header-button'
|
|
1837
2003
|
}, [(0, _vue.h)('div', {
|
|
1838
2004
|
class: 'vxe-select--header-btns'
|
|
1839
2005
|
}, [showCheckedButton && multiple ? (0, _vue.h)(_button.default, {
|
|
1840
|
-
content:
|
|
2006
|
+
content: getI18n('vxe.select.allChecked'),
|
|
1841
2007
|
mode: 'text',
|
|
1842
2008
|
onClick: allCheckedPanelEvent
|
|
1843
|
-
}) :
|
|
1844
|
-
content:
|
|
2009
|
+
}) : renderEmptyElement($xeSelect), showClearButton ? (0, _vue.h)(_button.default, {
|
|
2010
|
+
content: getI18n('vxe.select.clear'),
|
|
1845
2011
|
mode: 'text',
|
|
1846
2012
|
onClick: clearCheckedPanelEvent
|
|
1847
|
-
}) :
|
|
1848
|
-
class: 'vxe-select--panel-body'
|
|
2013
|
+
}) : renderEmptyElement($xeSelect)])])]) : renderEmptyElement($xeSelect), (0, _vue.h)('div', {
|
|
2014
|
+
class: ['vxe-select--panel-body', isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '', isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '', isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '', isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '', {
|
|
2015
|
+
'is--virtual-scrollbar': isVScrollbar,
|
|
2016
|
+
'ov-padding': isVScrollbar && scrollbarOpts.padding,
|
|
2017
|
+
'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
|
|
2018
|
+
'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
|
|
2019
|
+
'overflow-y': yThumbHeight,
|
|
2020
|
+
'overflow-x': xThumbWidth
|
|
2021
|
+
}]
|
|
1849
2022
|
}, [(0, _vue.h)('div', {
|
|
1850
2023
|
ref: refVirtualWrapper,
|
|
1851
2024
|
class: 'vxe-select-option--wrapper',
|
|
1852
2025
|
onScroll: scrollEvent
|
|
1853
2026
|
}, [(0, _vue.h)('div', {
|
|
2027
|
+
ref: refVirtualSpaceElem,
|
|
1854
2028
|
class: 'vxe-select--y-space',
|
|
1855
2029
|
style: {
|
|
1856
2030
|
height: bodyHeight ? `${bodyHeight}px` : ''
|
|
@@ -1861,19 +2035,49 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1861
2035
|
style: {
|
|
1862
2036
|
marginTop: `${topSpaceHeight}px`
|
|
1863
2037
|
}
|
|
1864
|
-
}, renderOpts())])
|
|
2038
|
+
}, renderOpts())]),
|
|
2039
|
+
/**
|
|
2040
|
+
* 滚动条
|
|
2041
|
+
*/
|
|
2042
|
+
isVScrollbar ? (0, _vue.h)('div', {
|
|
2043
|
+
class: scrollbarWrapperClss
|
|
2044
|
+
}, [scrollXVisible === false ? renderEmptyElement($xeSelect) : (0, _vue.h)('div', {
|
|
2045
|
+
ref: refTrackXElem,
|
|
2046
|
+
class: 'vxe-scrollbar--track-x',
|
|
2047
|
+
onClick: clickTrackXEvent
|
|
2048
|
+
}, [(0, _vue.h)('div', {
|
|
2049
|
+
ref: refThumbXElem,
|
|
2050
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
2051
|
+
onPointerdown: pointerdownThumbXEvent,
|
|
2052
|
+
onPointermove: pointermoveThumbXEvent,
|
|
2053
|
+
onPointerup: cleatPointerThumbEvent,
|
|
2054
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
2055
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
2056
|
+
})]), scrollYVisible === false ? renderEmptyElement($xeSelect) : (0, _vue.h)('div', {
|
|
2057
|
+
ref: refTrackYElem,
|
|
2058
|
+
class: 'vxe-scrollbar--track-y',
|
|
2059
|
+
onClick: clickTrackYEvent
|
|
2060
|
+
}, [(0, _vue.h)('div', {
|
|
2061
|
+
ref: refThumbYElem,
|
|
2062
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
2063
|
+
onPointerdown: pointerdownThumbYEvent,
|
|
2064
|
+
onPointermove: pointermoveThumbYEvent,
|
|
2065
|
+
onPointerup: cleatPointerThumbEvent,
|
|
2066
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
2067
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
2068
|
+
})])]) : renderEmptyElement($xeSelect)]), footerSlot || showTotalButton || showCloseButton && multiple ? (0, _vue.h)('div', {
|
|
1865
2069
|
class: 'vxe-select--panel-footer'
|
|
1866
2070
|
}, footerSlot ? callSlot(footerSlot, {}) : [(0, _vue.h)('div', {
|
|
1867
2071
|
class: 'vxe-select--footer-button'
|
|
1868
2072
|
}, [showTotalButton ? (0, _vue.h)('div', {
|
|
1869
2073
|
class: 'vxe-select--total-btns'
|
|
1870
|
-
},
|
|
2074
|
+
}, getI18n('vxe.select.total', [selectVals.length, optList.length])) : renderEmptyElement($xeSelect), showCloseButton && multiple ? (0, _vue.h)('div', {
|
|
1871
2075
|
class: 'vxe-select--oper-btns'
|
|
1872
2076
|
}, [(0, _vue.h)(_button.default, {
|
|
1873
|
-
content:
|
|
2077
|
+
content: getI18n('vxe.select.close'),
|
|
1874
2078
|
mode: 'text',
|
|
1875
2079
|
onClick: closePanelEvent
|
|
1876
|
-
})]) :
|
|
2080
|
+
})]) : renderEmptyElement($xeSelect)])]) : renderEmptyElement($xeSelect)])] : [])])]);
|
|
1877
2081
|
};
|
|
1878
2082
|
(0, _vue.watch)(() => reactData.staticOptions, val => {
|
|
1879
2083
|
loadData(val);
|
|
@@ -1884,6 +2088,42 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1884
2088
|
(0, _vue.watch)(() => props.optionGroups, val => {
|
|
1885
2089
|
loadData(val || []);
|
|
1886
2090
|
});
|
|
2091
|
+
const reScrollFlag = (0, _vue.ref)(0);
|
|
2092
|
+
const reLayoutFlag = (0, _vue.ref)(0);
|
|
2093
|
+
(0, _vue.watch)(computeIsVScrollbar, () => {
|
|
2094
|
+
(0, _vue.nextTick)(() => {
|
|
2095
|
+
bindScrollbarResize();
|
|
2096
|
+
(0, _vue.nextTick)(() => {
|
|
2097
|
+
reLayoutFlag.value++;
|
|
2098
|
+
});
|
|
2099
|
+
});
|
|
2100
|
+
});
|
|
2101
|
+
(0, _vue.watch)(computeScrollYWidth, () => {
|
|
2102
|
+
reLayoutFlag.value++;
|
|
2103
|
+
});
|
|
2104
|
+
(0, _vue.watch)(computeScrollXHeight, () => {
|
|
2105
|
+
reLayoutFlag.value++;
|
|
2106
|
+
});
|
|
2107
|
+
(0, _vue.watch)(computeScrollXVisible, () => {
|
|
2108
|
+
(0, _vue.nextTick)(() => {
|
|
2109
|
+
reLayoutFlag.value++;
|
|
2110
|
+
});
|
|
2111
|
+
});
|
|
2112
|
+
(0, _vue.watch)(computeScrollYVisible, () => {
|
|
2113
|
+
(0, _vue.nextTick)(() => {
|
|
2114
|
+
reLayoutFlag.value++;
|
|
2115
|
+
});
|
|
2116
|
+
});
|
|
2117
|
+
(0, _vue.watch)(reLayoutFlag, () => {
|
|
2118
|
+
recalculate().then(() => {
|
|
2119
|
+
recalculate();
|
|
2120
|
+
});
|
|
2121
|
+
});
|
|
2122
|
+
(0, _vue.watch)(reScrollFlag, () => {
|
|
2123
|
+
updateScrollbar().then(() => {
|
|
2124
|
+
updateScrollbar();
|
|
2125
|
+
});
|
|
2126
|
+
});
|
|
1887
2127
|
(0, _vue.onMounted)(() => {
|
|
1888
2128
|
(0, _vue.nextTick)(() => {
|
|
1889
2129
|
const {
|
|
@@ -1896,18 +2136,28 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1896
2136
|
loadData(options);
|
|
1897
2137
|
}
|
|
1898
2138
|
});
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
2139
|
+
reLayoutFlag.value++;
|
|
2140
|
+
bindScrollbarResize();
|
|
2141
|
+
globalEvents.on($xeSelect, 'mousedown', handleGlobalMousedownEvent);
|
|
2142
|
+
globalEvents.on($xeSelect, 'keydown', handleGlobalKeydownEvent);
|
|
2143
|
+
globalEvents.on($xeSelect, 'blur', handleGlobalBlurEvent);
|
|
2144
|
+
globalEvents.on($xeSelect, 'resize', handleGlobalResizeEvent);
|
|
2145
|
+
globalEvents.on($xeSelect, 'scroll', handleGlobalScrollEvent);
|
|
2146
|
+
});
|
|
2147
|
+
(0, _vue.onBeforeUnmount)(() => {
|
|
2148
|
+
const {
|
|
2149
|
+
scrollObserver
|
|
2150
|
+
} = internalData;
|
|
2151
|
+
if (scrollObserver) {
|
|
2152
|
+
scrollObserver.disconnect();
|
|
2153
|
+
}
|
|
1904
2154
|
});
|
|
1905
2155
|
(0, _vue.onUnmounted)(() => {
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
2156
|
+
globalEvents.off($xeSelect, 'mousedown');
|
|
2157
|
+
globalEvents.off($xeSelect, 'keydown');
|
|
2158
|
+
globalEvents.off($xeSelect, 'blur');
|
|
2159
|
+
globalEvents.off($xeSelect, 'resize');
|
|
2160
|
+
globalEvents.off($xeSelect, 'scroll');
|
|
1911
2161
|
_xeUtils.default.assign(reactData, createReactData());
|
|
1912
2162
|
_xeUtils.default.assign(internalData, createInternalData());
|
|
1913
2163
|
});
|