fix: 无法在任务新窗口打开引用的任务

This commit is contained in:
kuaifan 2023-08-10 20:44:56 +08:00
parent c768395094
commit aba74681ef
2 changed files with 60 additions and 2 deletions

51
electron/electron.js vendored
View File

@ -162,19 +162,56 @@ function createSubWindow(args) {
}) })
electronMenu.webContentsMenu(browser.webContents) electronMenu.webContentsMenu(browser.webContents)
const hash = args.hash || args.path;
if (devloadUrl) { if (devloadUrl) {
browser.loadURL(devloadUrl + '#' + (args.hash || args.path)).then(_ => { browser.loadURL(devloadUrl + '#' + hash).then(_ => {
}) })
} else { } else {
browser.loadFile('./public/index.html', { browser.loadFile('./public/index.html', {
hash: args.hash || args.path hash
}).then(_ => { }).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() const getTheLock = app.requestSingleInstanceLock()
if (!getTheLock) { if (!getTheLock) {
app.quit() app.quit()
@ -297,6 +334,16 @@ ipcMain.on('windowRouter', (event, args) => {
event.returnValue = "ok" 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"
})
/** /**
* 隐藏窗口macwin隐藏其他关闭 * 隐藏窗口macwin隐藏其他关闭
*/ */

View File

@ -1852,6 +1852,17 @@ export default {
task_id = task.id; 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.taskArchiveView = task_id;
state.taskId = task_id; state.taskId = task_id;
if (task_id > 0) { if (task_id > 0) {