From 3499cc6034d426135b2608fe8b2338a71c8189ee Mon Sep 17 00:00:00 2001 From: dailer Date: Wed, 28 Jun 2023 11:15:12 +0800 Subject: [PATCH] =?UTF-8?q?BI-128988=20fix:=20=E3=80=90=E6=9D=A5=E6=BA=90P?= =?UTF-8?q?T=E9=A1=B9=E7=9B=AE=E3=80=91=E6=96=87=E6=9C=AC=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E7=BB=84=E4=BB=B6=E6=96=87=E6=9C=AC=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=8B=BE=E9=80=89=E7=8A=B6=E6=80=81=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fineui/src/widget/multiselect/loader.js | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/fineui/src/widget/multiselect/loader.js b/packages/fineui/src/widget/multiselect/loader.js index c3aa3ffa3..db341ce95 100644 --- a/packages/fineui/src/widget/multiselect/loader.js +++ b/packages/fineui/src/widget/multiselect/loader.js @@ -192,6 +192,11 @@ export class MultiSelectInnerLoader extends Widget { this.next.setEnd(); } } + // cacheGroup渲染的是全量的,如果这次加载更多add的items是从cacheItems里面拿的,那不用再add了 + if (this.cachItems.length > 0) { + this.button_group.addItems(...arguments); + return; + } const renderEngine = Widget._renderEngine; Widget.registerRenderEngine(Element.renderEngine); this.cachGroup.addItems(...arguments); @@ -220,13 +225,6 @@ export class MultiSelectInnerLoader extends Widget { this.times = 1; this.count = 0; this.count += items.length; - if (isObject(this.next)) { - if (this.hasNext()) { - this.next.setLoaded(); - } else { - this.next.invisible(); - } - } return true; } @@ -243,6 +241,15 @@ export class MultiSelectInnerLoader extends Widget { this.cachGroup.populate.call(this.cachGroup, items, keyword); Widget.registerRenderEngine(renderEngine); this.button_group.populate.call(this.button_group, items.slice(0, firstItemsCount), keyword); + + // hasNext依赖的是cacheItems计算,所以从_populate挪到populate里面 + if (isObject(this.next)) { + if (this.hasNext()) { + this.next.setLoaded(); + } else { + this.next.invisible(); + } + } } }