feat: 添加环境变量示例,更新样式和依赖,增强全局状态管理

This commit is contained in:
2025-03-15 16:30:11 +08:00
parent e3e1a28462
commit bdafa2d083
11 changed files with 476 additions and 53 deletions

51
stores/state.ts Normal file
View File

@ -0,0 +1,51 @@
import type { LocalMessage, VisitorRole } from "~/types";
export const useGState = defineStore("global_state", () => {
const currentRole = ref<VisitorRole>("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<Record<VisitorRole, LocalMessage[]>>({
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,
};
});