From 1d33a34f6394fc517ae7e5ccdcd0e99e46e431c4 Mon Sep 17 00:00:00 2001 From: KiriAky 107 Date: Mon, 7 Sep 2026 21:21:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(desktop):=20=E6=89=A9=E5=85=85=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=B9=B6=E5=BA=94=E7=94=A8=E5=8A=9F=E8=83=BD=E9=A1=B5?= =?UTF-8?q?=E4=B8=BB=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/common/TitleBarMenu.spec.ts | 4 +- .../src/components/common/TitleBarMenu.vue | 43 +++++++++++++++++-- .../src/features/community/CommunityView.vue | 21 ++++++--- 3 files changed, 56 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/common/TitleBarMenu.spec.ts b/frontend/src/components/common/TitleBarMenu.spec.ts index 1a98bba..1123703 100644 --- a/frontend/src/components/common/TitleBarMenu.spec.ts +++ b/frontend/src/components/common/TitleBarMenu.spec.ts @@ -26,7 +26,7 @@ describe('桌面顶部段落菜单', () => { editor.currentFilePath = '/示例.md' editor.saveStatus = 'saved' const wrapper = mount(TitleBarMenu) - expect(wrapper.text()).toContain('文件编辑段落视图') + expect(wrapper.text()).toContain('文件编辑段落格式视图主题帮助') await wrapper.get('[data-menu="paragraph"] .menu-trigger').trigger('click') const item = wrapper.get('.import-properties') expect((item.element as HTMLButtonElement).disabled).toBe(false) @@ -51,7 +51,7 @@ describe('桌面顶部段落菜单', () => { it('标题命令传入对应级别并显示快捷键', async () => { const wrapper = mount(TitleBarMenu) await wrapper.get('[data-menu="paragraph"] .menu-trigger').trigger('click') - const headings = wrapper.findAll('[data-menu="paragraph"] [role="menuitem"]').filter(item => item.text().startsWith('标题')) + const headings = wrapper.findAll('[data-menu="paragraph"] [role="menuitem"]').filter(item => item.text().includes('级标题')) await headings[1].trigger('click') expect(execute).toHaveBeenCalledWith('editor.heading', 2) await wrapper.get('[data-menu="paragraph"] .menu-trigger').trigger('click') diff --git a/frontend/src/components/common/TitleBarMenu.vue b/frontend/src/components/common/TitleBarMenu.vue index 55289f5..7ec630f 100644 --- a/frontend/src/components/common/TitleBarMenu.vue +++ b/frontend/src/components/common/TitleBarMenu.vue @@ -4,10 +4,12 @@ import { useEditorStore } from '@/stores/editor' import { useThemeStore } from '@/stores/theme' import { executeEditorCommand, getEditorCommandCapabilities, type EditorCommandId } from '@/services/editorCommandService' import { t } from '@/i18n' +import { useRouter } from 'vue-router' -type MenuName = 'file' | 'edit' | 'paragraph' | 'view' +type MenuName = 'file' | 'edit' | 'paragraph' | 'format' | 'view' | 'theme' | 'help' const editor = useEditorStore() const theme = useThemeStore() +const router = useRouter() const open = ref(null) const bar = ref(null) const error = ref('') @@ -32,6 +34,8 @@ async function command(id: EditorCommandId, params?: unknown) { async function save() { await editor.save(); close() } function setMode(mode: 'source' | 'wysiwyg') { editor.setMode(mode); close() } function toggleTheme() { theme.toggleTheme(); close() } +function applyTheme(id: string) { theme.applyTheme(id); close() } +function navigate(path: string) { void router.push(path); close() } onMounted(() => window.addEventListener('pointerdown', dismiss)) onBeforeUnmount(() => window.removeEventListener('pointerdown', dismiss)) @@ -42,6 +46,8 @@ onBeforeUnmount(() => window.removeEventListener('pointerdown', dismiss))