refactor(home): 提取消息排序逻辑并添加分页回退功能

This commit is contained in:
yangzhe 2025-11-27 13:32:10 +08:00
parent ead74baecb
commit 9cd36adf7b
1 changed files with 52 additions and 24 deletions

View File

@ -658,6 +658,17 @@ export default {
this.handleGetConversationDetail();
},
// (interactMode=0)
sortMessages(list = []) {
return (list || []).sort((a, b) => {
const timeA = new Date(a.sendDate).getTime();
const timeB = new Date(b.sendDate).getTime();
if (timeA === timeB) return a.interactMode - b.interactMode;
return timeA - timeB;
});
},
//
handleGetConversationDetail() {
this.$u.api
@ -669,19 +680,9 @@ export default {
.then((res) => {
console.log("GetConversationDetail.....", res.item2);
const currentList = res.item2 || [];
// sendDate(interactMode=0)
this.messageGroups = res.item2.sort((a, b) => {
const timeA = new Date(a.sendDate).getTime();
const timeB = new Date(b.sendDate).getTime();
// interactMode01
if (timeA === timeB) {
return a.interactMode - b.interactMode;
}
//
return timeA - timeB;
});
this.messageGroups = this.sortMessages(currentList);
})
.finally(() => {
//
@ -691,6 +692,39 @@ export default {
});
},
// >1退
refreshPageWithFallback() {
const currentIndex = this.pageQuery.PageIndex || 1;
const pageSize = this.pageQuery.PageSize;
return this.$u.api
.GetConversationDetail({
"Item1.Id": this.currentConversationId,
PageIndex: currentIndex,
PageSize: pageSize,
})
.then((res2) => {
const currentList = res2?.item2 || [];
if ((!currentList || currentList.length === 0) && currentIndex > 1) {
const prevIndex = currentIndex - 1;
return this.$u.api
.GetConversationDetail({
"Item1.Id": this.currentConversationId,
PageIndex: prevIndex,
PageSize: pageSize,
})
.then((res3) => {
const prevList = res3?.item2 || [];
this.messageGroups = this.sortMessages(prevList);
this.pageQuery.PageIndex = prevIndex;
});
} else {
this.messageGroups = this.sortMessages(currentList);
}
});
},
//
handleCreateConversation() {
//
@ -815,21 +849,15 @@ export default {
});
},
// /
// /&退
handleFeedback(message, isHelp) {
// id
console.log("thumb-up", message.id);
this.$u.api
.ModifyStatus({
id: message.id,
isHelp: isHelp,
})
.ModifyStatus({ id: message.id, isHelp })
.then((res) => {
if (res.succeed) {
this.$u.toast("操作成功");
//
this.handleGetConversationDetail();
}
if (!res.succeed) return;
this.$u.toast("操作成功");
// 退
this.refreshPageWithFallback();
});
},
},