From 40cdb820fb400762be3296fa0d1146a793e1562d Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 19 Apr 2024 13:16:13 +0800 Subject: [PATCH] fix ui --- .../dialog/SubscribeHistoryDialog.vue | 19 ++++--- src/views/discover/MediaCardListView.vue | 36 +++++-------- src/views/discover/PersonCardListView.vue | 51 ++++++++----------- src/views/system/MessageView.vue | 29 +++++------ 4 files changed, 57 insertions(+), 78 deletions(-) diff --git a/src/components/dialog/SubscribeHistoryDialog.vue b/src/components/dialog/SubscribeHistoryDialog.vue index 48b86879..7622e984 100644 --- a/src/components/dialog/SubscribeHistoryDialog.vue +++ b/src/components/dialog/SubscribeHistoryDialog.vue @@ -43,11 +43,10 @@ async function loadHistory({ done }: { done: any }) { return } - // 设置加载中 - loading.value = true - // 调用API查询列表 try { + // 设置加载中 + loading.value = true currData.value = await api.get(`subscribe/history/${props.type}`, { params: { page: currentPage.value, @@ -58,17 +57,17 @@ async function loadHistory({ done }: { done: any }) { isRefreshed.value = true if (currData.value.length === 0) { // 如果没有数据,跳出 + done('error') + } else { + // 合并数据 + historyList.value = [...historyList.value, ...currData.value] + // 页码+1 + currentPage.value++ + // 返回加载成功 done('ok') - return } - // 合并数据 - historyList.value = [...historyList.value, ...currData.value] - // 页码+1 - currentPage.value++ // 取消加载中 loading.value = false - // 返回加载成功 - done('ok') } catch (e) { console.error(e) // 返回加载失败 diff --git a/src/views/discover/MediaCardListView.vue b/src/views/discover/MediaCardListView.vue index af9a38db..877205cc 100644 --- a/src/views/discover/MediaCardListView.vue +++ b/src/views/discover/MediaCardListView.vue @@ -52,66 +52,58 @@ async function fetchData({ done }: { done: any }) { // 如果正在加载中,直接返回 if (loading.value) { done('ok') - return } - // 设置加载中 - loading.value = true - // 加载到满屏或者加载出错 if (!hasScroll()) { // 加载多次 while (!hasScroll()) { + // 设置加载中 + loading.value = true // 请求API currData.value = await api.get(props.apipath, { params: getParams(), }) - + // 取消加载中 + loading.value = false // 标计为已请求完成 isRefreshed.value = true if (currData.value.length === 0) { // 如果没有数据,跳出 - done('ok') - + done('error') return } - // 合并数据 dataList.value = [...dataList.value, ...currData.value] - // 页码+1 page.value++ } } else { // 加载一次 + // 设置加载中 + loading.value = true // 请求API currData.value = await api.get(props.apipath, { params: getParams(), }) - // 标计为已请求完成 isRefreshed.value = true if (currData.value.length === 0) { // 如果没有数据,跳出 + done('error') + } else { + // 合并数据 + dataList.value = [...dataList.value, ...currData.value] + // 页码+1 + page.value++ + // 返回加载成功 done('ok') - - return } - - // 合并数据 - dataList.value = [...dataList.value, ...currData.value] - - // 页码+1 - page.value++ } - // 取消加载中 loading.value = false - - // 返回加载成功 - done('ok') } catch (error) { console.error(error) diff --git a/src/views/discover/PersonCardListView.vue b/src/views/discover/PersonCardListView.vue index 8f576a06..ddf14c0e 100644 --- a/src/views/discover/PersonCardListView.vue +++ b/src/views/discover/PersonCardListView.vue @@ -42,74 +42,67 @@ async function fetchData({ done }: { done: any }) { // 如果正在加载中,直接返回 if (loading.value) { done('ok') - return } - // 设置加载中 - loading.value = true - // 加载到满屏或者加载出错 if (!hasScroll()) { // 加载多次 while (!hasScroll()) { + // 设置加载中 + loading.value = true // 请求API currData.value = await api.get(props.apipath, { params: { page: page.value, }, }) - + // 取消加载中 + loading.value = false // 标计为已请求完成 isRefreshed.value = true if (currData.value.length === 0) { // 如果没有数据,跳出 + done('error') + } else { + // 合并数据 + dataList.value = [...dataList.value, ...currData.value] + // 页码+1 + page.value++ + // 返回加载成功 done('ok') - - return } - - // 合并数据 - dataList.value = [...dataList.value, ...currData.value] - - // 页码+1 - page.value++ } } else { // 加载一次 + // 设置加载中 + loading.value = true // 请求API currData.value = await api.get(props.apipath, { params: { page: page.value, }, }) - // 标计为已请求完成 isRefreshed.value = true if (currData.value.length === 0) { // 如果没有数据,跳出 + done('error') + } else { + // 合并数据 + dataList.value = [...dataList.value, ...currData.value] + // 页码+1 + page.value++ + // 返回加载成功 done('ok') - - return } - - // 合并数据 - dataList.value = [...dataList.value, ...currData.value] - - // 页码+1 - page.value++ + // 取消加载中 + loading.value = false } - - // 取消加载中 - loading.value = false - - // 返回加载成功 - done('ok') } catch (error) { console.error(error) - // 返回加载失败 done('error') } diff --git a/src/views/system/MessageView.vue b/src/views/system/MessageView.vue index 48a07b45..f7a0c29c 100644 --- a/src/views/system/MessageView.vue +++ b/src/views/system/MessageView.vue @@ -55,38 +55,39 @@ async function loadMessages({ done }: { done: any }) { done('ok') return } - // 设置加载中 - loading.value = true try { + // 设置加载中 + loading.value = true currData.value = await api.get('message/web', { params: { page: page.value, size: 20, }, }) + // 已加载过 + isLoaded.value = true if (currData.value.length > 0) { // 取最后一条时间为存量消息最新时间 lastTime.value = currData.value[currData.value.length - 1].reg_time ?? '' // 合并数据 messages.value = [...currData.value, ...messages.value] - // 加载完成 - done('ok') if (page.value === 1) { // 滚动到底部 emit('scroll') - // 监听SSE消息 - startSSEMessager() } // 页码+1 page.value++ + // 完成 + done('ok') } else { - done('ok') - // 监听SSE消息 - startSSEMessager() + // 没有新数据 + done('error') } + // 取消加载中 loading.value = false - isLoaded.value = true + // 监听SSE消息 + startSSEMessager() } catch (error) { console.error(error) @@ -117,13 +118,7 @@ onBeforeUnmount(() => { @load="loadMessages" >