From ab67ba94a3fd83d97c4c110f930186e0553802d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=91=E5=85=88=E6=A3=AE?= Date: Thu, 14 Nov 2024 14:57:42 +0800 Subject: [PATCH] =?UTF-8?q?config.json=E5=AD=98=E5=82=A8=E4=BC=98=E5=8C=96?= =?UTF-8?q?,=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE=E7=BD=91=E5=8D=A1?= =?UTF-8?q?=E8=B7=83=E7=82=B9=E5=8A=9F=E8=83=BD,=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E5=85=B6=E4=BB=96bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复服务器地址过长导致无法删除地址的问题 - 新增设置网卡跃点功能 - 优化config.json serverUrl的输入格式,可数组或字符串逗号分隔 --- .gitignore | 6 +- composables/configJson.ts | 53 +++++++++++---- package.json | 2 +- pages/advance.vue | 49 +++++++++++--- pages/index.vue | 89 ++++++++++++++++++------- src-tauri/.gitignore | 3 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/easytier/config_template.json | 8 ++- src-tauri/tauri.conf.json | 4 +- stores/index.ts | 52 ++++++++++++--- 11 files changed, 204 insertions(+), 66 deletions(-) diff --git a/.gitignore b/.gitignore index 1c74d19..0533ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,5 @@ dist .idea .vscode release -src-tauri/easytier-cli.exe -src-tauri/easytier-core.exe -src-tauri/Packet.dll -src-tauri/wintun.dll + +src-tauri/easytier/logs \ No newline at end of file diff --git a/composables/configJson.ts b/composables/configJson.ts index 06d9349..424e6d5 100644 --- a/composables/configJson.ts +++ b/composables/configJson.ts @@ -1,16 +1,45 @@ import { BaseDirectory, writeTextFile } from "@tauri-apps/plugin-fs"; import useMainStore from "@/stores/index"; import { ElMessage } from "element-plus"; -export const updateConfigJson = async () => { - +import { uniq, intersection, isNil } from "lodash-es"; +export const updateConfigJson = async (configJsonSeverUrl: Array | string | null | undefined) => { const mainStore = useMainStore(); - const path = import.meta.env.VITE_CONFIG_FILE_NAME; - try { - const { proxyNetworks, autoStart, relayAllPeerrpc, coonectAfterStart, multiThread, enablExitNode, useSmoltcp, saveErrorLog, logLevel, ...otherConfig } = - mainStore.config; - await writeTextFile(path, JSON.stringify(otherConfig, null, 4), { baseDir: BaseDirectory.Resource }); - } catch (err) { - console.log(err); - ElMessage.error(`更新config.json失败`); - } -} + const path = import.meta.env.VITE_CONFIG_FILE_NAME; + if (isNil(configJsonSeverUrl)) { + configJsonSeverUrl = []; + } + const isArray = Array.isArray(configJsonSeverUrl); + const isString = typeof configJsonSeverUrl === "string"; + try { + const { + proxyNetworks, + autoStart, + relayAllPeerrpc, + coonectAfterStart, + multiThread, + enablExitNode, + useSmoltcp, + saveErrorLog, + logLevel, + serverUrl, + ...otherConfig + } = mainStore.config; + let writeServerUrl: Array | string = serverUrl; + if (isArray) { + writeServerUrl = intersection( + uniq([serverUrl, ...configJsonSeverUrl]).filter(boolean => boolean), + mainStore.basePeers + ); + } + if (isString && configJsonSeverUrl) { + writeServerUrl = intersection( + uniq([serverUrl, ...(configJsonSeverUrl as string).split(",")]).filter(boolean => boolean), + mainStore.basePeers + ).join(","); + } + await writeTextFile(path, JSON.stringify({ serverUrl: writeServerUrl, ...otherConfig }, null, 4), { baseDir: BaseDirectory.Resource }); + } catch (err) { + console.log(err); + ElMessage.error(`更新config.json失败`); + } +}; diff --git a/package.json b/package.json index 0e19b27..4146e74 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "author": "leizi97", "description": "A simple network initiator based on Easytier", - "version": "1.1.8", + "version": "1.1.9", "scripts": { "dev": "nuxt dev --dotenv env/.env.dev --host 0.0.0.0", "build": "nuxt generate --dotenv env/.env.prod" diff --git a/pages/advance.vue b/pages/advance.vue index 5f05d40..a8f2465 100644 --- a/pages/advance.vue +++ b/pages/advance.vue @@ -1,19 +1,12 @@