mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2025-12-17 16:35:53 +08:00
96 lines
2.4 KiB
JavaScript
96 lines
2.4 KiB
JavaScript
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: "",
|
|
},
|
|
],
|
|
webSocketWithOut:false, // ws 是否是掉线 无输出状态
|
|
// 对话索引(聊天对话的唯一索引)
|
|
index_name: null,
|
|
},
|
|
mutations: {
|
|
// 设置ws状态
|
|
SET_WS_STATUS: (state,resource) =>{
|
|
state.webSocketWithOut = resource
|
|
},
|
|
// 更新对话
|
|
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) {
|
|
record = {...record,webSocketStatus:state.webSocketWithOut}
|
|
console.log("推送对话",)
|
|
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;
|
|
},
|
|
},
|
|
};
|