vxe-pc-ui 3.20.9 → 3.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.
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 +12 -183
  9. package/es/scrollbar/src/scrollbar.js +24 -188
  10. package/es/select/src/select.js +276 -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 +21 -191
  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 +726 -743
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/list/src/list.js +10 -189
  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 +325 -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 +20 -197
  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 +15 -203
  73. package/packages/scrollbar/src/scrollbar.ts +24 -199
  74. package/packages/select/src/select.ts +307 -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 +24 -212
  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 +17 -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 +30 -20
  88. package/types/components/tree.d.ts +7 -16
  89. /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  90. /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  91. /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  92. /package/es/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  93. /package/es/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  94. /package/es/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  98. /package/lib/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  99. /package/lib/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  100. /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792226835421.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,10 @@ 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
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
1737
+ if (isVScrollbar) {
1738
+ $xeSelect.updateThumbOffset();
1739
+ }
1612
1740
  var isX = scrollLeft !== internalData.lastScrollLeft;
1613
1741
  var isY = scrollTop !== internalData.lastScrollTop;
1614
1742
  internalData.lastScrollTop = scrollTop;
@@ -1705,6 +1833,29 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1705
1833
  var optGroupKeyMaps = internalData.optGroupKeyMaps;
1706
1834
  return !!optGroupKeyMaps[optid];
1707
1835
  },
1836
+ // 滚动条
1837
+ bindScrollbarResize: function bindScrollbarResize() {
1838
+ var $xeSelect = this;
1839
+ var internalData = $xeSelect.internalData;
1840
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
1841
+ var scrollObserver = internalData.scrollObserver;
1842
+ if (isVScrollbar) {
1843
+ if (!scrollObserver) {
1844
+ var el = $xeSelect.$refs.refElem;
1845
+ var viewInnerEl = $xeSelect.$refs.refVirtualSpaceElem;
1846
+ var _scrollObserver = globalResize.create(function () {
1847
+ $xeSelect.reScrollFlag++;
1848
+ });
1849
+ if (el) {
1850
+ _scrollObserver.observe(el);
1851
+ }
1852
+ if (viewInnerEl) {
1853
+ _scrollObserver.observe(viewInnerEl);
1854
+ }
1855
+ internalData.scrollObserver = _scrollObserver;
1856
+ }
1857
+ }
1858
+ },
1708
1859
  //
1709
1860
  // Render
1710
1861
  //
@@ -1714,7 +1865,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1714
1865
  var showIcon = radioOpts.showIcon,
1715
1866
  trigger = radioOpts.trigger;
1716
1867
  if (isOptGroup || showIcon === false) {
1717
- return (0, _ui.renderEmptyElement)($xeSelect);
1868
+ return renderEmptyElement($xeSelect);
1718
1869
  }
1719
1870
  var ons = {};
1720
1871
  if (!trigger || trigger === 'default') {
@@ -1732,7 +1883,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1732
1883
  }],
1733
1884
  on: ons
1734
1885
  }, [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]
1886
+ class: ['vxe-radio--icon', isChecked ? getIcon().RADIO_CHECKED : isDisabled ? getIcon().RADIO_DISABLED_UNCHECKED : getIcon().RADIO_UNCHECKED]
1736
1887
  })]);
1737
1888
  },
1738
1889
  renderCheckbox: function renderCheckbox(h, option, isOptGroup, isChecked, isDisabled) {
@@ -1741,7 +1892,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1741
1892
  var showIcon = checkboxOpts.showIcon,
1742
1893
  trigger = checkboxOpts.trigger;
1743
1894
  if (isOptGroup || showIcon === false) {
1744
- return (0, _ui.renderEmptyElement)($xeSelect);
1895
+ return renderEmptyElement($xeSelect);
1745
1896
  }
1746
1897
  var ons = {};
1747
1898
  if (!trigger || trigger === 'default') {
@@ -1759,7 +1910,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1759
1910
  }],
1760
1911
  on: ons
1761
1912
  }, [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]
1913
+ class: ['vxe-checkbox--icon', isChecked ? getIcon().CHECKBOX_CHECKED : isDisabled ? getIcon().CHECKBOX_DISABLED_UNCHECKED : getIcon().CHECKBOX_UNCHECKED]
1763
1914
  })]);
1764
1915
  },
1765
1916
  renderOption: function renderOption(h, list) {
@@ -1866,8 +2017,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1866
2017
  key: 2,
1867
2018
  class: 'vxe-select-option--add-icon'
1868
2019
  }, [h('i', {
1869
- class: (0, _ui.getIcon)().SELECT_ADD_OPTION
1870
- })]) : (0, _ui.renderEmptyElement)($xeSelect)] : optVNs) : (0, _ui.renderEmptyElement)($xeSelect);
2020
+ class: getIcon().SELECT_ADD_OPTION
2021
+ })]) : renderEmptyElement($xeSelect)] : optVNs) : renderEmptyElement($xeSelect);
1871
2022
  });
1872
2023
  },
1873
2024
  renderOpts: function renderOpts(h) {
@@ -1880,17 +2031,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1880
2031
  return [h('div', {
1881
2032
  class: 'vxe-select--search-loading'
1882
2033
  }, [h('i', {
1883
- class: ['vxe-select--search-icon', (0, _ui.getIcon)().SELECT_LOADED]
2034
+ class: ['vxe-select--search-icon', getIcon().SELECT_LOADED]
1884
2035
  }), h('span', {
1885
2036
  class: 'vxe-select--search-text'
1886
- }, (0, _ui.getI18n)('vxe.select.loadingText'))])];
2037
+ }, getI18n('vxe.select.loadingText'))])];
1887
2038
  }
1888
2039
  if (optList.length) {
1889
2040
  return $xeSelect.renderOption(h, optList);
1890
2041
  }
1891
2042
  return [h('div', {
1892
2043
  class: 'vxe-select--empty-placeholder'
1893
- }, props.emptyText || (0, _ui.getI18n)('vxe.select.emptyText'))];
2044
+ }, props.emptyText || getI18n('vxe.select.emptyText'))];
1894
2045
  },
1895
2046
  renderVN: function renderVN(h) {
1896
2047
  var $xeSelect = this;
@@ -1911,8 +2062,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1911
2062
  optList = reactData.optList,
1912
2063
  visiblePanel = reactData.visiblePanel,
1913
2064
  bodyHeight = reactData.bodyHeight,
1914
- topSpaceHeight = reactData.topSpaceHeight;
2065
+ topSpaceHeight = reactData.topSpaceHeight,
2066
+ xThumbWidth = reactData.xThumbWidth,
2067
+ yThumbHeight = reactData.yThumbHeight;
1915
2068
  var vSize = $xeSelect.computeSize;
2069
+ var isVScrollbar = $xeSelect.computeIsVScrollbar;
1916
2070
  var isDisabled = $xeSelect.computeIsDisabled;
1917
2071
  var selectLabel = $xeSelect.computeSelectLabel;
1918
2072
  var fullLabel = $xeSelect.computeFullLabel;
@@ -1942,6 +2096,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1942
2096
  var footerSlot = slots.footer;
1943
2097
  var prefixSlot = slots.prefix;
1944
2098
  var ppClassName = popupOpts.className || props.popupClassName;
2099
+ var scrollbarOpts = $xeSelect.computeScrollbarOpts;
2100
+ var scrollXVisible = $xeSelect.computeScrollXVisible;
2101
+ var scrollYVisible = $xeSelect.computeScrollYVisible;
2102
+ var scrollbarXToTop = $xeSelect.computeScrollbarXToTop;
2103
+ var scrollbarYToLeft = $xeSelect.computeScrollbarYToLeft;
2104
+ var scrollXAutoHide = $xeSelect.computeScrollXAutoHide;
2105
+ var scrollYAutoHide = $xeSelect.computeScrollYAutoHide;
2106
+ var scrollbarWrapperClss = $xeSelect.computeScrollbarWrapperClss;
1945
2107
  return h('div', {
1946
2108
  ref: 'refElem',
1947
2109
  class: ['vxe-select', className ? _xeUtils.default.isFunction(className) ? className({
@@ -1960,7 +2122,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1960
2122
  disabled: isDisabled,
1961
2123
  type: 'text',
1962
2124
  prefixIcon: props.prefixIcon,
1963
- suffixIcon: loading ? (0, _ui.getIcon)().SELECT_LOADED : visiblePanel ? (0, _ui.getIcon)().SELECT_OPEN : (0, _ui.getIcon)().SELECT_CLOSE,
2125
+ suffixIcon: loading ? getIcon().SELECT_LOADED : visiblePanel ? getIcon().SELECT_OPEN : getIcon().SELECT_CLOSE,
1964
2126
  autoFocus: false,
1965
2127
  title: fullLabel,
1966
2128
  value: selectLabel
@@ -2000,8 +2162,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2000
2162
  clearable: true,
2001
2163
  disabled: false,
2002
2164
  readonly: false,
2003
- placeholder: (0, _ui.getI18n)('vxe.select.search'),
2004
- prefixIcon: (0, _ui.getIcon)().INPUT_SEARCH
2165
+ placeholder: getI18n('vxe.select.search'),
2166
+ prefixIcon: getIcon().INPUT_SEARCH
2005
2167
  },
2006
2168
  on: {
2007
2169
  'model-value': $xeSelect.modelSearchEvent,
@@ -2009,7 +2171,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2009
2171
  change: $xeSelect.triggerSearchEvent,
2010
2172
  search: $xeSelect.triggerSearchEvent
2011
2173
  }
2012
- })]) : (0, _ui.renderEmptyElement)($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
2174
+ })]) : renderEmptyElement($xeSelect), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
2013
2175
  class: 'vxe-select--panel-header'
2014
2176
  }, headerSlot ? $xeSelect.callSlot(headerSlot, {}, h) : [h('div', {
2015
2177
  class: 'vxe-tree-select--header-button'
@@ -2017,22 +2179,29 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2017
2179
  class: 'vxe-tree-select--header-btns'
2018
2180
  }, [showCheckedButton && multiple ? h(_button.default, {
2019
2181
  props: {
2020
- content: (0, _ui.getI18n)('vxe.select.allChecked'),
2182
+ content: getI18n('vxe.select.allChecked'),
2021
2183
  mode: 'text'
2022
2184
  },
2023
2185
  on: {
2024
2186
  click: $xeSelect.allCheckedPanelEvent
2025
2187
  }
2026
- }) : (0, _ui.renderEmptyElement)($xeSelect), showClearButton ? h(_button.default, {
2188
+ }) : renderEmptyElement($xeSelect), showClearButton ? h(_button.default, {
2027
2189
  props: {
2028
- content: (0, _ui.getI18n)('vxe.select.clear'),
2190
+ content: getI18n('vxe.select.clear'),
2029
2191
  mode: 'text'
2030
2192
  },
2031
2193
  on: {
2032
2194
  click: $xeSelect.clearCheckedPanelEvent
2033
2195
  }
2034
- }) : (0, _ui.renderEmptyElement)($xeSelect)])])]) : (0, _ui.renderEmptyElement)($xeSelect), h('div', {
2035
- class: 'vxe-select--panel-body'
2196
+ }) : renderEmptyElement($xeSelect)])])]) : renderEmptyElement($xeSelect), h('div', {
2197
+ 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') : '', {
2198
+ 'is--virtual-scrollbar': isVScrollbar,
2199
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2200
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2201
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2202
+ 'overflow-y': yThumbHeight,
2203
+ 'overflow-x': xThumbWidth
2204
+ }]
2036
2205
  }, [h('div', {
2037
2206
  ref: 'refVirtualWrapper',
2038
2207
  class: 'vxe-select-option--wrapper',
@@ -2040,6 +2209,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2040
2209
  scroll: $xeSelect.scrollEvent
2041
2210
  }
2042
2211
  }, [h('div', {
2212
+ ref: 'refVirtualSpaceElem',
2043
2213
  class: 'vxe-select--y-space',
2044
2214
  style: {
2045
2215
  height: bodyHeight ? "".concat(bodyHeight, "px") : ''
@@ -2050,23 +2220,61 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2050
2220
  style: {
2051
2221
  transform: "translateY(".concat(topSpaceHeight, "px)")
2052
2222
  }
2053
- }, $xeSelect.renderOpts(h))])]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
2223
+ }, $xeSelect.renderOpts(h))]),
2224
+ /**
2225
+ * 滚动条
2226
+ */
2227
+ isVScrollbar ? h('div', {
2228
+ class: scrollbarWrapperClss
2229
+ }, [scrollXVisible === false ? renderEmptyElement($xeSelect) : h('div', {
2230
+ ref: 'refTrackXElem',
2231
+ class: 'vxe-scrollbar--track-x',
2232
+ on: {
2233
+ click: $xeSelect.clickTrackXEvent
2234
+ }
2235
+ }, [h('div', {
2236
+ ref: 'refThumbXElem',
2237
+ class: 'vxe-scrollbar--thumb-x',
2238
+ on: {
2239
+ pointerdown: $xeSelect.pointerdownThumbXEvent,
2240
+ pointermove: $xeSelect.pointermoveThumbXEvent,
2241
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2242
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2243
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2244
+ }
2245
+ })]), scrollYVisible === false ? renderEmptyElement($xeSelect) : h('div', {
2246
+ ref: 'refTrackYElem',
2247
+ class: 'vxe-scrollbar--track-y',
2248
+ on: {
2249
+ click: $xeSelect.clickTrackYEvent
2250
+ }
2251
+ }, [h('div', {
2252
+ ref: 'refThumbYElem',
2253
+ class: 'vxe-scrollbar--thumb-y',
2254
+ on: {
2255
+ pointerdown: $xeSelect.pointerdownThumbYEvent,
2256
+ pointermove: $xeSelect.pointermoveThumbYEvent,
2257
+ pointerup: $xeSelect.cleatPointerThumbEvent,
2258
+ pointercancel: $xeSelect.cleatPointerThumbEvent,
2259
+ lostpointercapture: $xeSelect.cleatPointerThumbEvent
2260
+ }
2261
+ })])]) : renderEmptyElement($xeSelect)]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
2054
2262
  class: 'vxe-select--panel-footer'
2055
2263
  }, footerSlot ? $xeSelect.callSlot(footerSlot, {}, h) : [h('div', {
2056
2264
  class: 'vxe-select--footer-button'
2057
2265
  }, [showTotalButton ? h('div', {
2058
2266
  class: 'vxe-select--total-btns'
2059
- }, (0, _ui.getI18n)('vxe.select.total', [selectVals.length, optList.length])) : (0, _ui.renderEmptyElement)($xeSelect), showCloseButton && multiple ? h('div', {
2267
+ }, getI18n('vxe.select.total', [selectVals.length, optList.length])) : renderEmptyElement($xeSelect), showCloseButton && multiple ? h('div', {
2060
2268
  class: 'vxe-select--oper-btns'
2061
2269
  }, [h(_button.default, {
2062
2270
  props: {
2063
- content: (0, _ui.getI18n)('vxe.select.close'),
2271
+ content: getI18n('vxe.select.close'),
2064
2272
  mode: 'text'
2065
2273
  },
2066
2274
  on: {
2067
2275
  click: $xeSelect.closePanelEvent
2068
2276
  }
2069
- })]) : (0, _ui.renderEmptyElement)($xeSelect)])]) : (0, _ui.renderEmptyElement)($xeSelect)])] : [])]);
2277
+ })]) : renderEmptyElement($xeSelect)])]) : renderEmptyElement($xeSelect)])] : [])]);
2070
2278
  }
2071
2279
  },
2072
2280
  watch: {
@@ -2081,6 +2289,47 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2081
2289
  optionGroups: function optionGroups(val) {
2082
2290
  var $xeSelect = this;
2083
2291
  $xeSelect.loadData(val);
2292
+ },
2293
+ computeIsVScrollbar: function computeIsVScrollbar() {
2294
+ var $xeSelect = this;
2295
+ $xeSelect.$nextTick(function () {
2296
+ $xeSelect.bindScrollbarResize();
2297
+ $xeSelect.$nextTick(function () {
2298
+ $xeSelect.reLayoutFlag++;
2299
+ });
2300
+ });
2301
+ },
2302
+ computeScrollYWidth: function computeScrollYWidth() {
2303
+ var $xeSelect = this;
2304
+ $xeSelect.reLayoutFlag++;
2305
+ },
2306
+ computeScrollXHeight: function computeScrollXHeight() {
2307
+ var $xeSelect = this;
2308
+ $xeSelect.reLayoutFlag++;
2309
+ },
2310
+ computeScrollXVisible: function computeScrollXVisible() {
2311
+ var $xeSelect = this;
2312
+ $xeSelect.$nextTick(function () {
2313
+ $xeSelect.reLayoutFlag++;
2314
+ });
2315
+ },
2316
+ computeScrollYVisible: function computeScrollYVisible() {
2317
+ var $xeSelect = this;
2318
+ $xeSelect.$nextTick(function () {
2319
+ $xeSelect.reLayoutFlag++;
2320
+ });
2321
+ },
2322
+ reLayoutFlag: function reLayoutFlag() {
2323
+ var $xeSelect = this;
2324
+ $xeSelect.recalculate().then(function () {
2325
+ $xeSelect.recalculate();
2326
+ });
2327
+ },
2328
+ reScrollFlag: function reScrollFlag() {
2329
+ var $xeSelect = this;
2330
+ $xeSelect.updateScrollbar().then(function () {
2331
+ $xeSelect.updateScrollbar();
2332
+ });
2084
2333
  }
2085
2334
  },
2086
2335
  created: function created() {
@@ -2099,23 +2348,30 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2099
2348
  $xeSelect.loadData(options);
2100
2349
  }
2101
2350
  });
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);
2351
+ $xeSelect.reLayoutFlag++;
2352
+ $xeSelect.bindScrollbarResize();
2353
+ globalEvents.on($xeSelect, 'mousedown', $xeSelect.handleGlobalMousedownEvent);
2354
+ globalEvents.on($xeSelect, 'keydown', $xeSelect.handleGlobalKeydownEvent);
2355
+ globalEvents.on($xeSelect, 'blur', $xeSelect.handleGlobalBlurEvent);
2356
+ globalEvents.on($xeSelect, 'resize', $xeSelect.handleGlobalResizeEvent);
2357
+ globalEvents.on($xeSelect, 'scroll', $xeSelect.handleGlobalScrollEvent);
2107
2358
  },
2108
2359
  beforeDestroy: function beforeDestroy() {
2109
2360
  var $xeSelect = this;
2361
+ var internalData = $xeSelect.internalData;
2362
+ var scrollObserver = internalData.scrollObserver;
2110
2363
  var panelElem = $xeSelect.$refs.refOptionPanel;
2111
2364
  if (panelElem && panelElem.parentNode) {
2112
2365
  panelElem.parentNode.removeChild(panelElem);
2113
2366
  }
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');
2367
+ if (scrollObserver) {
2368
+ scrollObserver.disconnect();
2369
+ }
2370
+ globalEvents.off($xeSelect, 'mousedown');
2371
+ globalEvents.off($xeSelect, 'keydown');
2372
+ globalEvents.off($xeSelect, 'blur');
2373
+ globalEvents.off($xeSelect, 'resize');
2374
+ globalEvents.off($xeSelect, 'scroll');
2119
2375
  },
2120
2376
  destroyed: function destroyed() {
2121
2377
  var $xeSelect = this;