Files
Yi.Admin/Yi.Bbs.Vue3/src/stores/chat.js

52 lines
1.4 KiB
JavaScript
Raw Normal View History

2024-04-04 19:28:18 +08:00
import { defineStore } from "pinia";
const chatStore = defineStore("chat", {
state: () => ({
userList: [],
2024-04-06 18:28:32 +08:00
msgList: []
2024-04-04 19:28:18 +08:00
}),
2024-07-21 20:40:20 +08:00
getters: {
2025-02-03 01:18:15 +08:00
allMsgContext: (state) => state.msgList.filter(x => x.messageType === "All"),
personalMsgContext: (state) => state.msgList.filter(x => x.messageType === "Personal"),
// aiMsgContext: (state) => state.msgList.filter(x => x.messageType === "Ai"),
//获取msg通过类型
getMsgContextFunc: (state) => (messageType) => {
return state.msgList.filter(item => item.messageType === messageType);
},
2024-07-21 20:40:20 +08:00
},
2024-04-06 18:28:32 +08:00
actions:
{
2024-07-21 20:40:20 +08:00
addOrUpdateMsg(msg) {
2025-02-03 01:18:15 +08:00
var currentMsg = this.msgList.filter(x => x.id === msg.id)[0];
2024-07-21 20:40:20 +08:00
//当前没有包含,如果有相同的上下文id只需要改变content即可
2025-02-03 01:18:15 +08:00
if (currentMsg === undefined) {
2024-07-21 20:40:20 +08:00
this.addMsg(msg);
}
else {
currentMsg.content += msg.content;
}
2024-07-21 13:37:56 +08:00
},
2025-02-03 01:18:15 +08:00
clearTypeMsg(messageType)
2024-07-21 20:40:20 +08:00
{
2025-02-03 01:18:15 +08:00
this.msgList=this.msgList.filter(x => x.messageType !==messageType)
2024-07-21 20:40:20 +08:00
},
2024-04-06 18:28:32 +08:00
setMsgList(value) {
this.msgList = value;
},
addMsg(msg) {
this.msgList.push(msg);
},
2024-04-04 19:28:18 +08:00
setUserList(value) {
this.userList = value;
},
2024-04-06 18:28:32 +08:00
addUser(user) {
2024-04-04 19:28:18 +08:00
this.userList.push(user);
},
2024-04-06 18:28:32 +08:00
delUser(userId) {
2025-02-03 01:18:15 +08:00
this.userList = this.userList.filter(obj => obj.userId !== userId);
2024-04-04 19:28:18 +08:00
}
},
});
export default chatStore;