From aba74681ef11653dfe91cffc6d526f854962d40a Mon Sep 17 00:00:00 2001 From: kuaifan Date: Thu, 10 Aug 2023 20:44:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=97=A0=E6=B3=95=E5=9C=A8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=96=B0=E7=AA=97=E5=8F=A3=E6=89=93=E5=BC=80=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/electron.js | 51 ++++++++++++++++++++++++++-- resources/assets/js/store/actions.js | 11 ++++++ 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/electron/electron.js b/electron/electron.js index 560f3d2bc..34e39ae0e 100644 --- a/electron/electron.js +++ b/electron/electron.js @@ -162,19 +162,56 @@ function createSubWindow(args) { }) electronMenu.webContentsMenu(browser.webContents) + const hash = args.hash || args.path; if (devloadUrl) { - browser.loadURL(devloadUrl + '#' + (args.hash || args.path)).then(_ => { + browser.loadURL(devloadUrl + '#' + hash).then(_ => { }) } else { browser.loadFile('./public/index.html', { - hash: args.hash || args.path + hash }).then(_ => { }) } } +/** + * 更新子窗口 + * @param browser + * @param args + */ +function updateSubWindow(browser, args) { + if (!args) { + return; + } + + if (!utils.isJson(args)) { + args = {path: args, name: null} + } + + const hash = args.hash || args.path; + if (hash) { + if (devloadUrl) { + browser.loadURL(devloadUrl + '#' + hash).then(_ => { + + }) + } else { + browser.loadFile('./public/index.html', { + hash + }).then(_ => { + + }) + } + } + if (args.name) { + const er = subWindow.find(item => item.browser == browser); + if (er) { + er.name = args.name; + } + } +} + const getTheLock = app.requestSingleInstanceLock() if (!getTheLock) { app.quit() @@ -297,6 +334,16 @@ ipcMain.on('windowRouter', (event, args) => { event.returnValue = "ok" }) +/** + * 更新路由窗口 + * @param args {?name, ?path} // name: 不是要更改的窗口名,是要把窗口名改成什么, path: 地址 + */ +ipcMain.on('updateRouter', (event, args) => { + const browser = BrowserWindow.fromWebContents(event.sender); + updateSubWindow(browser, args) + event.returnValue = "ok" +}) + /** * 隐藏窗口(mac、win隐藏,其他关闭) */ diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 9626c3382..b574eb75c 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -1852,6 +1852,17 @@ export default { task_id = task.id; } } + if ($A.isSubElectron) { + if (task_id > 0) { + $A.Electron.sendMessage('updateRouter', { + name: `task-${task_id}`, + path: `/single/task/${task_id}`, + }); + } else { + $A.Electron.sendMessage('windowClose'); + } + return + } state.taskArchiveView = task_id; state.taskId = task_id; if (task_id > 0) {