mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2025-12-17 16:35:53 +08:00
IM
This commit is contained in:
89
im/src/store/modules/dialogue.js
Normal file
89
im/src/store/modules/dialogue.js
Normal file
@@ -0,0 +1,89 @@
|
||||
export default {
|
||||
state: {
|
||||
// 对话来源[1:私聊;2:群聊]
|
||||
talk_type: 0,
|
||||
|
||||
// 接收者ID
|
||||
receiver_id: 0,
|
||||
|
||||
is_robot: 0,
|
||||
|
||||
// 聊天记录
|
||||
records: [
|
||||
{
|
||||
id: "",
|
||||
createTime: "",
|
||||
toUser: "",
|
||||
isRead: false,
|
||||
messageType: "",
|
||||
talkId: "",
|
||||
text: "",
|
||||
float: "",
|
||||
},
|
||||
],
|
||||
|
||||
// 对话索引(聊天对话的唯一索引)
|
||||
index_name: null,
|
||||
},
|
||||
mutations: {
|
||||
// 更新对话
|
||||
UPDATE_DIALOGUE_MESSAGE(state, resource) {
|
||||
state.records = [];
|
||||
state.talk_type = parseInt(resource.talk_type);
|
||||
state.receiver_id = parseInt(resource.receiver_id);
|
||||
state.is_robot = parseInt(resource.is_robot);
|
||||
|
||||
/**
|
||||
* receiver_id 就是 好友id
|
||||
* 比如 a 和 b 聊天 receiver_id = b的id
|
||||
*/
|
||||
state.index_name = (resource.talk_type || 1) + "_" + resource.receiver_id;
|
||||
},
|
||||
|
||||
// 数组头部压入对话记录1494593861786271744 1494593778193793024
|
||||
UNSHIFT_DIALOGUE(state, records) {
|
||||
// console.log("%c 数组头部压入对话记录", "color:green");
|
||||
// console.log("state", state);
|
||||
// console.log("records", records);
|
||||
if(state.records.length>0){
|
||||
state.records.unshift(...records);
|
||||
}else{
|
||||
state.records.push(...records);
|
||||
}
|
||||
|
||||
console.log("最后的数据",state.records)
|
||||
},
|
||||
|
||||
// 推送对话记录
|
||||
PUSH_DIALOGUE(state, record) {
|
||||
state.records.push(record);
|
||||
},
|
||||
|
||||
// 更新对话记录
|
||||
UPDATE_DIALOGUE(state, resource) {
|
||||
for (let i in state.records) {
|
||||
if (state.records[i].id === resource.id) {
|
||||
Object.assign(state.records[i], resource);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 删除对话记录
|
||||
DELETE_DIALOGUE(state, index) {
|
||||
state.records.splice(index, 1);
|
||||
},
|
||||
|
||||
BATCH_DELETE_DIALOGUE(state, ids) {
|
||||
ids.forEach((record_id) => {
|
||||
let index = state.records.findIndex((item) => item.id == record_id);
|
||||
if (index >= 0) state.records.splice(index, 1);
|
||||
});
|
||||
},
|
||||
|
||||
// 数组头部压入对话记录
|
||||
SET_DIALOGUE(state, records) {
|
||||
state.records = records;
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user