+
-
diff --git a/web/src/stores/index.ts b/web/src/stores/index.ts
index 0637980..cea2a56 100644
--- a/web/src/stores/index.ts
+++ b/web/src/stores/index.ts
@@ -1,2 +1,3 @@
export * from "./asr_store";
export * from "./chat_store";
+export * from "./layout_store";
\ No newline at end of file
diff --git a/web/src/stores/layout_store.ts b/web/src/stores/layout_store.ts
new file mode 100644
index 0000000..98db981
--- /dev/null
+++ b/web/src/stores/layout_store.ts
@@ -0,0 +1,44 @@
+import { matchMedia } from "@/utils";
+
+export const useLayoutStore = defineStore("layout", () => {
+ // 侧边栏状态
+ const hiddenLeftSidebar = ref(false);
+ // 简洁按钮
+ const simpleMode = ref(false);
+
+ const handleResize = () => {
+ matchMedia(
+ "sm",
+ () => {
+ hiddenLeftSidebar.value = true;
+ },
+ () => {
+ hiddenLeftSidebar.value = false;
+ }
+ );
+ matchMedia(
+ "536",
+ () => {
+ simpleMode.value = true;
+ },
+ () => {
+ simpleMode.value = false;
+ }
+ );
+ };
+
+ const toggleLeftSidebar = () => {
+ hiddenLeftSidebar.value = !hiddenLeftSidebar.value;
+ };
+
+ window.addEventListener("resize", handleResize);
+
+ onMounted(() => {
+ handleResize();
+ });
+
+ onUnmounted(() => {
+ window.removeEventListener("resize", handleResize);
+ });
+ return { hiddenLeftSidebar, toggleLeftSidebar, simpleMode };
+});
diff --git a/web/src/utils/media.ts b/web/src/utils/media.ts
index 0fc9615..e422f39 100644
--- a/web/src/utils/media.ts
+++ b/web/src/utils/media.ts
@@ -35,6 +35,7 @@ export const matchMedia = (
}
};
+/** 获取视窗宽度 */
export const useWindowWidth = () => {
const width = ref(window.innerWidth);
diff --git a/web/src/views/CommunityView.vue b/web/src/views/CommunityView.vue
index 5dea840..efb4876 100644
--- a/web/src/views/CommunityView.vue
+++ b/web/src/views/CommunityView.vue
@@ -10,14 +10,15 @@ import {
} from "@/assets/Icons";
import UserAvatar from "@/assets/user_avatar.jpg";
import markdown from "@/components/markdown.vue";
-import { useAsrStore, useChatStore } from "@/stores";
+import { useAsrStore, useChatStore, useLayoutStore } from "@/stores";
const chatStore = useChatStore();
-const asrStore = useAsrStore();
-
const { historyMessages, completing, modelList, modelInfo } =
storeToRefs(chatStore);
+const asrStore = useAsrStore();
const { isRecording } = storeToRefs(asrStore);
+const layoutStore = useLayoutStore();
+const { hiddenLeftSidebar, simpleMode } = storeToRefs(layoutStore);
const inputData = ref("");
const scrollbarRef = ref
(null);
@@ -93,7 +94,8 @@ onMounted(() => {
@@ -182,16 +184,28 @@ onMounted(() => {
- 清除历史
-
+ 清除历史
+
确定要清除历史消息吗?
- {{ isRecording ? "停止输入" : "语音输入" }}
-
+
+ {{ isRecording ? "停止输入" : "语音输入" }}
+
+