From 6aecf3c9f6d807c35f842937bc69202986d98207 Mon Sep 17 00:00:00 2001 From: devin Date: Fri, 11 Oct 2024 10:54:53 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat(virtualList):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=8A=A8=E6=80=81=E5=8F=98=E5=8C=96=EF=BC=9B?= =?UTF-8?q?=E6=96=B0=E5=A2=9ErenderChange=E4=BA=8B=E4=BB=B6=EF=BC=9B?= =?UTF-8?q?=E6=96=B0=E5=A2=9EdefaultItemSize=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8D=E5=AE=9A=E9=AB=98=E6=97=B6=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E6=AF=8F=E4=B8=80=E9=A1=B9=E9=BB=98=E8=AE=A4=E9=AB=98?= =?UTF-8?q?=E5=BA=A6=EF=BC=9B=E4=BF=AE=E5=A4=8D=E5=AE=B9=E5=99=A8=E5=B0=BA?= =?UTF-8?q?=E5=AF=B8=E5=8F=98=E5=8C=96=EF=BC=8C=E6=B8=B2=E6=9F=93=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/virtual-list/OVirtualList.vue | 195 +++++++++++++----- .../src/virtual-list/__demo__/TheIndex.vue | 2 + .../__demo__/VirtualListBasic.vue | 34 ++- .../__demo__/VirtualListDynamic.vue | 74 +++++++ packages/opendesign/src/virtual-list/types.ts | 9 +- 5 files changed, 255 insertions(+), 59 deletions(-) create mode 100644 packages/opendesign/src/virtual-list/__demo__/VirtualListDynamic.vue diff --git a/packages/opendesign/src/virtual-list/OVirtualList.vue b/packages/opendesign/src/virtual-list/OVirtualList.vue index f3657204..e4e3671f 100644 --- a/packages/opendesign/src/virtual-list/OVirtualList.vue +++ b/packages/opendesign/src/virtual-list/OVirtualList.vue @@ -1,12 +1,15 @@ diff --git a/packages/opendesign/src/virtual-list/__demo__/VirtualListBasic.vue b/packages/opendesign/src/virtual-list/__demo__/VirtualListBasic.vue index 00bfc155..5b72df12 100644 --- a/packages/opendesign/src/virtual-list/__demo__/VirtualListBasic.vue +++ b/packages/opendesign/src/virtual-list/__demo__/VirtualListBasic.vue @@ -3,6 +3,7 @@ import { ref } from 'vue'; import { OVirtualList } from '../index'; import '../style'; import { BaseScrollerPropsT } from '../../scrollbar'; +import { uniqueId } from '../../_utils/helper'; const list = ref( new Array(50).fill(1).map((_, idx) => ({ @@ -17,17 +18,19 @@ const onClick = (item: any) => { const containerHeight = ref(300); const changeContainerSize = () => { - containerHeight.value += 20; + containerHeight.value += 100; }; const list2 = ref( new Array(20).fill(1).map((_, idx) => ({ + id: uniqueId(), label: `${idx + 1}`, height: Math.floor(Math.random() * 80 + 40), })) ); const changeListData = () => { const n = new Array(10).fill(1).map((_, idx) => ({ + id: uniqueId(), label: `add${idx + 1}`, height: Math.floor(Math.random() * 80 + 40), })); @@ -39,13 +42,16 @@ const scrollbarProps: Partial = { size: 'medium', autoUpdateOnScrollSize: true, }; +const onRenderChange = (start: number, end: number) => { + console.log(start, end); +};