Skip to content

Commit 33a4100

Browse files
author
puhui999
committed
【功能完善】商城: 客服会话排序调整
1 parent 8b0778c commit 33a4100

File tree

1 file changed

+7
-41
lines changed

1 file changed

+7
-41
lines changed

src/store/modules/mall/kefu.ts

Lines changed: 7 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -63,48 +63,14 @@ export const useMallKefuStore = defineStore('mall-kefu', {
6363
}
6464
},
6565
conversationSort() {
66-
// TODO @puhui999:1)逻辑上,先按照置顶、再按照最后消息时间;2)感觉写的有一丢丢小复杂,发给大模型,看看有没可能简化哈。
67-
this.conversationList.sort((obj1, obj2) => {
68-
// 如果 obj1.adminPinned 为 true,obj2.adminPinned 为 false,obj1 应该排在前面
69-
if (obj1.adminPinned && !obj2.adminPinned) {
70-
return -1
66+
// 按置顶属性和最后消息时间排序
67+
this.conversationList.sort((a, b) => {
68+
// 按照置顶排序,置顶的会在前面
69+
if (a.adminPinned !== b.adminPinned) {
70+
return a.adminPinned ? -1 : 1
7171
}
72-
// 如果 obj1.adminPinned 为 false,obj2.adminPinned 为 true,obj2 应该排在前面
73-
if (!obj1.adminPinned && obj2.adminPinned) {
74-
return 1
75-
}
76-
77-
// 如果 obj1.adminPinned 和 obj2.adminPinned 都为 true,比较 adminUnreadMessageCount 的值
78-
if (obj1.adminPinned && obj2.adminPinned) {
79-
return obj1.adminUnreadMessageCount - obj2.adminUnreadMessageCount
80-
}
81-
82-
// 如果 obj1.adminPinned 和 obj2.adminPinned 都为 false,比较 adminUnreadMessageCount 的值
83-
if (!obj1.adminPinned && !obj2.adminPinned) {
84-
return obj1.adminUnreadMessageCount - obj2.adminUnreadMessageCount
85-
}
86-
87-
// 如果 obj1.adminPinned 为 true,obj2.adminPinned 为 true,且 b 都大于 0,比较 adminUnreadMessageCount 的值
88-
if (
89-
obj1.adminPinned &&
90-
obj2.adminPinned &&
91-
obj1.adminUnreadMessageCount > 0 &&
92-
obj2.adminUnreadMessageCount > 0
93-
) {
94-
return obj1.adminUnreadMessageCount - obj2.adminUnreadMessageCount
95-
}
96-
97-
// 如果 obj1.adminPinned 为 false,obj2.adminPinned 为 false,且 b 都大于 0,比较 adminUnreadMessageCount 的值
98-
if (
99-
!obj1.adminPinned &&
100-
!obj2.adminPinned &&
101-
obj1.adminUnreadMessageCount > 0 &&
102-
obj2.adminUnreadMessageCount > 0
103-
) {
104-
return obj1.adminUnreadMessageCount - obj2.adminUnreadMessageCount
105-
}
106-
107-
return 0
72+
// 按照最后消息时间排序,最近的会在前面
73+
return (b.lastMessageTime as unknown as number) - (a.lastMessageTime as unknown as number)
10874
})
10975
}
11076
}

0 commit comments

Comments
 (0)