Skip to content

Commit 993d070

Browse files
author
puhui999
committed
【优化】mall 客服触顶自动加载下一页数据
1 parent fa08929 commit 993d070

File tree

1 file changed

+4
-23
lines changed

1 file changed

+4
-23
lines changed

src/views/mall/promotion/kefu/components/KeFuMessageList.vue

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@
22
<el-container v-if="showKeFuMessageList" class="kefu">
33
<el-header>
44
<div class="kefu-title">{{ conversation.userNickname }}</div>
5-
<!-- 加载历史消息 -->
6-
<div
7-
v-show="loadingMore"
8-
class="loadingMore flex justify-center items-center cursor-pointer"
9-
@click="handleOldMessage"
10-
>
11-
加载更多
12-
</div>
135
</el-header>
146
<el-main class="kefu-content overflow-visible">
157
<el-scrollbar ref="scrollbarRef" always height="calc(100vh - 495px)" @scroll="handleScroll">
@@ -248,15 +240,16 @@ const handleToNewMessage = async () => {
248240
}
249241
250242
/** 加载历史消息 */
251-
const loadingMore = ref(false) // 滚动到顶部加载更多
252243
const loadHistory = ref(false) // 加载历史消息
253244
const handleScroll = async ({ scrollTop }) => {
254245
const messageTotal = messageList.value.length
255246
if (total.value > 0 && messageTotal > 0 && messageTotal === total.value) {
256247
return
257248
}
258-
// 距顶 20 加载下一页数据
259-
loadingMore.value = scrollTop < 20
249+
// 触顶自动加载下一页数据
250+
if (scrollTop === 0) {
251+
await handleOldMessage()
252+
}
260253
}
261254
const handleOldMessage = async () => {
262255
// 记录已有页面高度
@@ -265,7 +258,6 @@ const handleOldMessage = async () => {
265258
// 加载消息列表
266259
queryParams.pageNo += 1
267260
await getMessageList(conversation.value)
268-
loadingMore.value = false
269261
// 等页面加载完后,获得上一页最后一条消息的位置,控制滚动到它所在位置
270262
scrollbarRef.value!.setScrollTop(innerRef.value!.clientHeight - oldPageHeight)
271263
}
@@ -293,17 +285,6 @@ const showTime = computed(() => (item: KeFuMessageRespVO, index: number) => {
293285
line-height: 60px;
294286
}
295287
296-
.loadingMore {
297-
width: 100%;
298-
height: 50px;
299-
background-color: #eee;
300-
color: #666;
301-
text-align: center;
302-
line-height: 50px;
303-
transform: translateY(-100%);
304-
transition: transform 0.3s ease-in-out;
305-
}
306-
307288
&-content {
308289
.newMessageTip {
309290
position: absolute;

0 commit comments

Comments
 (0)