截图模块初始化
This commit is contained in:
+13
@@ -6,12 +6,14 @@ import Sidebar from '@/components/layout/Sidebar.vue'
|
||||
import ModuleContainer from '@/components/layout/ModuleContainer.vue'
|
||||
import { Toaster } from '@/components/ui/sonner'
|
||||
import { useAppStore } from '@/stores/appStore'
|
||||
import { useScreenshotStore, type CaptureMode } from '@/stores/screenshotStore'
|
||||
import { TooltipProvider } from '@/components/ui/tooltip'
|
||||
import { moduleRegistry } from '@/modules/registry'
|
||||
import type { ModuleMeta } from '@/types/module'
|
||||
import { pendingNewDownload, pendingOpenSettings } from '@/lib/trayEvents'
|
||||
|
||||
const appStore = useAppStore()
|
||||
const screenshotStore = useScreenshotStore()
|
||||
|
||||
/** 侧边栏 / 标题栏需要的模块信息(id + name + icon) */
|
||||
interface NavModule {
|
||||
@@ -157,12 +159,23 @@ onMounted(async () => {
|
||||
handleModuleChange('settings')
|
||||
})
|
||||
)
|
||||
// 托盘截图:直接触发截图流程(不切换模块,覆盖层/编辑器独立窗口)
|
||||
trayUnlisteners.push(
|
||||
await listen<CaptureMode>('tray:start-screenshot', (e) => {
|
||||
screenshotStore.startCapture(e.payload || 'region').catch(err =>
|
||||
console.error('[screenshot] 托盘触发截图失败:', err)
|
||||
)
|
||||
})
|
||||
)
|
||||
// 截图导出监听(应用级常驻,确保任何来源的截图都记录到历史)
|
||||
screenshotStore.initExportListener().catch(e => console.error('[screenshot] 导出监听初始化失败:', e))
|
||||
})
|
||||
|
||||
const trayUnlisteners: UnlistenFn[] = []
|
||||
|
||||
onUnmounted(() => {
|
||||
trayUnlisteners.forEach(fn => fn())
|
||||
screenshotStore.destroyExportListener()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user