This commit is contained in:
jxxghp
2024-04-19 13:16:13 +08:00
parent f63beb776e
commit 40cdb820fb
4 changed files with 57 additions and 78 deletions
@@ -43,11 +43,10 @@ async function loadHistory({ done }: { done: any }) {
return return
} }
// 设置加载中
loading.value = true
// 调用API查询列表 // 调用API查询列表
try { try {
// 设置加载中
loading.value = true
currData.value = await api.get(`subscribe/history/${props.type}`, { currData.value = await api.get(`subscribe/history/${props.type}`, {
params: { params: {
page: currentPage.value, page: currentPage.value,
@@ -58,17 +57,17 @@ async function loadHistory({ done }: { done: any }) {
isRefreshed.value = true isRefreshed.value = true
if (currData.value.length === 0) { if (currData.value.length === 0) {
// 如果没有数据,跳出 // 如果没有数据,跳出
done('error')
} else {
// 合并数据
historyList.value = [...historyList.value, ...currData.value]
// 页码+1
currentPage.value++
// 返回加载成功
done('ok') done('ok')
return
} }
// 合并数据
historyList.value = [...historyList.value, ...currData.value]
// 页码+1
currentPage.value++
// 取消加载中 // 取消加载中
loading.value = false loading.value = false
// 返回加载成功
done('ok')
} catch (e) { } catch (e) {
console.error(e) console.error(e)
// 返回加载失败 // 返回加载失败
+14 -22
View File
@@ -52,66 +52,58 @@ async function fetchData({ done }: { done: any }) {
// 如果正在加载中,直接返回 // 如果正在加载中,直接返回
if (loading.value) { if (loading.value) {
done('ok') done('ok')
return return
} }
// 设置加载中
loading.value = true
// 加载到满屏或者加载出错 // 加载到满屏或者加载出错
if (!hasScroll()) { if (!hasScroll()) {
// 加载多次 // 加载多次
while (!hasScroll()) { while (!hasScroll()) {
// 设置加载中
loading.value = true
// 请求API // 请求API
currData.value = await api.get(props.apipath, { currData.value = await api.get(props.apipath, {
params: getParams(), params: getParams(),
}) })
// 取消加载中
loading.value = false
// 标计为已请求完成 // 标计为已请求完成
isRefreshed.value = true isRefreshed.value = true
if (currData.value.length === 0) { if (currData.value.length === 0) {
// 如果没有数据,跳出 // 如果没有数据,跳出
done('ok') done('error')
return return
} }
// 合并数据 // 合并数据
dataList.value = [...dataList.value, ...currData.value] dataList.value = [...dataList.value, ...currData.value]
// 页码+1 // 页码+1
page.value++ page.value++
} }
} }
else { else {
// 加载一次 // 加载一次
// 设置加载中
loading.value = true
// 请求API // 请求API
currData.value = await api.get(props.apipath, { currData.value = await api.get(props.apipath, {
params: getParams(), params: getParams(),
}) })
// 标计为已请求完成 // 标计为已请求完成
isRefreshed.value = true isRefreshed.value = true
if (currData.value.length === 0) { if (currData.value.length === 0) {
// 如果没有数据,跳出 // 如果没有数据,跳出
done('error')
} else {
// 合并数据
dataList.value = [...dataList.value, ...currData.value]
// 页码+1
page.value++
// 返回加载成功
done('ok') done('ok')
return
} }
// 合并数据
dataList.value = [...dataList.value, ...currData.value]
// 页码+1
page.value++
} }
// 取消加载中 // 取消加载中
loading.value = false loading.value = false
// 返回加载成功
done('ok')
} }
catch (error) { catch (error) {
console.error(error) console.error(error)
+22 -29
View File
@@ -42,74 +42,67 @@ async function fetchData({ done }: { done: any }) {
// 如果正在加载中,直接返回 // 如果正在加载中,直接返回
if (loading.value) { if (loading.value) {
done('ok') done('ok')
return return
} }
// 设置加载中
loading.value = true
// 加载到满屏或者加载出错 // 加载到满屏或者加载出错
if (!hasScroll()) { if (!hasScroll()) {
// 加载多次 // 加载多次
while (!hasScroll()) { while (!hasScroll()) {
// 设置加载中
loading.value = true
// 请求API // 请求API
currData.value = await api.get(props.apipath, { currData.value = await api.get(props.apipath, {
params: { params: {
page: page.value, page: page.value,
}, },
}) })
// 取消加载中
loading.value = false
// 标计为已请求完成 // 标计为已请求完成
isRefreshed.value = true isRefreshed.value = true
if (currData.value.length === 0) { if (currData.value.length === 0) {
// 如果没有数据,跳出 // 如果没有数据,跳出
done('error')
} else {
// 合并数据
dataList.value = [...dataList.value, ...currData.value]
// 页码+1
page.value++
// 返回加载成功
done('ok') done('ok')
return
} }
// 合并数据
dataList.value = [...dataList.value, ...currData.value]
// 页码+1
page.value++
} }
} }
else { else {
// 加载一次 // 加载一次
// 设置加载中
loading.value = true
// 请求API // 请求API
currData.value = await api.get(props.apipath, { currData.value = await api.get(props.apipath, {
params: { params: {
page: page.value, page: page.value,
}, },
}) })
// 标计为已请求完成 // 标计为已请求完成
isRefreshed.value = true isRefreshed.value = true
if (currData.value.length === 0) { if (currData.value.length === 0) {
// 如果没有数据,跳出 // 如果没有数据,跳出
done('error')
} else {
// 合并数据
dataList.value = [...dataList.value, ...currData.value]
// 页码+1
page.value++
// 返回加载成功
done('ok') done('ok')
return
} }
// 取消加载中
// 合并数据 loading.value = false
dataList.value = [...dataList.value, ...currData.value]
// 页码+1
page.value++
} }
// 取消加载中
loading.value = false
// 返回加载成功
done('ok')
} }
catch (error) { catch (error) {
console.error(error) console.error(error)
// 返回加载失败 // 返回加载失败
done('error') done('error')
} }
+12 -17
View File
@@ -55,38 +55,39 @@ async function loadMessages({ done }: { done: any }) {
done('ok') done('ok')
return return
} }
// 设置加载中
loading.value = true
try { try {
// 设置加载中
loading.value = true
currData.value = await api.get('message/web', { currData.value = await api.get('message/web', {
params: { params: {
page: page.value, page: page.value,
size: 20, size: 20,
}, },
}) })
// 已加载过
isLoaded.value = true
if (currData.value.length > 0) { if (currData.value.length > 0) {
// 取最后一条时间为存量消息最新时间 // 取最后一条时间为存量消息最新时间
lastTime.value = currData.value[currData.value.length - 1].reg_time ?? '' lastTime.value = currData.value[currData.value.length - 1].reg_time ?? ''
// 合并数据 // 合并数据
messages.value = [...currData.value, ...messages.value] messages.value = [...currData.value, ...messages.value]
// 加载完成
done('ok')
if (page.value === 1) { if (page.value === 1) {
// 滚动到底部 // 滚动到底部
emit('scroll') emit('scroll')
// 监听SSE消息
startSSEMessager()
} }
// 页码+1 // 页码+1
page.value++ page.value++
// 完成
done('ok')
} }
else { else {
done('ok') // 没有新数据
// 监听SSE消息 done('error')
startSSEMessager()
} }
// 取消加载中
loading.value = false loading.value = false
isLoaded.value = true // 监听SSE消息
startSSEMessager()
} }
catch (error) { catch (error) {
console.error(error) console.error(error)
@@ -117,13 +118,7 @@ onBeforeUnmount(() => {
@load="loadMessages" @load="loadMessages"
> >
<template #loading> <template #loading>
<VProgressCircular <LoadingBanner />
v-if="loading"
indeterminate
size="48"
class="mb-5"
color="primary"
/>
</template> </template>
<div> <div>
<VRow <VRow