reafactor: group basic function refactor complete
This commit is contained in:
76
src/store/group_message.ts
Normal file
76
src/store/group_message.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
import { defineStore } from "pinia";
|
||||
import {
|
||||
saveGroupMessages,
|
||||
loadGroupMessages,
|
||||
deleteGroupMessages,
|
||||
} from "@/functions/groupHistoryMessage";
|
||||
|
||||
interface Group_Message{
|
||||
cmd: string;
|
||||
from: number;
|
||||
to: number;
|
||||
group: number;
|
||||
content: string;
|
||||
time: string;
|
||||
}
|
||||
|
||||
export const groupMessageStore = defineStore("groupMessageStore", {
|
||||
state: () => ({
|
||||
g_id: "",
|
||||
historymessages: [],
|
||||
messages: [],
|
||||
corresponding: [],
|
||||
}),
|
||||
actions: {
|
||||
async recieveMessage(u_id: number, message: Group_Message) {
|
||||
const key = `${u_id}-${message.group}`
|
||||
if(this.g_id !== '' && this.g_id === message.group) this.messages.push(message);
|
||||
await saveGroupMessages(key, [message]);
|
||||
},
|
||||
reset(){
|
||||
this.g_id = "";
|
||||
this.historymessages = [];
|
||||
this.messages = [];
|
||||
this.corresponding = [];
|
||||
},
|
||||
addMessage(message: Group_Message) {
|
||||
this.messages.push(message);
|
||||
},
|
||||
clearMessages() {
|
||||
this.messages = [];
|
||||
},
|
||||
|
||||
async initMessages() {
|
||||
this.historymessages = [...this.historymessages, ...this.messages];
|
||||
this.messages = [];
|
||||
},
|
||||
|
||||
async getHistoryMessages(u_id:number, g_id: number) {
|
||||
this.g_id = g_id;
|
||||
const key = `${u_id}-${g_id}`;
|
||||
try {
|
||||
this.historymessages = await loadGroupMessages(key);
|
||||
// 确保历史消息是数组类型
|
||||
if (!Array.isArray(this.historymessages)) {
|
||||
console.error("历史消息数据无效:", this.historymessages);
|
||||
this.historymessages = []; // 如果数据无效,设置为空数组
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("加载历史消息时出错" + error);
|
||||
}
|
||||
},
|
||||
async saveMessagesHistory(u_id: number, g_id: number) {
|
||||
// const key = `${u_id}-${g_id}`;
|
||||
// const messages = toRaw(this.messages);
|
||||
this.messages = [];
|
||||
this.historymessages = [];
|
||||
// await saveGroupMessages(key, messages);
|
||||
},
|
||||
async deleteMessagesHistory(u_id: number, g_id: number) {
|
||||
const key = `${u_id}-${g_id}`;
|
||||
this.historymessages = [];
|
||||
this.messages = [];
|
||||
await deleteGroupMessages(key, []);
|
||||
},
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user