import type { LocalMessage, VisitorRole } from "~/types"; export const useGState = defineStore("global_state", () => { const currentRole = ref("stu"); const botName = computed(() => { switch (currentRole.value) { case "stu": return "AI 辅导员"; case "tea": return "AI 教研专家"; case "fans": return "校园百事通"; default: return "AI 智慧校园"; } }); const setCurrentRole = (role: VisitorRole) => { currentRole.value = role; }; const messagesByRole = ref>({ stu: [], tea: [], fans: [], }); const messages = computed({ get: () => messagesByRole.value[currentRole.value], set: (value: LocalMessage[]) => { messagesByRole.value[currentRole.value] = value; }, }); const insertOrUpdateMessage = (message: LocalMessage) => { const index = messages.value.findIndex((m) => m.id === message.id); if (index >= 0) { messages.value.splice(index, 1, message); } else { messages.value.push(message); } }; return { currentRole, botName, setCurrentRole, messagesByRole, messages, insertOrUpdateMessage, }; });