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)
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"
})
/**
* 隐藏窗口macwin隐藏其他关闭
*/

View File

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