2
2
<el-container v-if =" showKeFuMessageList" class =" kefu" >
3
3
<el-header >
4
4
<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 >
13
5
</el-header >
14
6
<el-main class =" kefu-content overflow-visible" >
15
7
<el-scrollbar ref =" scrollbarRef" always height =" calc(100vh - 495px)" @scroll =" handleScroll" >
@@ -248,15 +240,16 @@ const handleToNewMessage = async () => {
248
240
}
249
241
250
242
/** 加载历史消息 */
251
- const loadingMore = ref (false ) // 滚动到顶部加载更多
252
243
const loadHistory = ref (false ) // 加载历史消息
253
244
const handleScroll = async ({ scrollTop }) => {
254
245
const messageTotal = messageList .value .length
255
246
if (total .value > 0 && messageTotal > 0 && messageTotal === total .value ) {
256
247
return
257
248
}
258
- // 距顶 20 加载下一页数据
259
- loadingMore .value = scrollTop < 20
249
+ // 触顶自动加载下一页数据
250
+ if (scrollTop === 0 ) {
251
+ await handleOldMessage ()
252
+ }
260
253
}
261
254
const handleOldMessage = async () => {
262
255
// 记录已有页面高度
@@ -265,7 +258,6 @@ const handleOldMessage = async () => {
265
258
// 加载消息列表
266
259
queryParams .pageNo += 1
267
260
await getMessageList (conversation .value )
268
- loadingMore .value = false
269
261
// 等页面加载完后,获得上一页最后一条消息的位置,控制滚动到它所在位置
270
262
scrollbarRef .value ! .setScrollTop (innerRef .value ! .clientHeight - oldPageHeight )
271
263
}
@@ -293,17 +285,6 @@ const showTime = computed(() => (item: KeFuMessageRespVO, index: number) => {
293
285
line-height : 60px ;
294
286
}
295
287
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
-
307
288
& -content {
308
289
.newMessageTip {
309
290
position : absolute ;
0 commit comments