From 1399b5478059a628e63ad54374e8b8446646618d Mon Sep 17 00:00:00 2001 From: KiriAky 107 Date: Mon, 7 Sep 2026 19:55:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(desktop):=20=E6=98=BE=E7=A4=BA=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E8=8F=9C=E5=8D=95=E6=A0=8F=E5=B9=B6=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tauri-Rust桌面客户端需求说明-第三阶段.md | 4 +- .../警告框与桌面编辑命令开发说明.md | 2 +- frontend/src-tauri/src/main.rs | 2 +- frontend/src/App.vue | 2 + frontend/src/components/common/AppShell.vue | 4 + frontend/src/components/common/TitleBar.vue | 2 - .../components/common/TitleBarMenu.spec.ts | 29 ++++- .../src/components/common/TitleBarMenu.vue | 119 +++++++++++------- frontend/src/services/platform/lifecycle.ts | 16 ++- 9 files changed, 127 insertions(+), 53 deletions(-) diff --git a/docs/contracts/Tauri-Rust桌面客户端需求说明-第三阶段.md b/docs/contracts/Tauri-Rust桌面客户端需求说明-第三阶段.md index 7b88a8b..5e4b4e7 100644 --- a/docs/contracts/Tauri-Rust桌面客户端需求说明-第三阶段.md +++ b/docs/contracts/Tauri-Rust桌面客户端需求说明-第三阶段.md @@ -21,7 +21,9 @@ 桌面客户端顶部菜单栏的 **段落 → 导入为笔记属性…** 预留元数据格式导入功能,与标题、正文、列表等段落操作归组。它处理笔记内容中的元数据,不是主题包安装入口。 -稳定的前端命令标识为 `editor.import-note-properties`。属性转换处理器、Tauri 原生菜单事件和无边框窗口内的可见“段落”菜单均分发同一命令,没有维护第二套转换逻辑。快捷键待第三阶段统一分配,不抢占现有编辑快捷键。 +稳定的前端命令标识为 `editor.import-note-properties`。属性转换处理器、Tauri 原生菜单事件和无边框窗口内的可见“段落”菜单均分发同一命令,没有维护第二套转换逻辑。默认快捷键为 Windows/Linux 的 `Ctrl+Alt+P`、macOS 的 `⌘⌥P`;Rust Host 使用 `CmdOrCtrl+Alt+P` 注册 accelerator,仍由活动编辑器能力检查决定是否可用。 + +无边框桌面窗口在标题栏下方固定显示“文件 / 编辑 / 段落 / 视图”菜单行。保存使用 `Ctrl+S`;撤销和重做沿用编辑器已有的 `Ctrl+Z` 与 `Ctrl+Shift+Z`,菜单只调用相同编辑器命令,不额外注册按键监听,以免一次按键执行两次。 Markdown 格式(含警告框)与元数据共用 `editorCommandService` 的能力查询和命令分发接口,详见 [警告框与桌面编辑命令开发说明](../development/警告框与桌面编辑命令开发说明.md)。Host 根据 supported / enabled 显隐或禁用菜单,不能把已预留的命令 ID 当作已可执行能力;原生快捷键不绕过活动文档、只读和冲突检查。 diff --git a/docs/development/警告框与桌面编辑命令开发说明.md b/docs/development/警告框与桌面编辑命令开发说明.md index 2b1bdf7..3c59354 100644 --- a/docs/development/警告框与桌面编辑命令开发说明.md +++ b/docs/development/警告框与桌面编辑命令开发说明.md @@ -56,7 +56,7 @@ 目录还预留删除线、任务列表、引用、Mermaid、链接、图片、表格、分隔线、硬换行、引用式链接、HTML、撤销/重做,以及 `editor.import-note-properties`、`editor.metadata.edit`、`editor.metadata.title`、`editor.metadata.tags`。这些单独的处理器尚未接入,返回 unsupported;现阶段复杂格式可通过 insert-markdown 插入。元数据不得通过普通正文插入接口冒充属性导入。 -第三阶段由 Host 将原生菜单/快捷键映射到上述 ID。快捷键表需支持平台差异与用户改键,过滤表单、输入法组合与弹窗焦点;不要重复绑定浏览器和 Milkdown 已有按键。宿主只能调用允许的命令,不执行任意脚本。元数据处理器须按已有桌面需求完成无损 YAML 合并、版本检查、冲突提示及属性/正文一并撤销后才可标记 supported。 +第三阶段由 Host 将原生菜单/快捷键映射到上述 ID。`editor.import-note-properties` 默认使用 `CmdOrCtrl+Alt+P`,窗口保存使用 `Ctrl/Cmd+S`;撤销、重做等 Milkdown/CodeMirror 已有按键只在菜单中标示,不重复绑定。快捷键表需支持平台差异与用户改键,过滤输入法组合和不可用状态。宿主只能调用允许的命令,不执行任意脚本。元数据处理器须按已有桌面需求完成无损 YAML 合并、版本检查、冲突提示及属性/正文一并撤销后才可标记 supported。 ## 3. 验证方法 diff --git a/frontend/src-tauri/src/main.rs b/frontend/src-tauri/src/main.rs index 1b72065..d6bd922 100644 --- a/frontend/src-tauri/src/main.rs +++ b/frontend/src-tauri/src/main.rs @@ -170,7 +170,7 @@ fn main() { "editor.import-note-properties", "导入为笔记属性…", false, - None::<&str>, + Some("CmdOrCtrl+Alt+P"), )?; let paragraph = Submenu::with_items(app, "段落", true, &[&import])?; app.manage(import); diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 06f082e..2eefecf 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -3,6 +3,7 @@ import { computed } from 'vue' import { useRoute } from 'vue-router' import AppShell from '@/components/common/AppShell.vue' import TitleBar from '@/components/common/TitleBar.vue' +import TitleBarMenu from '@/components/common/TitleBarMenu.vue' import { isDesktop } from '@/services/platform/desktop' const route = useRoute() @@ -13,6 +14,7 @@ const desktop = isDesktop()