52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
import { defineStore } from "pinia";
|
||
const chatStore = defineStore("chat", {
|
||
state: () => ({
|
||
userList: [],
|
||
msgList: []
|
||
}),
|
||
getters: {
|
||
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);
|
||
},
|
||
},
|
||
actions:
|
||
{
|
||
addOrUpdateMsg(msg) {
|
||
var currentMsg = this.msgList.filter(x => x.id === msg.id)[0];
|
||
//当前没有包含,如果有相同的上下文id,只需要改变content即可
|
||
if (currentMsg === undefined) {
|
||
this.addMsg(msg);
|
||
}
|
||
else {
|
||
currentMsg.content += msg.content;
|
||
}
|
||
|
||
},
|
||
clearTypeMsg(messageType)
|
||
{
|
||
this.msgList=this.msgList.filter(x => x.messageType !==messageType)
|
||
},
|
||
setMsgList(value) {
|
||
this.msgList = value;
|
||
},
|
||
addMsg(msg) {
|
||
this.msgList.push(msg);
|
||
},
|
||
setUserList(value) {
|
||
this.userList = value;
|
||
},
|
||
addUser(user) {
|
||
this.userList.push(user);
|
||
},
|
||
delUser(userId) {
|
||
this.userList = this.userList.filter(obj => obj.userId !== userId);
|
||
}
|
||
},
|
||
});
|
||
|
||
export default chatStore;
|