Commit 445768a5 by Sixong.Zhu

update

parent 2bf2b2d2
Showing with 27 additions and 20 deletions
...@@ -225,12 +225,17 @@ export default { ...@@ -225,12 +225,17 @@ export default {
if (chatid) { if (chatid) {
// 移除撤回的消息 // 移除撤回的消息
const newItems = data || []; const newItems = data || [];
const withdraw = newItems const hasWithdraw = newItems.find(
.filter((i) => i.type === MessageType.Withdraw) (i) => i.type === MessageType.Withdraw
.map((i) => +i.msg);
const filterout = newItems.filter(
(i) => !withdraw.includes(i.id)
); );
const withdraw = hasWithdraw
? newItems
.filter((i) => i.type === MessageType.Withdraw)
.map((i) => +i.msg)
: [];
const filterout = withdraw.length
? newItems.filter((i) => !withdraw.includes(i.id))
: newItems;
state[ChatStore.STATE_CHAT_MSG_HISTORY] = Object.freeze( state[ChatStore.STATE_CHAT_MSG_HISTORY] = Object.freeze(
filterMessages([...old, ...filterout], chatid) filterMessages([...old, ...filterout], chatid)
); );
...@@ -610,16 +615,11 @@ export default { ...@@ -610,16 +615,11 @@ export default {
data = await getMessages(); data = await getMessages();
} }
try { commit(ChatStore.MUTATION_PUSH_CHAT_MSG_HISTORY, data);
commit(ChatStore.MUTATION_PUSH_CHAT_MSG_HISTORY, data); dbController.saveChatMessages(chatId, data);
dbController.saveChatMessages(chatId, data); await preCacheImgs(data);
await preCacheImgs(data); commit(ChatStore.MUTATION_SCROLL_TO_BOTTOM);
commit(ChatStore.MUTATION_SCROLL_TO_BOTTOM); return data;
return data;
} catch (error) {
// eslint-disable-next-line no-console
console.error(error);
}
}, },
async [ChatStore.ACTION_GET_CHAT_MESSAGES_BEFORE_SPECIFIC_ID]( async [ChatStore.ACTION_GET_CHAT_MESSAGES_BEFORE_SPECIFIC_ID](
{ state, commit, getters }, { state, commit, getters },
......
...@@ -196,8 +196,12 @@ export class Xim { ...@@ -196,8 +196,12 @@ export class Xim {
.getSdk() .getSdk()
.getAxios() .getAxios()
.get<any, Message[]>( .get<any, Message[]>(
`/general/xim/model/${p.model}/${p.obj}/msgs?lid=${lid}&rid=${rid}&limit=${limit}&desc=${desc ? 1 : 0}` `/general/xim/model/${p.model}/${
) p.obj
}/msgs?lid=${lid}&rid=${rid}&limit=${limit}&desc=${
desc ? 1 : 0
}`
);
} }
private setMessagesRead(chatId: number, msg: Message[]) { private setMessagesRead(chatId: number, msg: Message[]) {
...@@ -432,9 +436,12 @@ export class Xim { ...@@ -432,9 +436,12 @@ export class Xim {
vue.$once("hook:beforeDestroy", () => this.off("msg", action)); vue.$once("hook:beforeDestroy", () => this.off("msg", action));
} }
public withDrawMsgHandle(e: Message) { public withDrawMsgHandle(e: Message): number[] {
const ids = e.ref_id ? [e.ref_id] : e.msg.startsWith("[") ? JSON.parse(e.msg) : [+e.msg]; return e.ref_id
return ids; ? [e.ref_id]
: e.msg.startsWith("[")
? JSON.parse(e.msg)
: [+e.msg];
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment