This commit is contained in:
2026-09-24 14:58:23 +08:00
parent 6e8bb2e0a0
commit 0a1a312418
6 changed files with 63 additions and 31 deletions
+19 -8
View File
@@ -487,7 +487,7 @@ export const store = {
return msg
})
const seen = new Set(incoming.map((m) => m.id).filter(Boolean))
const extras = (conv.messages || []).filter((m) => m.mine && m.id && !seen.has(m.id) && Date.now() - Number(m.time) < 120000)
const extras = (conv.messages || []).filter((m) => m.id && !seen.has(m.id) && (m.kind === 'system' || (m.mine && Date.now() - Number(m.time) < 120000)))
conv.messages = incoming.concat(extras)
conv.unread = 0
await api.markRead(conv.id, this.token)
@@ -794,12 +794,15 @@ export const store = {
async createGroup(name, memberIds) {
const ids = [...new Set([this.me && this.me.id, ...(memberIds || []).map(String)])].filter(Boolean)
const title = String(name || '').trim() || '群聊'
let sid = ''
try {
const data = await api.createGroup({ name: title, memberIds: ids }, this.token)
sid = String((data && (data.id || data.sessionId)) || '')
} catch (_) {}
if (!sid) sid = 'g:' + Date.now()
if (ids.length < 2) throw new Error('请至少再选一位同事')
const data = await api.createGroup({
title,
name: title,
memberIds: ids,
members: ids
}, this.token)
const sid = String((data && (data.id || data.sessionId)) || '')
if (!sid) throw new Error('创建失败')
let conv = this.findConv(sid)
if (!conv) {
conv = {
@@ -809,8 +812,16 @@ export const store = {
avatar: '',
peerId: '',
memberIds: ids,
messages: [],
unread: 0,
messages: [{
id: 'sys-' + sid,
kind: 'system',
text: '你创建了群聊',
time: Date.now(),
mine: false,
fromId: '',
recalled: false
}],
lastMessage: '你创建了群聊',
lastTime: fmtListTime(Date.now()),
pinned: false,