| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import { os } from "../service/os/os";
- import { logger } from "ee-core/log";
- /**
- * 窗口控制(用于无边框窗口拖拽)
- * @class
- */
- class OsCtl {
- /**
- * 最小化窗口
- */
- async minimizeWindow() {
- await os.minimizeWindow();
- }
- /**
- * 最大化窗口
- */
- async maximizeWindow() {
- await os.maximizeWindow();
- }
- /**
- * 取消最大化窗口
- */
- async unmaximizeWindow() {
- await os.unmaximizeWindow();
- }
- /**
- * 关闭窗口
- */
- async closeWindow() {
- await os.closeWindow();
- }
- /**
- * 是否最大化窗口
- */
- async isMaximized() {
- return await os.isMaximized();
- }
- /**
- * 切换开发工具
- */
- async toggleDevTools() {
- await os.toggleDevTools();
- }
- /**
- * 打开用户数据目录
- */
- async openUserDataFolder() {
- await os.openUserDataFolder();
- }
- /**
- * 打开安装目录
- */
- async openInstallFolder() {
- await os.openInstallFolder();
- }
- /**
- * 选择目录(返回目录路径)
- */
- async selectDirectory() {
- return await os.selectDirectory();
- }
- /**
- * 获取应用信息
- */
- async getAppInfo() {
- return await os.getAppInfo();
- }
- /**
- * 使用系统默认浏览器打开外部链接
- */
- async openExternal(url) {
- return await os.openExternal(url);
- }
- /**
- * 通过 Node.js 主进程流式上传清鉴数据源文件
- * 在 controller 层捕获异常并返回结构化结果,避免异常被 Electron
- * 的 ipcMain.handle 包装成 "Error occurred in handler for ..." 前缀
- * @param params { dirPath, uploadUrl, token }
- * @returns { success: boolean, data?, message? }
- */
- async uploadQingJianFiles(params) {
- try {
- const data = await os.uploadQingJianFiles(params);
- return { success: true, data };
- } catch (e) {
- const msg = e instanceof Error ? e.message : String(e);
- logger.error('[osCtl] uploadQingJianFiles failed:', msg);
- return { success: false, message: msg };
- }
- }
- }
- OsCtl.toString = () => "OsCtl";
- export default OsCtl;
|