From fdc8455640095a94f2c3604acd94f80570079ff8 Mon Sep 17 00:00:00 2001 From: zinface Date: Tue, 18 Aug 2026 11:40:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(titleBar):=20=E6=A0=B9=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E5=B9=B6=E4=BC=A0=E5=85=A5=20isMaximized=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 8 ++++++++ src/vite-env.d.ts | 1 + 2 files changed, 9 insertions(+) diff --git a/src/App.vue b/src/App.vue index abd3b205..b89d8d90 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,6 +14,7 @@ @toggle-theme="toggleTheme" @toggle-sidebar="isSidebarOpen = !isSidebarOpen" @spk-link="handleSpkLink" + :is-maximized="isMaximized" />
@@ -545,6 +546,11 @@ const isDarkTheme = computed(() => { return themeMode.value === "dark"; }); +const isMaximized = ref(false) +const updateIsMaximizedState = async () => { + const state = await window.windowControls.state() + isMaximized.value = state === 'maximized' +} const isSubmitterView = ref(false); // 启动参数 --no-apm => 仅 Spark;--no-spark => 仅 APM;由主进程 IPC 提供 @@ -922,6 +928,8 @@ const handleWindowResize = () => { saveBoundsTimer = window.setTimeout(() => { void window.ipcRenderer.invoke("save-window-bounds"); }, 400); + + updateIsMaximizedState() }; // —— 以下为可复用的事件/IPC 监听处理器(命名函数,便于 onUnmounted 统一移除)—— diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index e4409466..09878e28 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -39,6 +39,7 @@ interface WindowControlBridge { minimize: () => void; toggleMaximize: () => void; close: () => void; + state: () => Promise<| 'normal' | 'maximized' | 'minimized'> } // IPC channel type definitions