Files
EasytierGame/pages/advance.vue
T

102 lines
4.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="h-full overflow-auto flex flex-col items-start px-[25px]">
<div><ElCheckbox v-model="mainStore.config.disableIpv6">不使用IPv6</ElCheckbox></div>
<div class="flex items-center gap-[10px]">
<ElCheckbox v-model="mainStore.config.devName">自定义网卡名</ElCheckbox>
<ElInput
maxlength="10"
v-model="mainStore.config.devNameValue"
placeholder="请输入网卡名"
/>
</div>
<div><ElCheckbox v-model="mainStore.config.disbleListenner">不监听任何端口只连接到对等节点</ElCheckbox></div>
<div class="flex items-center gap-[15px] flex-nowrap">
<ElCheckbox v-model="mainStore.config.saveErrorLog">输出日志到本地</ElCheckbox>
<div class="w-[140px]">
<ElSelect
v-model="mainStore.config.logLevel"
placeholder="请选择日志等级"
class="ml-[5px]"
>
<ElOption
v-for="item in data"
:key="item"
:label="`level - ${item}`"
:value="item"
></ElOption>
</ElSelect>
</div>
<ElButton
@click="openLogDir"
size="small"
>
打开日志目录
</ElButton>
</div>
<div><ElCheckbox v-model="mainStore.config.coonectAfterStart">软件启动后自动"启动联机"(搭配开机自启无感联机)</ElCheckbox></div>
<div class="flex items-center gap-[15px] flex-nowrap">
<ElCheckbox v-model="mainStore.createConfigInEasytier">自动生成界面配置文件easytier/config.json</ElCheckbox>
<ElButton
@click="openConfigJsonDir"
size="small"
>
打开config.json目录
</ElButton>
</div>
<ElDivider />
<div><ElCheckbox v-model="mainStore.config.enablExitNode">允许此节点成为出口节点</ElCheckbox></div>
<div><ElCheckbox v-model="mainStore.config.disableEncryption">禁用对等节点通信的加密默认为false必须与对等节点相同</ElCheckbox></div>
<div><ElCheckbox v-model="mainStore.config.multiThread">使用多线程运行时默认为单线程</ElCheckbox></div>
<ElDivider />
<div><ElCheckbox v-model="mainStore.config.noTun">不创建TUN设备可以使用子网代理访问节点</ElCheckbox></div>
<div><ElCheckbox v-model="mainStore.config.useSmoltcp">为子网代理启用smoltcp堆栈</ElCheckbox></div>
<div><ElCheckbox v-model="mainStore.config.latencyfirst">延迟优先模式将尝试使用最低延迟路径转发流量默认使用最短路径</ElCheckbox></div>
<div><ElCheckbox v-model="mainStore.config.disableUdpHolePunching">禁用UDP打洞功能</ElCheckbox></div>
<div>
<ElCheckbox v-model="mainStore.config.relayAllPeerrpc">转发所有对等节点的RPC数据包即使对等节点不在转发网络白名单内</ElCheckbox>
</div>
</div>
</template>
<script setup lang="ts">
import useMainStore from "@/stores/index";
import { getCurrentWindow } from "@tauri-apps/api/window";
import { resourceDir as getResourceDir, join } from "@tauri-apps/api/path";
import { Command } from "@tauri-apps/plugin-shell";
import { exists, mkdir, BaseDirectory } from "@tauri-apps/plugin-fs";
import { ElMessage } from "element-plus";
const mainStore = useMainStore();
const appWindow = getCurrentWindow();
const data = ["trace", "debug", "info", "warn", "error", "off"];
const openLogDir = async () => {
const resourceDir = await getResourceDir();
const logPath = import.meta.env.VITE_LOG_PATH;
const logDirPath = await join(resourceDir, logPath);
const isExists = await exists(logPath, { baseDir: BaseDirectory.Resource });
if (!isExists) {
try {
await mkdir(logPath, { baseDir: BaseDirectory.Resource });
} catch (err) {}
}
await Command.create("explorer", [logDirPath]).execute();
};
const openConfigJsonDir = async () => {
const resourceDir = await getResourceDir();
const easytierDir = await join(resourceDir, "easytier/");
const isExists = await exists("easytier/", { baseDir: BaseDirectory.Resource });
if (isExists) {
await Command.create("explorer", [easytierDir]).execute();
} else {
ElMessage.error("config.json的目录不存在");
}
};
mainStore.$subscribe(async (...a) => {
// console.log("subscribe", a);
await appWindow.emitTo("main", "config", { config: { ...mainStore.config }, createConfigInEasytier: mainStore.createConfigInEasytier });
// if(mainStore.createConfigInEasytier) {
// updateConfigJson();
// }
});
</script>