diff --git a/src/main/apis/app/window/constants.ts b/src/main/apis/app/window/constants.ts index f0ca4c7..c484e9a 100644 --- a/src/main/apis/app/window/constants.ts +++ b/src/main/apis/app/window/constants.ts @@ -19,3 +19,7 @@ export const RENAME_WINDOW_URL = process.env.NODE_ENV === 'development' export const TOOLBOX_WINDOW_URL = process.env.NODE_ENV === 'development' ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#toolbox-page` : 'picgo://./index.html#toolbox-page' + +export const MANUAL_WINDOW_URL = process.env.NODE_ENV === 'development' + ? `${(process.env.WEBPACK_DEV_SERVER_URL as string)}#documents` + : 'picgo://./index.html#documents' diff --git a/src/main/apis/app/window/windowList.ts b/src/main/apis/app/window/windowList.ts index fd07e62..0654be0 100644 --- a/src/main/apis/app/window/windowList.ts +++ b/src/main/apis/app/window/windowList.ts @@ -13,7 +13,8 @@ import { TRAY_WINDOW_URL, MINI_WINDOW_URL, RENAME_WINDOW_URL, - TOOLBOX_WINDOW_URL + TOOLBOX_WINDOW_URL, + MANUAL_WINDOW_URL } from './constants' // Custom types/enums @@ -57,6 +58,27 @@ const trayWindowOptions = { } } +const manualWindowOptions = { + height: 800, + width: 1200, + show: false, + frame: true, + center: true, + fullscreenable: true, + resizable: true, + title: 'Manual', + vibrancy: 'ultra-dark', + transparent: false, + webPreferences: { + webviewTag: true, + backgroundThrottling: false, + nodeIntegration: !!process.env.ELECTRON_NODE_INTEGRATION, + contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION, + nodeIntegrationInWorker: true, + webSecurity: false + } +} as IBrowserWindowOptions + const settingWindowOptions = { height: defaultWindowHeight, width: defaultWindowWidth, @@ -169,6 +191,16 @@ windowList.set(IWindowList.TRAY_WINDOW, { } }) +windowList.set(IWindowList.MANUAL_WINDOW, { + isValid: true, + multiple: false, + options: () => manualWindowOptions, + callback (window) { + window.loadURL(handleWindowParams(MANUAL_WINDOW_URL)) + window.focus() + } +}) + windowList.set(IWindowList.SETTING_WINDOW, { isValid: true, multiple: false, diff --git a/src/main/events/ipcList.ts b/src/main/events/ipcList.ts index 0ebc968..e7b0611 100644 --- a/src/main/events/ipcList.ts +++ b/src/main/events/ipcList.ts @@ -306,6 +306,10 @@ export default { } }) + ipcMain.on('openManualWindow', () => { + windowManager.get(IWindowList.MANUAL_WINDOW)!.show() + }) + ipcMain.on('openMiniWindow', () => { const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)! const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)! diff --git a/src/renderer/layouts/Main.vue b/src/renderer/layouts/Main.vue index 1444eee..ff4f2ae 100644 --- a/src/renderer/layouts/Main.vue +++ b/src/renderer/layouts/Main.vue @@ -358,6 +358,10 @@ const handleGetPicPeds = () => { const handleSelect = (index: string) => { defaultActive.value = index + if (index === routerConfig.DocumentPage) { + ipcRenderer.send('openManualWindow') + return + } const type = index.match(routerConfig.UPLOADER_CONFIG_PAGE) if (type === null) { $router.push({ diff --git a/src/renderer/router/index.ts b/src/renderer/router/index.ts index e4d30c3..396bdf7 100644 --- a/src/renderer/router/index.ts +++ b/src/renderer/router/index.ts @@ -79,11 +79,6 @@ export default createRouter({ component: () => import(/* webpackChunkName: "Plugin" */ '@/pages/Plugin.vue'), name: config.PLUGIN_PAGE }, - { - path: 'documents', - component: () => import(/* webpackChunkName: "DocumentPage" */ '@/pages/DocumentPage.vue'), - name: config.DocumentPage - }, { path: 'shortKey', component: () => import(/* webpackChunkName: "ShortkeyPage" */ '@/pages/ShortKey.vue'), @@ -96,6 +91,11 @@ export default createRouter({ } ] }, + { + path: '/documents', + component: () => import(/* webpackChunkName: "DocumentPage" */ '@/pages/DocumentPage.vue'), + name: config.DocumentPage + }, { path: '/toolbox-page', name: config.TOOLBOX_CONFIG_PAGE, diff --git a/src/universal/types/enum.ts b/src/universal/types/enum.ts index 5e55f78..8ed21c7 100644 --- a/src/universal/types/enum.ts +++ b/src/universal/types/enum.ts @@ -33,7 +33,8 @@ export enum IWindowList { TRAY_WINDOW = 'TRAY_WINDOW', MINI_WINDOW = 'MINI_WINDOW', RENAME_WINDOW = 'RENAME_WINDOW', - TOOLBOX_WINDOW = 'TOOLBOX_WINDOW' + TOOLBOX_WINDOW = 'TOOLBOX_WINDOW', + MANUAL_WINDOW = 'MANUAL_WINDOW' } export enum IRemoteNoticeActionType {