diff --git a/electron/api/config.ts b/electron/api/config.ts index 44cb054..a6ca050 100644 --- a/electron/api/config.ts +++ b/electron/api/config.ts @@ -1,42 +1,50 @@ -import { ipcMain } from "electron"; -import { getConfig, saveConfig } from "../storage/config"; -import { listVersion } from "../storage/version"; +import {app, ipcMain} from "electron"; +import {getConfig, saveConfig} from "../storage/config"; +import {listVersion} from "../storage/version"; export const initConfigApi = () => { - ipcMain.on("config.saveConfig", async (event, args) => { - saveConfig(args, (err, numberOfUpdated, upsert) => { - event.reply("Config.saveConfig.hook", { - err: err, - numberOfUpdated: numberOfUpdated, - upsert: upsert - }); + ipcMain.on("config.saveConfig", async (event, args) => { + saveConfig(args, (err, numberOfUpdated, upsert) => { + if (!err) { + const start = args.systemSelfStart || false; + console.log('开机自启', start) + app.setLoginItemSettings({ + openAtLogin: start, //win + openAsHidden: start, //macOs + }); + } + event.reply("Config.saveConfig.hook", { + err: err, + numberOfUpdated: numberOfUpdated, + upsert: upsert + }); + }); }); - }); - ipcMain.on("config.getConfig", async (event, args) => { - getConfig((err, doc) => { - event.reply("Config.getConfig.hook", { - err: err, - data: doc - }); + ipcMain.on("config.getConfig", async (event, args) => { + getConfig((err, doc) => { + event.reply("Config.getConfig.hook", { + err: err, + data: doc + }); + }); }); - }); - ipcMain.on("config.versions", event => { - listVersion((err, doc) => { - event.reply("Config.versions.hook", { - err: err, - data: doc - }); + ipcMain.on("config.versions", event => { + listVersion((err, doc) => { + event.reply("Config.versions.hook", { + err: err, + data: doc + }); + }); }); - }); - ipcMain.on("config.hasConfig", event => { - getConfig((err, doc) => { - event.reply("Config.getConfig.hook", { - err: err, - data: doc - }); + ipcMain.on("config.hasConfig", event => { + getConfig((err, doc) => { + event.reply("Config.getConfig.hook", { + err: err, + data: doc + }); + }); }); - }); }; diff --git a/electron/storage/config.ts b/electron/storage/config.ts index de91af5..528eab3 100644 --- a/electron/storage/config.ts +++ b/electron/storage/config.ts @@ -22,6 +22,8 @@ export type Config = { tlsConfigServerName: string; proxyConfigEnable: boolean; proxyConfigProxyUrl: string; + systemSelfStart: boolean; + systemStartupConnect: boolean; }; /** diff --git a/src/views/config/index.vue b/src/views/config/index.vue index 531b89d..27d2f16 100644 --- a/src/views/config/index.vue +++ b/src/views/config/index.vue @@ -26,6 +26,8 @@ type Config = { tlsConfigServerName: string; proxyConfigEnable: boolean; proxyConfigProxyUrl: string; + systemSelfStart: boolean; + systemStartupConnect: boolean; }; type Version = { @@ -47,7 +49,9 @@ const formData = ref({ tlsConfigTrustedCaFile: "", tlsConfigServerName: "", proxyConfigEnable: false, - proxyConfigProxyUrl: "" + proxyConfigProxyUrl: "", + systemSelfStart: false, + systemStartupConnect: false, }); const loading = ref(1); @@ -76,7 +80,7 @@ const rules = reactive({ tlsConfigServerName: [{required: true, message: "请输入TLS Server名称", trigger: "blur"}], proxyConfigEnable: [{required: true, message: "请选择代理状态", trigger: "change"}], proxyConfigProxyUrl: [ - {required: true, message: "请输入代理地址", trigger: "change"}, + {required: true, message: "请输入代理地址", trigger: "change"}, { pattern: /^https?\:\/\/(\w+:\w+@)?([a-zA-Z0-9.-]+)(:\d+)?$/, message: "请输入正确的代理地址", @@ -341,6 +345,25 @@ onUnmounted(() => { + +
系统配置
+
+ + + + + + + + + +