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))