diff --git a/src/views/worksheet/aside/WorkSheetList.vue b/src/views/worksheet/aside/WorkSheetList.vue index a755ad0..d562ab2 100644 --- a/src/views/worksheet/aside/WorkSheetList.vue +++ b/src/views/worksheet/aside/WorkSheetList.vue @@ -12,6 +12,7 @@ const activeId = ref(""); const el = ref(null); const keyword = ref(""); const canloadMore = ref(true); +const isLoading = ref(false); defineProps({ showFieldList: { @@ -28,27 +29,27 @@ function selectHandler(id: string, index: number) { workStore.setActive(index); } -const { isLoading } = useInfiniteScroll( +useInfiniteScroll( el as any, () => { loadMore(); }, { distance: 10, - interval: 800, - canLoadMore: () => { - // console.log('canloadmore excuted!') - return canloadMore.value; - }, + interval: 1500, + canLoadMore: () => canloadMore.value } ); async function loadMore() { if (isLoading.value || el.value == null) return; - - // console.log('loadmore') - const more = await fetchList(); - data.value.push(...more); + isLoading.value = true; + try { + const more = await fetchList(); + data.value.push(...more); + } finally { + isLoading.value = false; + } } async function fetchList() { @@ -56,7 +57,11 @@ async function fetchList() { pagination.pageNo += 1; const result = await workStore.fetchOrderList(pagination, keyword.value); const { data, pageCount } = result; - canloadMore.value = pageCount >= pagination.pageNo && pageCount !== 0; + if(pageCount !== 0){ + canloadMore.value = pageCount >= pagination.pageNo ; + }else{ + canloadMore.value = false; + } return data || []; } catch (error) { canloadMore.value = false;