From 0f17d514419d72ca58372f230eb34d79935363b1 Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Sat, 24 May 2025 00:19:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E5=AD=97=E4=BD=93=E5=A4=A7=E5=B0=8F=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/FileEditorContainer.vue | 9 ++- .../src/components/FileEditorOverlay.vue | 12 +++ .../frontend/src/components/MonacoEditor.vue | 81 +++++++++++++------ 3 files changed, 76 insertions(+), 26 deletions(-) diff --git a/packages/frontend/src/components/FileEditorContainer.vue b/packages/frontend/src/components/FileEditorContainer.vue index 5f5f3db..c06df91 100644 --- a/packages/frontend/src/components/FileEditorContainer.vue +++ b/packages/frontend/src/components/FileEditorContainer.vue @@ -18,7 +18,7 @@ const sessionStore = useSessionStore(); // +++ 实例化会话 Store +++ const settingsStore = useSettingsStore(); // +++ 实例化设置 Store +++ const appearanceStore = useAppearanceStore(); // +++ 实例化外观 Store +++ const { shareFileEditorTabsBoolean } = storeToRefs(settingsStore); // +++ 获取共享设置 +++ -const { currentEditorFontFamily } = storeToRefs(appearanceStore); // +++ 获取编辑器字体家族设置 +++ +const { currentEditorFontFamily, currentEditorFontSize } = storeToRefs(appearanceStore); // --- Props --- const props = defineProps({ @@ -214,6 +214,11 @@ const handleEditorScroll = ({ scrollTop, scrollLeft }: { scrollTop: number; scro } }; +// +++ 处理编辑器字体大小更新事件 +++ +const handleEditorFontSizeUpdate = (newSize: number) => { + appearanceStore.setEditorFontSize(newSize); +}; + // 注意:关闭/最小化按钮现在应该在 WorkspaceView 控制 Pane,而不是这里 // const handleCloseContainer = () => { ... }; @@ -350,9 +355,11 @@ const handleKeyDown = (event: KeyboardEvent) => { v-model="localEditorContent" :language="currentTabLanguage" :font-family="currentEditorFontFamily" + :font-size="currentEditorFontSize" theme="vs-dark" class="editor-instance" @request-save="handleSaveRequest" + @update:fontSize="handleEditorFontSizeUpdate" :initialScrollTop="activeTab?.scrollTop ?? 0" :initialScrollLeft="activeTab?.scrollLeft ?? 0" @update:scrollPosition="handleEditorScroll" diff --git a/packages/frontend/src/components/FileEditorOverlay.vue b/packages/frontend/src/components/FileEditorOverlay.vue index 3bd6f95..7c6f193 100644 --- a/packages/frontend/src/components/FileEditorOverlay.vue +++ b/packages/frontend/src/components/FileEditorOverlay.vue @@ -7,12 +7,14 @@ import FileEditorTabs from './FileEditorTabs.vue'; import { useFileEditorStore, type FileTab } from '../stores/fileEditor.store'; import { useSettingsStore } from '../stores/settings.store'; import { useSessionStore } from '../stores/session.store'; +import { useAppearanceStore } from '../stores/appearance.store'; const { t } = useI18n(); const fileEditorStore = useFileEditorStore(); const settingsStore = useSettingsStore(); const sessionStore = useSessionStore(); +const appearanceStore = useAppearanceStore(); // --- 本地状态控制弹窗显示 --- const isVisible = ref(false); @@ -34,6 +36,9 @@ const { // 设置 Store (用于判断模式) const { showPopupFileEditorBoolean, shareFileEditorTabsBoolean } = storeToRefs(settingsStore); +// 从 Appearance Store 获取编辑器字体大小 +const { currentEditorFontSize } = storeToRefs(appearanceStore); + // --- 从 Store 获取方法 --- // 全局 Store Actions (用于共享模式) const { @@ -411,6 +416,11 @@ const handleEditorScroll = ({ scrollTop, scrollLeft }: { scrollTop: number; scro } } }; + +// +++ 处理编辑器字体大小更新事件 +++ +const handleEditorFontSizeUpdate = (newSize: number) => { + appearanceStore.setEditorFontSize(newSize); +}; // 关闭弹窗 (保持不变) const handleCloseContainer = () => { @@ -572,7 +582,9 @@ onBeforeUnmount(() => { :language="currentTabLanguage" theme="vs-dark" class="editor-instance" + :font-size="currentEditorFontSize" @request-save="handleSaveRequest" + @update:fontSize="handleEditorFontSizeUpdate" :initialScrollTop="activeTab?.scrollTop ?? 0" :initialScrollLeft="activeTab?.scrollLeft ?? 0" @update:scrollPosition="handleEditorScroll" diff --git a/packages/frontend/src/components/MonacoEditor.vue b/packages/frontend/src/components/MonacoEditor.vue index 60494d8..dc93240 100644 --- a/packages/frontend/src/components/MonacoEditor.vue +++ b/packages/frontend/src/components/MonacoEditor.vue @@ -3,10 +3,10 @@