|
|
|
@ -1,8 +1,7 @@ |
|
|
|
import { |
|
|
|
MESSAGE_TYPE, |
|
|
|
MESSAGE_STATUS |
|
|
|
} from "../api/enums.js" |
|
|
|
import { MESSAGE_TYPE, MESSAGE_STATUS } from "../api/enums.js" |
|
|
|
import userStore from './userStore'; |
|
|
|
import localForage from 'localforage'; |
|
|
|
|
|
|
|
export default { |
|
|
|
|
|
|
|
state: { |
|
|
|
@ -142,9 +141,9 @@ export default { |
|
|
|
chat.lastContent = "[文件]"; |
|
|
|
} else if (msgInfo.type == MESSAGE_TYPE.AUDIO) { |
|
|
|
chat.lastContent = "[语音]"; |
|
|
|
} else if (msgInfo.type == MESSAGE_TYPE.TEXT |
|
|
|
|| msgInfo.type == MESSAGE_TYPE.RECALL |
|
|
|
|| msgInfo.type == MESSAGE_TYPE.TIP_TEXT ) { |
|
|
|
} else if (msgInfo.type == MESSAGE_TYPE.TEXT || |
|
|
|
msgInfo.type == MESSAGE_TYPE.RECALL || |
|
|
|
msgInfo.type == MESSAGE_TYPE.TIP_TEXT) { |
|
|
|
chat.lastContent = msgInfo.content; |
|
|
|
} else if (msgInfo.type == MESSAGE_TYPE.ACT_RT_VOICE) { |
|
|
|
chat.lastContent = "[语音通话]"; |
|
|
|
@ -179,14 +178,14 @@ export default { |
|
|
|
// 根据id顺序插入,防止消息乱序
|
|
|
|
let insertPos = chat.messages.length; |
|
|
|
// 防止 图片、文件 在发送方 显示 在顶端 因为还没存库,id=0
|
|
|
|
if(msgInfo.id && msgInfo.id > 0){ |
|
|
|
if (msgInfo.id && msgInfo.id > 0) { |
|
|
|
for (let idx in chat.messages) { |
|
|
|
if (chat.messages[idx].id && msgInfo.id < chat.messages[idx].id) { |
|
|
|
insertPos = idx; |
|
|
|
console.log(`消息出现乱序,位置:${chat.messages.length},修正至:${insertPos}`); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
chat.messages.splice(insertPos, 0, msgInfo); |
|
|
|
this.commit("saveToStorage"); |
|
|
|
@ -264,7 +263,7 @@ export default { |
|
|
|
groupMsgMaxId: state.groupMsgMaxId, |
|
|
|
chats: state.chats |
|
|
|
} |
|
|
|
localStorage.setItem(key, JSON.stringify(chatsData)); |
|
|
|
localForage.setItem(key, chatsData) |
|
|
|
}, |
|
|
|
clear(state) { |
|
|
|
state.activeChat = null; |
|
|
|
@ -276,12 +275,19 @@ export default { |
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
let userId = userStore.state.userInfo.id; |
|
|
|
let key = "chats-" + userId; |
|
|
|
let item = localStorage.getItem(key) |
|
|
|
if (item) { |
|
|
|
let chatsData = JSON.parse(item); |
|
|
|
context.commit("initChats", chatsData); |
|
|
|
} |
|
|
|
resolve(); |
|
|
|
localForage.getItem(key).then((item)=>{ |
|
|
|
let chatsData = item; |
|
|
|
// 兼容历史数据,以后要删除
|
|
|
|
if(!chatsData){ |
|
|
|
chatsData = JSON.parse(localStorage.getItem(key)); |
|
|
|
} |
|
|
|
if (chatsData) { |
|
|
|
context.commit("initChats", chatsData); |
|
|
|
} |
|
|
|
resolve(); |
|
|
|
}).catch(()=>{ |
|
|
|
reject(); |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
|