vxe-pc-ui 3.20.9 → 3.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.
Files changed (100) hide show
  1. package/es/date-panel/src/date-panel.js +70 -39
  2. package/es/date-panel/style.css +22 -20
  3. package/es/date-panel/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/icon-picker/src/icon-picker.js +11 -3
  6. package/es/icon-picker/style.css +9 -3
  7. package/es/icon-picker/style.min.css +1 -1
  8. package/es/list/src/list.js +8 -182
  9. package/es/scrollbar/src/scrollbar.js +24 -188
  10. package/es/select/src/select.js +273 -8
  11. package/es/select/style.css +44 -0
  12. package/es/select/style.min.css +1 -1
  13. package/es/style.css +1 -1
  14. package/es/style.min.css +1 -1
  15. package/es/tooltip/src/tooltip.js +2 -4
  16. package/es/tooltip/style.css +2 -0
  17. package/es/tooltip/style.min.css +1 -1
  18. package/es/tree/src/tree.js +17 -190
  19. package/es/ui/index.js +1 -1
  20. package/es/ui/src/log.js +1 -1
  21. package/es/vxe-date-panel/style.css +22 -20
  22. package/es/vxe-date-panel/style.min.css +1 -1
  23. package/es/vxe-icon-picker/style.css +9 -3
  24. package/es/vxe-icon-picker/style.min.css +1 -1
  25. package/es/vxe-select/style.css +44 -0
  26. package/es/vxe-select/style.min.css +1 -1
  27. package/es/vxe-tooltip/style.css +2 -0
  28. package/es/vxe-tooltip/style.min.css +1 -1
  29. package/lib/date-panel/src/date-panel.js +74 -43
  30. package/lib/date-panel/src/date-panel.min.js +1 -1
  31. package/lib/date-panel/style/style.css +22 -20
  32. package/lib/date-panel/style/style.min.css +1 -1
  33. package/lib/icon/style/style.css +1 -1
  34. package/lib/icon/style/style.min.css +1 -1
  35. package/lib/icon-picker/src/icon-picker.js +56 -38
  36. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  37. package/lib/icon-picker/style/style.css +9 -3
  38. package/lib/icon-picker/style/style.min.css +1 -1
  39. package/lib/index.umd.js +715 -741
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/list/src/list.js +6 -188
  42. package/lib/list/src/list.min.js +1 -1
  43. package/lib/scrollbar/src/scrollbar.js +21 -192
  44. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  45. package/lib/select/src/select.js +322 -69
  46. package/lib/select/src/select.min.js +1 -1
  47. package/lib/select/style/style.css +44 -0
  48. package/lib/select/style/style.min.css +1 -1
  49. package/lib/style.css +1 -1
  50. package/lib/style.min.css +1 -1
  51. package/lib/tooltip/src/tooltip.js +2 -4
  52. package/lib/tooltip/src/tooltip.min.js +1 -1
  53. package/lib/tooltip/style/style.css +2 -0
  54. package/lib/tooltip/style/style.min.css +1 -1
  55. package/lib/tree/src/tree.js +16 -196
  56. package/lib/tree/src/tree.min.js +1 -1
  57. package/lib/ui/index.js +1 -1
  58. package/lib/ui/index.min.js +1 -1
  59. package/lib/ui/src/log.js +1 -1
  60. package/lib/ui/src/log.min.js +1 -1
  61. package/lib/vxe-date-panel/style/style.css +22 -20
  62. package/lib/vxe-date-panel/style/style.min.css +1 -1
  63. package/lib/vxe-icon-picker/style/style.css +9 -3
  64. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  65. package/lib/vxe-select/style/style.css +44 -0
  66. package/lib/vxe-select/style/style.min.css +1 -1
  67. package/lib/vxe-tooltip/style/style.css +2 -0
  68. package/lib/vxe-tooltip/style/style.min.css +1 -1
  69. package/package.json +2 -2
  70. package/packages/date-panel/src/date-panel.ts +70 -39
  71. package/packages/icon-picker/src/icon-picker.ts +12 -3
  72. package/packages/list/src/list.ts +11 -202
  73. package/packages/scrollbar/src/scrollbar.ts +24 -199
  74. package/packages/select/src/select.ts +304 -11
  75. package/packages/tabs/src/tabs.ts +2 -4
  76. package/packages/tooltip/src/tooltip.ts +2 -4
  77. package/packages/tree/src/tree.ts +20 -211
  78. package/styles/components/date-panel.scss +31 -29
  79. package/styles/components/icon-picker.scss +9 -3
  80. package/styles/components/select.scss +77 -0
  81. package/styles/components/tooltip.scss +1 -0
  82. package/types/components/gantt-module/gantt-view.d.ts +8 -17
  83. package/types/components/icon-picker.d.ts +21 -1
  84. package/types/components/list.d.ts +4 -0
  85. package/types/components/scrollbar.d.ts +7 -14
  86. package/types/components/select.d.ts +28 -3
  87. package/types/components/table.d.ts +20 -20
  88. package/types/components/tree.d.ts +7 -16
  89. /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  90. /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  91. /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  92. /package/es/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  93. /package/es/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  94. /package/es/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  98. /package/lib/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  99. /package/lib/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  100. /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
@@ -18,6 +18,17 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
18
18
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
19
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
20
20
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ var getConfig = _ui.VxeUI.getConfig,
22
+ getIcon = _ui.VxeUI.getIcon,
23
+ getI18n = _ui.VxeUI.getI18n,
24
+ baseUtils = _ui.VxeUI.baseUtils,
25
+ domUtils = _ui.VxeUI.domUtils,
26
+ globalEvents = _ui.VxeUI.globalEvents,
27
+ GLOBAL_EVENT_KEYS = _ui.VxeUI.GLOBAL_EVENT_KEYS,
28
+ globalResize = _ui.VxeUI.globalResize,
29
+ createEvent = _ui.VxeUI.createEvent,
30
+ renderEmptyElement = _ui.VxeUI.renderEmptyElement;
31
+ var getDefVal = baseUtils.getDefVal;
21
32
  var _createComponentLog = (0, _log.createComponentLog)('select'),
22
33
  errLog = _createComponentLog.errLog;
23
34
  function isOptionVisible(option) {
@@ -38,6 +49,9 @@ function createReactData() {
38
49
  currentOption: null,
39
50
  searchValue: '',
40
51
  searchLoading: false,
52
+ // 滚动条
53
+ yThumbHeight: 0,
54
+ xThumbWidth: 0,
41
55
  panelIndex: 0,
42
56
  panelStyle: {},
43
57
  panelPlacement: null,
@@ -57,8 +71,14 @@ function createInternalData() {
57
71
  optGroupKeyMaps: {},
58
72
  optFullValMaps: {},
59
73
  remoteValMaps: {},
60
- lastScrollLeft: 0,
74
+ // 滚动条
75
+ // scrollObserver: undefined,
76
+ // isThumbDrag: false,
77
+ thumbDragOffset: 0,
78
+ yThumbTop: 0,
79
+ xThumbLeft: 0,
61
80
  lastScrollTop: 0,
81
+ lastScrollLeft: 0,
62
82
  scrollYStore: {
63
83
  startIndex: 0,
64
84
  endIndex: 0,
@@ -72,7 +92,7 @@ function createInternalData() {
72
92
  }
73
93
  var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defineVxeComponent)({
74
94
  name: 'VxeSelect',
75
- mixins: [_ui.globalMixins.sizeMixin],
95
+ mixins: [_ui.globalMixins.sizeMixin, _ui.globalMixins.vScrollbarMixin, _ui.globalMixins.initVScrollbarMixin],
76
96
  model: {
77
97
  prop: 'value',
78
98
  event: 'modelValue'
@@ -83,13 +103,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
83
103
  emptyValue: {
84
104
  type: [String, Number, Boolean, Array],
85
105
  default: function _default() {
86
- return (0, _ui.getConfig)().select.emptyValue;
106
+ return getConfig().select.emptyValue;
87
107
  }
88
108
  },
89
109
  clearable: {
90
110
  type: Boolean,
91
111
  default: function _default() {
92
- return (0, _ui.getConfig)().select.clearable;
112
+ return getConfig().select.clearable;
93
113
  }
94
114
  },
95
115
  placeholder: String,
@@ -106,14 +126,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
106
126
  multiCharOverflow: {
107
127
  type: [Number, String],
108
128
  default: function _default() {
109
- return (0, _ui.getConfig)().select.multiCharOverflow;
129
+ return getConfig().select.multiCharOverflow;
110
130
  }
111
131
  },
112
132
  prefixIcon: String,
113
133
  allowCreate: {
114
134
  type: Boolean,
115
135
  default: function _default() {
116
- return (0, _ui.getConfig)().select.allowCreate;
136
+ return getConfig().select.allowCreate;
117
137
  }
118
138
  },
119
139
  placement: String,
@@ -137,14 +157,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
137
157
  showRadio: {
138
158
  type: Boolean,
139
159
  default: function _default() {
140
- return (0, _ui.getConfig)().select.showRadio;
160
+ return getConfig().select.showRadio;
141
161
  }
142
162
  },
143
163
  radioConfig: Object,
144
164
  showCheckbox: {
145
165
  type: Boolean,
146
166
  default: function _default() {
147
- return (0, _ui.getConfig)().select.showCheckedButton;
167
+ return getConfig().select.showCheckedButton;
148
168
  }
149
169
  },
150
170
  checkboxConfig: Object,
@@ -156,7 +176,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
156
176
  size: {
157
177
  type: String,
158
178
  default: function _default() {
159
- return (0, _ui.getConfig)().select.size || (0, _ui.getConfig)().size;
179
+ return getConfig().select.size || getConfig().size;
160
180
  }
161
181
  },
162
182
  filterable: Boolean,
@@ -172,37 +192,37 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
172
192
  checkedClosable: {
173
193
  type: Boolean,
174
194
  default: function _default() {
175
- return (0, _ui.getConfig)().select.checkedClosable;
195
+ return getConfig().select.checkedClosable;
176
196
  }
177
197
  },
178
198
  clearClosable: {
179
199
  type: Boolean,
180
200
  default: function _default() {
181
- return (0, _ui.getConfig)().select.clearClosable;
201
+ return getConfig().select.clearClosable;
182
202
  }
183
203
  },
184
204
  showCloseButton: {
185
205
  type: Boolean,
186
206
  default: function _default() {
187
- return (0, _ui.getConfig)().select.showCloseButton;
207
+ return getConfig().select.showCloseButton;
188
208
  }
189
209
  },
190
210
  showTotalButton: {
191
211
  type: Boolean,
192
212
  default: function _default() {
193
- return (0, _ui.getConfig)().select.showTotalButton;
213
+ return getConfig().select.showTotalButton;
194
214
  }
195
215
  },
196
216
  showCheckedButton: {
197
217
  type: Boolean,
198
218
  default: function _default() {
199
- return (0, _ui.getConfig)().select.showCheckedButton;
219
+ return getConfig().select.showCheckedButton;
200
220
  }
201
221
  },
202
222
  showClearButton: {
203
223
  type: Boolean,
204
224
  default: function _default() {
205
- return (0, _ui.getConfig)().select.showClearButton;
225
+ return getConfig().select.showClearButton;
206
226
  }
207
227
  },
208
228
  transfer: {
@@ -212,6 +232,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
212
232
  popupConfig: Object,
213
233
  virtualYConfig: Object,
214
234
  scrollY: Object,
235
+ useScrollbar: {
236
+ type: Boolean,
237
+ default: function _default() {
238
+ return getDefVal(getConfig().select.useScrollbar, getConfig().useScrollbar);
239
+ }
240
+ },
241
+ scrollbarConfig: Object,
215
242
  /**
216
243
  * 已废弃,被 remote-config.queryMethod 替换
217
244
  * @deprecated
@@ -224,7 +251,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
224
251
  optionId: {
225
252
  type: String,
226
253
  default: function _default() {
227
- return (0, _ui.getConfig)().select.optionId;
254
+ return getConfig().select.optionId;
228
255
  }
229
256
  },
230
257
  /**
@@ -262,7 +289,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
262
289
  var reactData = createReactData();
263
290
  return Object.assign(Object.assign({}, {}), {
264
291
  xID: xID,
265
- reactData: reactData
292
+ reactData: reactData,
293
+ reLayoutFlag: 0,
294
+ reScrollFlag: 0
266
295
  });
267
296
  },
268
297
  computed: Object.assign(Object.assign({}, {}), {
@@ -306,7 +335,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
306
335
  return popupOpts.transfer;
307
336
  }
308
337
  if (transfer === null) {
309
- var globalTransfer = (0, _ui.getConfig)().select.transfer;
338
+ var globalTransfer = getConfig().select.transfer;
310
339
  if (_xeUtils.default.isBoolean(globalTransfer)) {
311
340
  return globalTransfer;
312
341
  }
@@ -323,11 +352,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
323
352
  if (placeholder) {
324
353
  return (0, _utils.getFuncText)(placeholder);
325
354
  }
326
- var globalPlaceholder = (0, _ui.getConfig)().select.placeholder;
355
+ var globalPlaceholder = getConfig().select.placeholder;
327
356
  if (globalPlaceholder) {
328
357
  return (0, _utils.getFuncText)(globalPlaceholder);
329
358
  }
330
- return (0, _ui.getI18n)('vxe.base.pleaseSelect');
359
+ return getI18n('vxe.base.pleaseSelect');
331
360
  },
332
361
  computeDefaultOpts: function computeDefaultOpts() {
333
362
  var $xeSelect = this;
@@ -372,37 +401,37 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
372
401
  computePopupOpts: function computePopupOpts() {
373
402
  var $xeSelect = this;
374
403
  var props = $xeSelect;
375
- return Object.assign({}, (0, _ui.getConfig)().select.popupConfig, props.popupConfig);
404
+ return Object.assign({}, getConfig().select.popupConfig, props.popupConfig);
376
405
  },
377
406
  computeVirtualYOpts: function computeVirtualYOpts() {
378
407
  var $xeSelect = this;
379
408
  var props = $xeSelect;
380
- return Object.assign({}, (0, _ui.getConfig)().select.virtualYConfig || (0, _ui.getConfig)().select.scrollY, props.virtualYConfig || props.scrollY);
409
+ return Object.assign({}, getConfig().select.virtualYConfig || getConfig().select.scrollY, props.virtualYConfig || props.scrollY);
381
410
  },
382
411
  computeRemoteOpts: function computeRemoteOpts() {
383
412
  var $xeSelect = this;
384
413
  var props = $xeSelect;
385
- return Object.assign({}, (0, _ui.getConfig)().select.remoteConfig, props.remoteConfig);
414
+ return Object.assign({}, getConfig().select.remoteConfig, props.remoteConfig);
386
415
  },
387
416
  computeFilterOpts: function computeFilterOpts() {
388
417
  var $xeSelect = this;
389
418
  var props = $xeSelect;
390
- return Object.assign({}, (0, _ui.getConfig)().select.filterConfig, props.filterConfig);
419
+ return Object.assign({}, getConfig().select.filterConfig, props.filterConfig);
391
420
  },
392
421
  computeOptionOpts: function computeOptionOpts() {
393
422
  var $xeSelect = this;
394
423
  var props = $xeSelect;
395
- return Object.assign({}, (0, _ui.getConfig)().select.optionConfig, props.optionConfig);
424
+ return Object.assign({}, getConfig().select.optionConfig, props.optionConfig);
396
425
  },
397
426
  computeRadioOpts: function computeRadioOpts() {
398
427
  var $xeSelect = this;
399
428
  var props = $xeSelect;
400
- return Object.assign({}, (0, _ui.getConfig)().select.radioConfig, props.radioConfig);
429
+ return Object.assign({}, getConfig().select.radioConfig, props.radioConfig);
401
430
  },
402
431
  computeCheckboxOpts: function computeCheckboxOpts() {
403
432
  var $xeSelect = this;
404
433
  var props = $xeSelect;
405
- return Object.assign({}, (0, _ui.getConfig)().select.checkboxConfig, props.checkboxConfig);
434
+ return Object.assign({}, getConfig().select.checkboxConfig, props.checkboxConfig);
406
435
  },
407
436
  computeIsGroup: function computeIsGroup() {
408
437
  var $xeSelect = this;
@@ -497,6 +526,83 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
497
526
  return "".concat(labels.slice(0, multiMaxCharNum), "...");
498
527
  }
499
528
  return labels.join(', ');
529
+ },
530
+ computeScrollbarOpts: function computeScrollbarOpts() {
531
+ var $xeSelect = this;
532
+ var props = $xeSelect;
533
+ return Object.assign({}, getConfig().tree.scrollbarConfig, props.scrollbarConfig);
534
+ },
535
+ computeScrollbarXOpts: function computeScrollbarXOpts() {
536
+ var $xeSelect = this;
537
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
538
+ return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig, {
539
+ visible: false
540
+ });
541
+ },
542
+ computeScrollbarYOpts: function computeScrollbarYOpts() {
543
+ var $xeSelect = this;
544
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
545
+ return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
546
+ },
547
+ computeScrollXHeight: function computeScrollXHeight() {
548
+ var $xeSelect = this;
549
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
550
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
551
+ return getDefVal(getDefVal(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
552
+ },
553
+ computeScrollYWidth: function computeScrollYWidth() {
554
+ var $xeSelect = this;
555
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
556
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
557
+ return getDefVal(getDefVal(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
558
+ },
559
+ computeScrollXVisible: function computeScrollXVisible() {
560
+ var $xeSelect = this;
561
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
562
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
563
+ return getDefVal(scrollbarXOpts.visible, scrollbarOpts.visible);
564
+ },
565
+ computeScrollYVisible: function computeScrollYVisible() {
566
+ var $xeSelect = this;
567
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
568
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
569
+ return getDefVal(scrollbarYOpts.visible, scrollbarOpts.visible);
570
+ },
571
+ computeScrollXAutoHide: function computeScrollXAutoHide() {
572
+ var $xeSelect = this;
573
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
574
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
575
+ return getDefVal(getDefVal(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
576
+ },
577
+ computeScrollYAutoHide: function computeScrollYAutoHide() {
578
+ var $xeSelect = this;
579
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
580
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
581
+ return getDefVal(getDefVal(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
582
+ },
583
+ computeScrollbarWrapperClss: function computeScrollbarWrapperClss() {
584
+ var $xeSelect = this;
585
+ var reactData = $xeSelect.reactData;
586
+ var yThumbHeight = reactData.yThumbHeight,
587
+ xThumbWidth = reactData.xThumbWidth;
588
+ var scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
589
+ var scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
590
+ var scrollXVisible = $xeSelect.computeScrollXVisible;
591
+ var scrollYVisible = $xeSelect.computeScrollYVisible;
592
+ return domUtils.buildClass(['vxe-scrollbar is--virtual', "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible'), "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible'), "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom'), "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right')], {
593
+ 'overflow-y': yThumbHeight,
594
+ 'overflow-x': xThumbWidth
595
+ });
596
+ },
597
+ computeScrollbarXToTop: function computeScrollbarXToTop() {
598
+ var $xeSelect = this;
599
+ var scrollbarXOpts = $xeSelect.computeScrollbarXOpts;
600
+ return scrollbarXOpts.position === 'top';
601
+ },
602
+ computeScrollbarYToLeft: function computeScrollbarYToLeft() {
603
+ var $xeSelect = this;
604
+ var scrollbarYOpts = $xeSelect.computeScrollbarYOpts;
605
+ return scrollbarYOpts.position === 'left';
500
606
  }
501
607
  }),
502
608
  methods: {
@@ -505,7 +611,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
505
611
  //
506
612
  dispatchEvent: function dispatchEvent(type, params, evnt) {
507
613
  var $xeSelect = this;
508
- $xeSelect.$emit(type, (0, _ui.createEvent)(evnt, {
614
+ $xeSelect.$emit(type, createEvent(evnt, {
509
615
  $select: $xeSelect
510
616
  }, params));
511
617
  },
@@ -525,6 +631,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
525
631
  value: value
526
632
  }, null);
527
633
  },
634
+ getScrollViewElem: function getScrollViewElem() {
635
+ var $xeSelect = this;
636
+ var viewEl = $xeSelect.$refs.refVirtualWrapper;
637
+ return viewEl || null;
638
+ },
528
639
  isPanelVisible: function isPanelVisible() {
529
640
  var $xeSelect = this;
530
641
  var reactData = $xeSelect.reactData;
@@ -998,7 +1109,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
998
1109
  if ($xeSelect.checkMaxLimit(currVlas)) {
999
1110
  if (_ui.VxeUI) {
1000
1111
  _ui.VxeUI.modal.message({
1001
- content: (0, _ui.getI18n)('vxe.select.overSizeErr', [max]),
1112
+ content: getI18n('vxe.select.overSizeErr', [max]),
1002
1113
  status: 'warning'
1003
1114
  });
1004
1115
  }
@@ -1183,12 +1294,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1183
1294
  var popupOpts = $xeSelect.computePopupOpts;
1184
1295
  var trigger = popupOpts.trigger;
1185
1296
  if (!isDisabled) {
1186
- var isTab = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.TAB);
1187
- var isEnter = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ENTER);
1188
- var isEsc = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ESCAPE);
1189
- var isUpArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_UP);
1190
- var isDwArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);
1191
- var isDel = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.DELETE);
1297
+ var isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
1298
+ var isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
1299
+ var isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
1300
+ var isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
1301
+ var isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
1302
+ var isDel = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.DELETE);
1192
1303
  if (isTab) {
1193
1304
  reactData.isActivated = false;
1194
1305
  }
@@ -1561,6 +1672,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1561
1672
  }
1562
1673
  });
1563
1674
  },
1675
+ updateScrollbar: function updateScrollbar() {
1676
+ var $xeSelect = this;
1677
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
1678
+ if (isVScrollbar) {
1679
+ return $xeSelect.$nextTick().then(function () {
1680
+ $xeSelect.updateThumbSize();
1681
+ $xeSelect.updateThumbOffset();
1682
+ });
1683
+ }
1684
+ return Promise.resolve();
1685
+ },
1564
1686
  /**
1565
1687
  * 重新计算列表
1566
1688
  */
@@ -1568,7 +1690,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1568
1690
  var $xeSelect = this;
1569
1691
  var el = $xeSelect.$refs.refElem;
1570
1692
  if (el && el.clientWidth && el.clientHeight) {
1571
- return $xeSelect.computeScrollLoad();
1693
+ return $xeSelect.computeScrollLoad().then(function () {
1694
+ return $xeSelect.updateScrollbar();
1695
+ });
1572
1696
  }
1573
1697
  return Promise.resolve();
1574
1698
  },
@@ -1609,6 +1733,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1609
1733
  var scrollBodyElem = evnt.target;
1610
1734
  var scrollTop = scrollBodyElem.scrollTop;
1611
1735
  var scrollLeft = scrollBodyElem.scrollLeft;
1736
+ $xeSelect.updateThumbOffset();
1612
1737
  var isX = scrollLeft !== internalData.lastScrollLeft;
1613
1738
  var isY = scrollTop !== internalData.lastScrollTop;
1614
1739
  internalData.lastScrollTop = scrollTop;
@@ -1705,6 +1830,29 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1705
1830
  var optGroupKeyMaps = internalData.optGroupKeyMaps;
1706
1831
  return !!optGroupKeyMaps[optid];
1707
1832
  },
1833
+ // 滚动条
1834
+ bindScrollbarResize: function bindScrollbarResize() {
1835
+ var $xeSelect = this;
1836
+ var internalData = $xeSelect.internalData;
1837
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
1838
+ var scrollObserver = internalData.scrollObserver;
1839
+ if (isVScrollbar) {
1840
+ if (!scrollObserver) {
1841
+ var el = $xeSelect.$refs.refElem;
1842
+ var viewInnerEl = $xeSelect.$refs.refVirtualSpaceElem;
1843
+ var _scrollObserver = globalResize.create(function () {
1844
+ $xeSelect.reScrollFlag++;
1845
+ });
1846
+ if (el) {
1847
+ _scrollObserver.observe(el);
1848
+ }
1849
+ if (viewInnerEl) {
1850
+ _scrollObserver.observe(viewInnerEl);
1851
+ }
1852
+ internalData.scrollObserver = _scrollObserver;
1853
+ }
1854
+ }
1855
+ },
1708
1856
  //
1709
1857
  // Render
1710
1858
  //
@@ -1714,7 +1862,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1714
1862
  var showIcon = radioOpts.showIcon,
1715
1863
  trigger = radioOpts.trigger;
1716
1864
  if (isOptGroup || showIcon === false) {
1717
- return (0, _ui.renderEmptyElement)($xeSelect);
1865
+ return renderEmptyElement($xeSelect);
1718
1866
  }
1719
1867
  var ons = {};
1720
1868
  if (!trigger || trigger === 'default') {
@@ -1732,7 +1880,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1732
1880
  }],
1733
1881
  on: ons
1734
1882
  }, [h('span', {
1735
- class: ['vxe-radio--icon', isChecked ? (0, _ui.getIcon)().RADIO_CHECKED : isDisabled ? (0, _ui.getIcon)().RADIO_DISABLED_UNCHECKED : (0, _ui.getIcon)().RADIO_UNCHECKED]
1883
+ class: ['vxe-radio--icon', isChecked ? getIcon().RADIO_CHECKED : isDisabled ? getIcon().RADIO_DISABLED_UNCHECKED : getIcon().RADIO_UNCHECKED]
1736
1884
  })]);
1737
1885
  },
1738
1886
  renderCheckbox: function renderCheckbox(h, option, isOptGroup, isChecked, isDisabled) {
@@ -1741,7 +1889,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1741
1889
  var showIcon = checkboxOpts.showIcon,
1742
1890
  trigger = checkboxOpts.trigger;
1743
1891
  if (isOptGroup || showIcon === false) {
1744
- return (0, _ui.renderEmptyElement)($xeSelect);
1892
+ return renderEmptyElement($xeSelect);
1745
1893
  }
1746
1894
  var ons = {};
1747
1895
  if (!trigger || trigger === 'default') {
@@ -1759,7 +1907,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1759
1907
  }],
1760
1908
  on: ons
1761
1909
  }, [h('span', {
1762
- class: ['vxe-checkbox--icon', isChecked ? (0, _ui.getIcon)().CHECKBOX_CHECKED : isDisabled ? (0, _ui.getIcon)().CHECKBOX_DISABLED_UNCHECKED : (0, _ui.getIcon)().CHECKBOX_UNCHECKED]
1910
+ class: ['vxe-checkbox--icon', isChecked ? getIcon().CHECKBOX_CHECKED : isDisabled ? getIcon().CHECKBOX_DISABLED_UNCHECKED : getIcon().CHECKBOX_UNCHECKED]
1763
1911
  })]);
1764
1912
  },
1765
1913
  renderOption: function renderOption(h, list) {
@@ -1866,8 +2014,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1866
2014
  key: 2,
1867
2015
  class: 'vxe-select-option--add-icon'
1868
2016
  }, [h('i', {
1869
- class: (0, _ui.getIcon)().SELECT_ADD_OPTION
1870
- })]) : (0, _ui.renderEmptyElement)($xeSelect)] : optVNs) : (0, _ui.renderEmptyElement)($xeSelect);
2017
+ class: getIcon().SELECT_ADD_OPTION
2018
+ })]) : renderEmptyElement($xeSelect)] : optVNs) : renderEmptyElement($xeSelect);
1871
2019
  });
1872
2020
  },
1873
2021
  renderOpts: function renderOpts(h) {
@@ -1880,17 +2028,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1880
2028
  return [h('div', {
1881
2029
  class: 'vxe-select--search-loading'
1882
2030
  }, [h('i', {
1883
- class: ['vxe-select--search-icon', (0, _ui.getIcon)().SELECT_LOADED]
2031
+ class: ['vxe-select--search-icon', getIcon().SELECT_LOADED]
1884
2032
  }), h('span', {
1885
2033
  class: 'vxe-select--search-text'
1886
- }, (0, _ui.getI18n)('vxe.select.loadingText'))])];
2034
+ }, getI18n('vxe.select.loadingText'))])];
1887
2035
  }
1888
2036
  if (optList.length) {
1889
2037
  return $xeSelect.renderOption(h, optList);
1890
2038
  }
1891
2039
  return [h('div', {
1892
2040
  class: 'vxe-select--empty-placeholder'
1893
- }, props.emptyText || (0, _ui.getI18n)('vxe.select.emptyText'))];
2041
+ }, props.emptyText || getI18n('vxe.select.emptyText'))];
1894
2042
  },
1895
2043
  renderVN: function renderVN(h) {
1896
2044
  var $xeSelect = this;
@@ -1911,8 +2059,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1911
2059
  optList = reactData.optList,
1912
2060
  visiblePanel = reactData.visiblePanel,
1913
2061
  bodyHeight = reactData.bodyHeight,
1914
- topSpaceHeight = reactData.topSpaceHeight;
2062
+ topSpaceHeight = reactData.topSpaceHeight,
2063
+ xThumbWidth = reactData.xThumbWidth,
2064
+ yThumbHeight = reactData.yThumbHeight;
1915
2065
  var vSize = $xeSelect.computeSize;
2066
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
1916
2067
  var isDisabled = $xeSelect.computeIsDisabled;
1917
2068
  var selectLabel = $xeSelect.computeSelectLabel;
1918
2069
  var fullLabel = $xeSelect.computeFullLabel;
@@ -1942,6 +2093,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1942
2093
  var footerSlot = slots.footer;
1943
2094
  var prefixSlot = slots.prefix;
1944
2095
  var ppClassName = popupOpts.className || props.popupClassName;
2096
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
2097
+ var scrollXVisible = $xeSelect.computeScrollXVisible;
2098
+ var scrollYVisible = $xeSelect.computeScrollYVisible;
2099
+ var scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
2100
+ var scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
2101
+ var scrollXAutoHide = $xeSelect.computeScrollXAutoHide;
2102
+ var scrollYAutoHide = $xeSelect.computeScrollYAutoHide;
2103
+ var scrollbarWrapperClss = $xeSelect.computeScrollbarWrapperClss;
1945
2104
  return h('div', {
1946
2105
  ref: 'refElem',
1947
2106
  class: ['vxe-select', className ? _xeUtils.default.isFunction(className) ? className({
@@ -1960,7 +2119,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1960
2119
  disabled: isDisabled,
1961
2120
  type: 'text',
1962
2121
  prefixIcon: props.prefixIcon,
1963
- suffixIcon: loading ? (0, _ui.getIcon)().SELECT_LOADED : visiblePanel ? (0, _ui.getIcon)().SELECT_OPEN : (0, _ui.getIcon)().SELECT_CLOSE,
2122
+ suffixIcon: loading ? getIcon().SELECT_LOADED : visiblePanel ? getIcon().SELECT_OPEN : getIcon().SELECT_CLOSE,
1964
2123
  autoFocus: false,
1965
2124
  title: fullLabel,
1966
2125
  value: selectLabel
@@ -2000,8 +2159,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2000
2159
  clearable: true,
2001
2160
  disabled: false,
2002
2161
  readonly: false,
2003
- placeholder: (0, _ui.getI18n)('vxe.select.search'),
2004
- prefixIcon: (0, _ui.getIcon)().INPUT_SEARCH
2162
+ placeholder: getI18n('vxe.select.search'),
2163
+ prefixIcon: getIcon().INPUT_SEARCH
2005
2164
  },
2006
2165
  on: {
2007
2166
  'model-value': $xeSelect.modelSearchEvent,
@@ -2009,7 +2168,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2009
2168
  change: $xeSelect.triggerSearchEvent,
2010
2169
  search: $xeSelect.triggerSearchEvent
2011
2170
  }
2012
- })]) : (0, _ui.renderEmptyElement)($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
2171
+ })]) : renderEmptyElement($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
2013
2172
  class: 'vxe-select--panel-header'
2014
2173
  }, headerSlot ? $xeSelect.callSlot(headerSlot, {}, h) : [h('div', {
2015
2174
  class: 'vxe-tree-select--header-button'
@@ -2017,22 +2176,29 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2017
2176
  class: 'vxe-tree-select--header-btns'
2018
2177
  }, [showCheckedButton && multiple ? h(_button.default, {
2019
2178
  props: {
2020
- content: (0, _ui.getI18n)('vxe.select.allChecked'),
2179
+ content: getI18n('vxe.select.allChecked'),
2021
2180
  mode: 'text'
2022
2181
  },
2023
2182
  on: {
2024
2183
  click: $xeSelect.allCheckedPanelEvent
2025
2184
  }
2026
- }) : (0, _ui.renderEmptyElement)($xeSelect), showClearButton ? h(_button.default, {
2185
+ }) : renderEmptyElement($xeSelect), showClearButton ? h(_button.default, {
2027
2186
  props: {
2028
- content: (0, _ui.getI18n)('vxe.select.clear'),
2187
+ content: getI18n('vxe.select.clear'),
2029
2188
  mode: 'text'
2030
2189
  },
2031
2190
  on: {
2032
2191
  click: $xeSelect.clearCheckedPanelEvent
2033
2192
  }
2034
- }) : (0, _ui.renderEmptyElement)($xeSelect)])])]) : (0, _ui.renderEmptyElement)($xeSelect), h('div', {
2035
- class: 'vxe-select--panel-body'
2193
+ }) : renderEmptyElement($xeSelect)])])]) : renderEmptyElement($xeSelect), h('div', {
2194
+ class: ['vxe-select--panel-body', isVScrollbar ? "ov-x--".concat(scrollXVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "ov-y--".concat(scrollYVisible === false ? 'hidden' : 'visible') : '', isVScrollbar ? "sx-pos--".concat(scrollbarXToTop ? 'top' : 'bottom') : '', isVScrollbar ? "sy-pos--".concat(scrollbarYToLeft ? 'left' : 'right') : '', {
2195
+ 'is--virtual-scrollbar': isVScrollbar,
2196
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2197
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2198
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2199
+ 'overflow-y': yThumbHeight,
2200
+ 'overflow-x': xThumbWidth
2201
+ }]
2036
2202
  }, [h('div', {
2037
2203
  ref: 'refVirtualWrapper',
2038
2204
  class: 'vxe-select-option--wrapper',
@@ -2040,6 +2206,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2040
2206
  scroll: $xeSelect.scrollEvent
2041
2207
  }
2042
2208
  }, [h('div', {
2209
+ ref: 'refVirtualSpaceElem',
2043
2210
  class: 'vxe-select--y-space',
2044
2211
  style: {
2045
2212
  height: bodyHeight ? "".concat(bodyHeight, "px") : ''
@@ -2050,23 +2217,61 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2050
2217
  style: {
2051
2218
  transform: "translateY(".concat(topSpaceHeight, "px)")
2052
2219
  }
2053
- }, $xeSelect.renderOpts(h))])]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
2220
+ }, $xeSelect.renderOpts(h))]),
2221
+ /**
2222
+ * 滚动条
2223
+ */
2224
+ isVScrollbar ? h('div', {
2225
+ class: scrollbarWrapperClss
2226
+ }, [scrollXVisible === false ? renderEmptyElement($xeSelect) : h('div', {
2227
+ ref: 'refTrackXElem',
2228
+ class: 'vxe-scrollbar--track-x',
2229
+ on: {
2230
+ click: $xeSelect.clickTrackXEvent
2231
+ }
2232
+ }, [h('div', {
2233
+ ref: 'refThumbXElem',
2234
+ class: 'vxe-scrollbar--thumb-x',
2235
+ on: {
2236
+ pointerdown: $xeSelect.pointerdownThumbXEvent,
2237
+ pointermove: $xeSelect.pointermoveThumbXEvent,
2238
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2239
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2240
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2241
+ }
2242
+ })]), scrollYVisible === false ? renderEmptyElement($xeSelect) : h('div', {
2243
+ ref: 'refTrackYElem',
2244
+ class: 'vxe-scrollbar--track-y',
2245
+ on: {
2246
+ click: $xeSelect.clickTrackYEvent
2247
+ }
2248
+ }, [h('div', {
2249
+ ref: 'refThumbYElem',
2250
+ class: 'vxe-scrollbar--thumb-y',
2251
+ on: {
2252
+ pointerdown: $xeSelect.pointerdownThumbYEvent,
2253
+ pointermove: $xeSelect.pointermoveThumbYEvent,
2254
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2255
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2256
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2257
+ }
2258
+ })])]) : renderEmptyElement($xeSelect)]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
2054
2259
  class: 'vxe-select--panel-footer'
2055
2260
  }, footerSlot ? $xeSelect.callSlot(footerSlot, {}, h) : [h('div', {
2056
2261
  class: 'vxe-select--footer-button'
2057
2262
  }, [showTotalButton ? h('div', {
2058
2263
  class: 'vxe-select--total-btns'
2059
- }, (0, _ui.getI18n)('vxe.select.total', [selectVals.length, optList.length])) : (0, _ui.renderEmptyElement)($xeSelect), showCloseButton && multiple ? h('div', {
2264
+ }, getI18n('vxe.select.total', [selectVals.length, optList.length])) : renderEmptyElement($xeSelect), showCloseButton && multiple ? h('div', {
2060
2265
  class: 'vxe-select--oper-btns'
2061
2266
  }, [h(_button.default, {
2062
2267
  props: {
2063
- content: (0, _ui.getI18n)('vxe.select.close'),
2268
+ content: getI18n('vxe.select.close'),
2064
2269
  mode: 'text'
2065
2270
  },
2066
2271
  on: {
2067
2272
  click: $xeSelect.closePanelEvent
2068
2273
  }
2069
- })]) : (0, _ui.renderEmptyElement)($xeSelect)])]) : (0, _ui.renderEmptyElement)($xeSelect)])] : [])]);
2274
+ })]) : renderEmptyElement($xeSelect)])]) : renderEmptyElement($xeSelect)])] : [])]);
2070
2275
  }
2071
2276
  },
2072
2277
  watch: {
@@ -2081,6 +2286,47 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2081
2286
  optionGroups: function optionGroups(val) {
2082
2287
  var $xeSelect = this;
2083
2288
  $xeSelect.loadData(val);
2289
+ },
2290
+ computeIsVScrollbar: function computeIsVScrollbar() {
2291
+ var $xeSelect = this;
2292
+ $xeSelect.$nextTick(function () {
2293
+ $xeSelect.bindScrollbarResize();
2294
+ $xeSelect.$nextTick(function () {
2295
+ $xeSelect.reLayoutFlag++;
2296
+ });
2297
+ });
2298
+ },
2299
+ computeScrollYWidth: function computeScrollYWidth() {
2300
+ var $xeSelect = this;
2301
+ $xeSelect.reLayoutFlag++;
2302
+ },
2303
+ computeScrollXHeight: function computeScrollXHeight() {
2304
+ var $xeSelect = this;
2305
+ $xeSelect.reLayoutFlag++;
2306
+ },
2307
+ computeScrollXVisible: function computeScrollXVisible() {
2308
+ var $xeSelect = this;
2309
+ $xeSelect.$nextTick(function () {
2310
+ $xeSelect.reLayoutFlag++;
2311
+ });
2312
+ },
2313
+ computeScrollYVisible: function computeScrollYVisible() {
2314
+ var $xeSelect = this;
2315
+ $xeSelect.$nextTick(function () {
2316
+ $xeSelect.reLayoutFlag++;
2317
+ });
2318
+ },
2319
+ reLayoutFlag: function reLayoutFlag() {
2320
+ var $xeSelect = this;
2321
+ $xeSelect.recalculate().then(function () {
2322
+ $xeSelect.recalculate();
2323
+ });
2324
+ },
2325
+ reScrollFlag: function reScrollFlag() {
2326
+ var $xeSelect = this;
2327
+ $xeSelect.updateScrollbar().then(function () {
2328
+ $xeSelect.updateScrollbar();
2329
+ });
2084
2330
  }
2085
2331
  },
2086
2332
  created: function created() {
@@ -2099,23 +2345,30 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2099
2345
  $xeSelect.loadData(options);
2100
2346
  }
2101
2347
  });
2102
- _ui.globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
2103
- _ui.globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
2104
- _ui.globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
2105
- _ui.globalEvents.on($xeSelect, 'resize', $xeSelect.handleGlobalResizeEvent);
2106
- _ui.globalEvents.on($xeSelect, 'scroll', $xeSelect.handleGlobalScrollEvent);
2348
+ $xeSelect.reLayoutFlag++;
2349
+ $xeSelect.bindScrollbarResize();
2350
+ globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
2351
+ globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
2352
+ globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
2353
+ globalEvents.on($xeSelect, 'resize', $xeSelect.handleGlobalResizeEvent);
2354
+ globalEvents.on($xeSelect, 'scroll', $xeSelect.handleGlobalScrollEvent);
2107
2355
  },
2108
2356
  beforeDestroy: function beforeDestroy() {
2109
2357
  var $xeSelect = this;
2358
+ var internalData = $xeSelect.internalData;
2359
+ var scrollObserver = internalData.scrollObserver;
2110
2360
  var panelElem = $xeSelect.$refs.refOptionPanel;
2111
2361
  if (panelElem && panelElem.parentNode) {
2112
2362
  panelElem.parentNode.removeChild(panelElem);
2113
2363
  }
2114
- _ui.globalEvents.off($xeSelect, 'mousedown');
2115
- _ui.globalEvents.off($xeSelect, 'keydown');
2116
- _ui.globalEvents.off($xeSelect, 'blur');
2117
- _ui.globalEvents.off($xeSelect, 'resize');
2118
- _ui.globalEvents.off($xeSelect, 'scroll');
2364
+ if (scrollObserver) {
2365
+ scrollObserver.disconnect();
2366
+ }
2367
+ globalEvents.off($xeSelect, 'mousedown');
2368
+ globalEvents.off($xeSelect, 'keydown');
2369
+ globalEvents.off($xeSelect, 'blur');
2370
+ globalEvents.off($xeSelect, 'resize');
2371
+ globalEvents.off($xeSelect, 'scroll');
2119
2372
  },
2120
2373
  destroyed: function destroyed() {
2121
2374
  var $xeSelect = this;