vxe-pc-ui 4.20.9 → 4.20.10
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 +1863 -2038
- 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 +8 -164
- package/es/scrollbar/src/scrollbar.js +20 -173
- package/es/select/src/select.js +243 -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 +17 -172
- 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 +813 -756
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +25 -194
- 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 +315 -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 +36 -201
- 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 +24 -181
- package/packages/scrollbar/src/scrollbar.ts +36 -188
- package/packages/select/src/select.ts +278 -8
- package/packages/tooltip/src/tooltip.ts +2 -4
- package/packages/tree/src/tree.ts +33 -189
- 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 +7 -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 +20 -18
- package/types/components/tree.d.ts +7 -16
- /package/es/icon/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/icon/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/icon/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/es/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/es/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/es/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792139440389.woff2 → iconfont.1792219842406.woff2} +0 -0
- /package/lib/{iconfont.1792139440389.ttf → iconfont.1792219842406.ttf} +0 -0
- /package/lib/{iconfont.1792139440389.woff → iconfont.1792219842406.woff} +0 -0
- /package/lib/{iconfont.1792139440389.woff2 → iconfont.1792219842406.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,7 @@ 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
|
+
updateThumbOffset();
|
|
1387
1513
|
internalData.lastScrollTop = scrollTop;
|
|
1388
1514
|
internalData.lastScrollLeft = scrollLeft;
|
|
1389
1515
|
if (reactData.scrollYLoad) {
|
|
@@ -1471,6 +1597,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1471
1597
|
};
|
|
1472
1598
|
const selectMethods = {
|
|
1473
1599
|
dispatchEvent,
|
|
1600
|
+
getScrollViewElem() {
|
|
1601
|
+
const viewEl = refVirtualWrapper.value;
|
|
1602
|
+
return viewEl || null;
|
|
1603
|
+
},
|
|
1474
1604
|
loadData,
|
|
1475
1605
|
reloadData(datas) {
|
|
1476
1606
|
internalData.isLoaded = false;
|
|
@@ -1524,6 +1654,28 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1524
1654
|
recalculate,
|
|
1525
1655
|
clearScroll
|
|
1526
1656
|
};
|
|
1657
|
+
const bindScrollbarResize = () => {
|
|
1658
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1659
|
+
const {
|
|
1660
|
+
scrollObserver
|
|
1661
|
+
} = internalData;
|
|
1662
|
+
if (isVScrollbar) {
|
|
1663
|
+
if (!scrollObserver) {
|
|
1664
|
+
const el = refElem.value;
|
|
1665
|
+
const viewInnerEl = refVirtualSpaceElem.value;
|
|
1666
|
+
const scrollObserver = globalResize.create(() => {
|
|
1667
|
+
reScrollFlag.value++;
|
|
1668
|
+
});
|
|
1669
|
+
if (el) {
|
|
1670
|
+
scrollObserver.observe(el);
|
|
1671
|
+
}
|
|
1672
|
+
if (viewInnerEl) {
|
|
1673
|
+
scrollObserver.observe(viewInnerEl);
|
|
1674
|
+
}
|
|
1675
|
+
internalData.scrollObserver = scrollObserver;
|
|
1676
|
+
}
|
|
1677
|
+
}
|
|
1678
|
+
};
|
|
1527
1679
|
Object.assign($xeSelect, selectMethods);
|
|
1528
1680
|
const renderRadio = (option, isOptGroup, isChecked, isDisabled) => {
|
|
1529
1681
|
const radioOpts = computeRadioOpts.value;
|
|
@@ -1532,7 +1684,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1532
1684
|
trigger
|
|
1533
1685
|
} = radioOpts;
|
|
1534
1686
|
if (isOptGroup || showIcon === false) {
|
|
1535
|
-
return
|
|
1687
|
+
return renderEmptyElement($xeSelect);
|
|
1536
1688
|
}
|
|
1537
1689
|
const ons = {};
|
|
1538
1690
|
if (!trigger || trigger === 'default') {
|
|
@@ -1549,7 +1701,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1549
1701
|
'is--disabled': isDisabled
|
|
1550
1702
|
}]
|
|
1551
1703
|
}, ons), [(0, _vue.h)('span', {
|
|
1552
|
-
class: ['vxe-radio--icon', isChecked ?
|
|
1704
|
+
class: ['vxe-radio--icon', isChecked ? getIcon().RADIO_CHECKED : isDisabled ? getIcon().RADIO_DISABLED_UNCHECKED : getIcon().RADIO_UNCHECKED]
|
|
1553
1705
|
})]);
|
|
1554
1706
|
};
|
|
1555
1707
|
const renderCheckbox = (option, isOptGroup, isChecked, isDisabled) => {
|
|
@@ -1559,7 +1711,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1559
1711
|
trigger
|
|
1560
1712
|
} = checkboxOpts;
|
|
1561
1713
|
if (isOptGroup || showIcon === false) {
|
|
1562
|
-
return
|
|
1714
|
+
return renderEmptyElement($xeSelect);
|
|
1563
1715
|
}
|
|
1564
1716
|
const ons = {};
|
|
1565
1717
|
if (!trigger || trigger === 'default') {
|
|
@@ -1576,7 +1728,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1576
1728
|
'is--disabled': isDisabled
|
|
1577
1729
|
}]
|
|
1578
1730
|
}, ons), [(0, _vue.h)('span', {
|
|
1579
|
-
class: ['vxe-checkbox--icon', isChecked ?
|
|
1731
|
+
class: ['vxe-checkbox--icon', isChecked ? getIcon().CHECKBOX_CHECKED : isDisabled ? getIcon().CHECKBOX_DISABLED_UNCHECKED : getIcon().CHECKBOX_UNCHECKED]
|
|
1580
1732
|
})]);
|
|
1581
1733
|
};
|
|
1582
1734
|
const renderOption = list => {
|
|
@@ -1685,8 +1837,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1685
1837
|
key: 2,
|
|
1686
1838
|
class: 'vxe-select-option--add-icon'
|
|
1687
1839
|
}, [(0, _vue.h)('i', {
|
|
1688
|
-
class:
|
|
1689
|
-
})]) :
|
|
1840
|
+
class: getIcon().SELECT_ADD_OPTION
|
|
1841
|
+
})]) : renderEmptyElement($xeSelect)] : optVNs) : renderEmptyElement($xeSelect);
|
|
1690
1842
|
});
|
|
1691
1843
|
};
|
|
1692
1844
|
const renderOpts = () => {
|
|
@@ -1698,17 +1850,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1698
1850
|
return [(0, _vue.h)('div', {
|
|
1699
1851
|
class: 'vxe-select--search-loading'
|
|
1700
1852
|
}, [(0, _vue.h)('i', {
|
|
1701
|
-
class: ['vxe-select--search-icon',
|
|
1853
|
+
class: ['vxe-select--search-icon', getIcon().SELECT_LOADED]
|
|
1702
1854
|
}), (0, _vue.h)('span', {
|
|
1703
1855
|
class: 'vxe-select--search-text'
|
|
1704
|
-
},
|
|
1856
|
+
}, getI18n('vxe.select.loadingText'))])];
|
|
1705
1857
|
}
|
|
1706
1858
|
if (optList.length) {
|
|
1707
1859
|
return renderOption(optList);
|
|
1708
1860
|
}
|
|
1709
1861
|
return [(0, _vue.h)('div', {
|
|
1710
1862
|
class: 'vxe-select--empty-placeholder'
|
|
1711
|
-
}, props.emptyText ||
|
|
1863
|
+
}, props.emptyText || getI18n('vxe.select.emptyText'))];
|
|
1712
1864
|
};
|
|
1713
1865
|
const renderVN = () => {
|
|
1714
1866
|
const {
|
|
@@ -1728,9 +1880,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1728
1880
|
optList,
|
|
1729
1881
|
visiblePanel,
|
|
1730
1882
|
bodyHeight,
|
|
1731
|
-
topSpaceHeight
|
|
1883
|
+
topSpaceHeight,
|
|
1884
|
+
xThumbWidth,
|
|
1885
|
+
yThumbHeight
|
|
1732
1886
|
} = reactData;
|
|
1733
1887
|
const vSize = computeSize.value;
|
|
1888
|
+
const isVScrollbar = computeIsVScrollbar.value;
|
|
1734
1889
|
const isDisabled = computeIsDisabled.value;
|
|
1735
1890
|
const selectLabel = computeSelectLabel.value;
|
|
1736
1891
|
const fullLabel = computeFullLabel.value;
|
|
@@ -1761,6 +1916,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1761
1916
|
appendTo
|
|
1762
1917
|
} = popupOpts;
|
|
1763
1918
|
const ppClassName = popupOpts.className || props.popupClassName;
|
|
1919
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
1920
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
1921
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
1922
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
1923
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
1924
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
1925
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
1926
|
+
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
1764
1927
|
return (0, _vue.h)('div', {
|
|
1765
1928
|
ref: refElem,
|
|
1766
1929
|
class: ['vxe-select', className ? _xeUtils.default.isFunction(className) ? className({
|
|
@@ -1785,7 +1948,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1785
1948
|
disabled: isDisabled,
|
|
1786
1949
|
type: 'text',
|
|
1787
1950
|
prefixIcon: props.prefixIcon,
|
|
1788
|
-
suffixIcon: loading ?
|
|
1951
|
+
suffixIcon: loading ? getIcon().SELECT_LOADED : visiblePanel ? getIcon().SELECT_OPEN : getIcon().SELECT_CLOSE,
|
|
1789
1952
|
autoFocus: false,
|
|
1790
1953
|
title: fullLabel,
|
|
1791
1954
|
modelValue: selectLabel,
|
|
@@ -1824,33 +1987,41 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1824
1987
|
clearable: true,
|
|
1825
1988
|
disabled: false,
|
|
1826
1989
|
readonly: false,
|
|
1827
|
-
placeholder:
|
|
1828
|
-
prefixIcon:
|
|
1990
|
+
placeholder: getI18n('vxe.select.search'),
|
|
1991
|
+
prefixIcon: getIcon().INPUT_SEARCH,
|
|
1829
1992
|
'onUpdate:modelValue': modelSearchEvent,
|
|
1830
1993
|
onFocus: focusSearchEvent,
|
|
1831
1994
|
onChange: triggerSearchEvent,
|
|
1832
1995
|
onSearch: triggerSearchEvent
|
|
1833
|
-
})]) :
|
|
1996
|
+
})]) : renderEmptyElement($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? (0, _vue.h)('div', {
|
|
1834
1997
|
class: 'vxe-select--panel-header'
|
|
1835
1998
|
}, headerSlot ? callSlot(headerSlot, {}) : [(0, _vue.h)('div', {
|
|
1836
1999
|
class: 'vxe-select--header-button'
|
|
1837
2000
|
}, [(0, _vue.h)('div', {
|
|
1838
2001
|
class: 'vxe-select--header-btns'
|
|
1839
2002
|
}, [showCheckedButton && multiple ? (0, _vue.h)(_button.default, {
|
|
1840
|
-
content:
|
|
2003
|
+
content: getI18n('vxe.select.allChecked'),
|
|
1841
2004
|
mode: 'text',
|
|
1842
2005
|
onClick: allCheckedPanelEvent
|
|
1843
|
-
}) :
|
|
1844
|
-
content:
|
|
2006
|
+
}) : renderEmptyElement($xeSelect), showClearButton ? (0, _vue.h)(_button.default, {
|
|
2007
|
+
content: getI18n('vxe.select.clear'),
|
|
1845
2008
|
mode: 'text',
|
|
1846
2009
|
onClick: clearCheckedPanelEvent
|
|
1847
|
-
}) :
|
|
1848
|
-
class: 'vxe-select--panel-body'
|
|
2010
|
+
}) : renderEmptyElement($xeSelect)])])]) : renderEmptyElement($xeSelect), (0, _vue.h)('div', {
|
|
2011
|
+
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'}` : '', {
|
|
2012
|
+
'is--virtual-scrollbar': isVScrollbar,
|
|
2013
|
+
'ov-padding': isVScrollbar && scrollbarOpts.padding,
|
|
2014
|
+
'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
|
|
2015
|
+
'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
|
|
2016
|
+
'overflow-y': yThumbHeight,
|
|
2017
|
+
'overflow-x': xThumbWidth
|
|
2018
|
+
}]
|
|
1849
2019
|
}, [(0, _vue.h)('div', {
|
|
1850
2020
|
ref: refVirtualWrapper,
|
|
1851
2021
|
class: 'vxe-select-option--wrapper',
|
|
1852
2022
|
onScroll: scrollEvent
|
|
1853
2023
|
}, [(0, _vue.h)('div', {
|
|
2024
|
+
ref: refVirtualSpaceElem,
|
|
1854
2025
|
class: 'vxe-select--y-space',
|
|
1855
2026
|
style: {
|
|
1856
2027
|
height: bodyHeight ? `${bodyHeight}px` : ''
|
|
@@ -1861,19 +2032,49 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1861
2032
|
style: {
|
|
1862
2033
|
marginTop: `${topSpaceHeight}px`
|
|
1863
2034
|
}
|
|
1864
|
-
}, renderOpts())])
|
|
2035
|
+
}, renderOpts())]),
|
|
2036
|
+
/**
|
|
2037
|
+
* 滚动条
|
|
2038
|
+
*/
|
|
2039
|
+
isVScrollbar ? (0, _vue.h)('div', {
|
|
2040
|
+
class: scrollbarWrapperClss
|
|
2041
|
+
}, [scrollXVisible === false ? renderEmptyElement($xeSelect) : (0, _vue.h)('div', {
|
|
2042
|
+
ref: refTrackXElem,
|
|
2043
|
+
class: 'vxe-scrollbar--track-x',
|
|
2044
|
+
onClick: clickTrackXEvent
|
|
2045
|
+
}, [(0, _vue.h)('div', {
|
|
2046
|
+
ref: refThumbXElem,
|
|
2047
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
2048
|
+
onPointerdown: pointerdownThumbXEvent,
|
|
2049
|
+
onPointermove: pointermoveThumbXEvent,
|
|
2050
|
+
onPointerup: cleatPointerThumbEvent,
|
|
2051
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
2052
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
2053
|
+
})]), scrollYVisible === false ? renderEmptyElement($xeSelect) : (0, _vue.h)('div', {
|
|
2054
|
+
ref: refTrackYElem,
|
|
2055
|
+
class: 'vxe-scrollbar--track-y',
|
|
2056
|
+
onClick: clickTrackYEvent
|
|
2057
|
+
}, [(0, _vue.h)('div', {
|
|
2058
|
+
ref: refThumbYElem,
|
|
2059
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
2060
|
+
onPointerdown: pointerdownThumbYEvent,
|
|
2061
|
+
onPointermove: pointermoveThumbYEvent,
|
|
2062
|
+
onPointerup: cleatPointerThumbEvent,
|
|
2063
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
2064
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
2065
|
+
})])]) : renderEmptyElement($xeSelect)]), footerSlot || showTotalButton || showCloseButton && multiple ? (0, _vue.h)('div', {
|
|
1865
2066
|
class: 'vxe-select--panel-footer'
|
|
1866
2067
|
}, footerSlot ? callSlot(footerSlot, {}) : [(0, _vue.h)('div', {
|
|
1867
2068
|
class: 'vxe-select--footer-button'
|
|
1868
2069
|
}, [showTotalButton ? (0, _vue.h)('div', {
|
|
1869
2070
|
class: 'vxe-select--total-btns'
|
|
1870
|
-
},
|
|
2071
|
+
}, getI18n('vxe.select.total', [selectVals.length, optList.length])) : renderEmptyElement($xeSelect), showCloseButton && multiple ? (0, _vue.h)('div', {
|
|
1871
2072
|
class: 'vxe-select--oper-btns'
|
|
1872
2073
|
}, [(0, _vue.h)(_button.default, {
|
|
1873
|
-
content:
|
|
2074
|
+
content: getI18n('vxe.select.close'),
|
|
1874
2075
|
mode: 'text',
|
|
1875
2076
|
onClick: closePanelEvent
|
|
1876
|
-
})]) :
|
|
2077
|
+
})]) : renderEmptyElement($xeSelect)])]) : renderEmptyElement($xeSelect)])] : [])])]);
|
|
1877
2078
|
};
|
|
1878
2079
|
(0, _vue.watch)(() => reactData.staticOptions, val => {
|
|
1879
2080
|
loadData(val);
|
|
@@ -1884,6 +2085,42 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1884
2085
|
(0, _vue.watch)(() => props.optionGroups, val => {
|
|
1885
2086
|
loadData(val || []);
|
|
1886
2087
|
});
|
|
2088
|
+
const reScrollFlag = (0, _vue.ref)(0);
|
|
2089
|
+
const reLayoutFlag = (0, _vue.ref)(0);
|
|
2090
|
+
(0, _vue.watch)(computeIsVScrollbar, () => {
|
|
2091
|
+
(0, _vue.nextTick)(() => {
|
|
2092
|
+
bindScrollbarResize();
|
|
2093
|
+
(0, _vue.nextTick)(() => {
|
|
2094
|
+
reLayoutFlag.value++;
|
|
2095
|
+
});
|
|
2096
|
+
});
|
|
2097
|
+
});
|
|
2098
|
+
(0, _vue.watch)(computeScrollYWidth, () => {
|
|
2099
|
+
reLayoutFlag.value++;
|
|
2100
|
+
});
|
|
2101
|
+
(0, _vue.watch)(computeScrollXHeight, () => {
|
|
2102
|
+
reLayoutFlag.value++;
|
|
2103
|
+
});
|
|
2104
|
+
(0, _vue.watch)(computeScrollXVisible, () => {
|
|
2105
|
+
(0, _vue.nextTick)(() => {
|
|
2106
|
+
reLayoutFlag.value++;
|
|
2107
|
+
});
|
|
2108
|
+
});
|
|
2109
|
+
(0, _vue.watch)(computeScrollYVisible, () => {
|
|
2110
|
+
(0, _vue.nextTick)(() => {
|
|
2111
|
+
reLayoutFlag.value++;
|
|
2112
|
+
});
|
|
2113
|
+
});
|
|
2114
|
+
(0, _vue.watch)(reLayoutFlag, () => {
|
|
2115
|
+
recalculate().then(() => {
|
|
2116
|
+
recalculate();
|
|
2117
|
+
});
|
|
2118
|
+
});
|
|
2119
|
+
(0, _vue.watch)(reScrollFlag, () => {
|
|
2120
|
+
updateScrollbar().then(() => {
|
|
2121
|
+
updateScrollbar();
|
|
2122
|
+
});
|
|
2123
|
+
});
|
|
1887
2124
|
(0, _vue.onMounted)(() => {
|
|
1888
2125
|
(0, _vue.nextTick)(() => {
|
|
1889
2126
|
const {
|
|
@@ -1896,18 +2133,28 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1896
2133
|
loadData(options);
|
|
1897
2134
|
}
|
|
1898
2135
|
});
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
2136
|
+
reLayoutFlag.value++;
|
|
2137
|
+
bindScrollbarResize();
|
|
2138
|
+
globalEvents.on($xeSelect, 'mousedown', handleGlobalMousedownEvent);
|
|
2139
|
+
globalEvents.on($xeSelect, 'keydown', handleGlobalKeydownEvent);
|
|
2140
|
+
globalEvents.on($xeSelect, 'blur', handleGlobalBlurEvent);
|
|
2141
|
+
globalEvents.on($xeSelect, 'resize', handleGlobalResizeEvent);
|
|
2142
|
+
globalEvents.on($xeSelect, 'scroll', handleGlobalScrollEvent);
|
|
2143
|
+
});
|
|
2144
|
+
(0, _vue.onBeforeUnmount)(() => {
|
|
2145
|
+
const {
|
|
2146
|
+
scrollObserver
|
|
2147
|
+
} = internalData;
|
|
2148
|
+
if (scrollObserver) {
|
|
2149
|
+
scrollObserver.disconnect();
|
|
2150
|
+
}
|
|
1904
2151
|
});
|
|
1905
2152
|
(0, _vue.onUnmounted)(() => {
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
2153
|
+
globalEvents.off($xeSelect, 'mousedown');
|
|
2154
|
+
globalEvents.off($xeSelect, 'keydown');
|
|
2155
|
+
globalEvents.off($xeSelect, 'blur');
|
|
2156
|
+
globalEvents.off($xeSelect, 'resize');
|
|
2157
|
+
globalEvents.off($xeSelect, 'scroll');
|
|
1911
2158
|
_xeUtils.default.assign(reactData, createReactData());
|
|
1912
2159
|
_xeUtils.default.assign(internalData, createInternalData());
|
|
1913
2160
|
});
|