66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import SystemService from "../service/SystemService";
|
|
import ResponseUtils from "../utils/ResponseUtils";
|
|
import PathUtils from "../utils/PathUtils";
|
|
import { BrowserWindow, dialog } from "electron";
|
|
import BeanFactory from "../core/BeanFactory";
|
|
|
|
class SystemController {
|
|
private readonly _systemService: SystemService;
|
|
|
|
constructor(systemService: SystemService) {
|
|
this._systemService = systemService;
|
|
}
|
|
|
|
openUrl(req: ControllerParam) {
|
|
this._systemService
|
|
.openUrl(req.args.url)
|
|
.then(() => {
|
|
req.event.reply(req.channel, ResponseUtils.success());
|
|
})
|
|
.catch(err => {
|
|
req.event.reply(req.channel, ResponseUtils.fail());
|
|
});
|
|
}
|
|
|
|
relaunchApp(req: ControllerParam) {
|
|
this._systemService.relaunch().then(() => {
|
|
req.event.reply(req.channel, ResponseUtils.success());
|
|
});
|
|
}
|
|
|
|
openAppData(req: ControllerParam) {
|
|
this._systemService.openLocalPath(PathUtils.getAppData()).then(() => {
|
|
req.event.reply(req.channel, ResponseUtils.success());
|
|
});
|
|
}
|
|
|
|
selectLocalFile(req: ControllerParam) {
|
|
const { name, extensions } = req.args;
|
|
if (!extensions || extensions.length === 0) {
|
|
req.event.reply(req.channel, ResponseUtils.fail("可选择扩展名不能为空"));
|
|
}
|
|
const win: BrowserWindow = BeanFactory.getBean("win");
|
|
dialog
|
|
.showOpenDialog(win, {
|
|
properties: ["openFile"],
|
|
filters: [{ name: name, extensions: extensions }]
|
|
})
|
|
.then(result => {
|
|
if (result.canceled) {
|
|
// todo canceled
|
|
ResponseUtils.success({
|
|
canceled: true,
|
|
path: ""
|
|
});
|
|
} else {
|
|
ResponseUtils.success({
|
|
canceled: true,
|
|
path: result.filePaths[0]
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
export default SystemController;
|