Merge remote-tracking branch 'origin/develop' into develop1226
This commit is contained in:
commit
3157b935e0
@ -1,20 +1,14 @@
|
|||||||
import { app, dialog, ipcMain } from "electron";
|
import {app, dialog, ipcMain, shell} from "electron";
|
||||||
import { clearConfig, getConfig, saveConfig } from "../storage/config";
|
import {clearConfig, getConfig, saveConfig} from "../storage/config";
|
||||||
import { clearVersion, listVersion } from "../storage/version";
|
import {clearVersion, listVersion} from "../storage/version";
|
||||||
import {
|
import {genIniConfig, genTomlConfig, stopFrpcProcess} from "./frpc";
|
||||||
generateConfig,
|
import {clearProxy, insertProxy, listProxy} from "../storage/proxy";
|
||||||
genIniConfig,
|
|
||||||
genTomlConfig,
|
|
||||||
stopFrpcProcess
|
|
||||||
} from "./frpc";
|
|
||||||
import { exec } from "child_process";
|
|
||||||
import { clearProxy, insertProxy, listProxy } from "../storage/proxy";
|
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
|
||||||
const log = require("electron-log");
|
const log = require("electron-log");
|
||||||
const toml = require("@iarna/toml");
|
const toml = require("@iarna/toml");
|
||||||
const { v4: uuidv4 } = require("uuid");
|
const {v4: uuidv4} = require("uuid");
|
||||||
|
|
||||||
export const initConfigApi = win => {
|
export const initConfigApi = win => {
|
||||||
ipcMain.on("config.saveConfig", async (event, args) => {
|
ipcMain.on("config.saveConfig", async (event, args) => {
|
||||||
@ -89,7 +83,7 @@ export const initConfigApi = win => {
|
|||||||
fs.writeFile(
|
fs.writeFile(
|
||||||
configPath, // 配置文件目录
|
configPath, // 配置文件目录
|
||||||
configContent, // 配置文件内容
|
configContent, // 配置文件内容
|
||||||
{ flag: "w" },
|
{flag: "w"},
|
||||||
err => {
|
err => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
// callback(filename);
|
// callback(filename);
|
||||||
@ -227,7 +221,7 @@ export const initConfigApi = win => {
|
|||||||
const result = await dialog.showOpenDialog(win, {
|
const result = await dialog.showOpenDialog(win, {
|
||||||
properties: ["openFile"],
|
properties: ["openFile"],
|
||||||
filters: [
|
filters: [
|
||||||
{ name: "FrpcConfig Files", extensions: ["toml", "ini"] } // 允许选择的文件类型
|
{name: "FrpcConfig Files", extensions: ["toml", "ini"]} // 允许选择的文件类型
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
if (result.canceled) {
|
if (result.canceled) {
|
||||||
@ -258,4 +252,17 @@ export const initConfigApi = win => {
|
|||||||
event.reply("Config.clearAll.hook", {});
|
event.reply("Config.clearAll.hook", {});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcMain.on("config.openDataFolder", async (event, args) => {
|
||||||
|
const userDataPath = app.getPath("userData");
|
||||||
|
shell.openPath(userDataPath).then((errorMessage) => {
|
||||||
|
if (errorMessage) {
|
||||||
|
console.error('Failed to open Logger:', errorMessage);
|
||||||
|
event.reply("Config.openDataFolder.hook", false);
|
||||||
|
} else {
|
||||||
|
console.log('Logger opened successfully');
|
||||||
|
event.reply("Config.openDataFolder.hook", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,7 @@ import fileOpenRounded from "@iconify-icons/material-symbols/file-open-rounded";
|
|||||||
import attachMoneyRounded from "@iconify-icons/material-symbols/attach-money-rounded";
|
import attachMoneyRounded from "@iconify-icons/material-symbols/attach-money-rounded";
|
||||||
import volunteerActivismSharp from "@iconify-icons/material-symbols/volunteer-activism-sharp";
|
import volunteerActivismSharp from "@iconify-icons/material-symbols/volunteer-activism-sharp";
|
||||||
import description from "@iconify-icons/material-symbols/description";
|
import description from "@iconify-icons/material-symbols/description";
|
||||||
|
import folderRounded from "@iconify-icons/material-symbols/folder-rounded";
|
||||||
|
|
||||||
addIcon("cloud", Cloud);
|
addIcon("cloud", Cloud);
|
||||||
addIcon("rocket-launch-rounded", RocketLaunchRounded);
|
addIcon("rocket-launch-rounded", RocketLaunchRounded);
|
||||||
@ -68,4 +69,5 @@ addIcon("file-open-rounded", fileOpenRounded);
|
|||||||
addIcon("attach-money-rounded", attachMoneyRounded);
|
addIcon("attach-money-rounded", attachMoneyRounded);
|
||||||
addIcon("volunteer-activism-sharp", volunteerActivismSharp);
|
addIcon("volunteer-activism-sharp", volunteerActivismSharp);
|
||||||
addIcon("description", description);
|
addIcon("description", description);
|
||||||
|
addIcon("folder-rounded", folderRounded);
|
||||||
|
|
||||||
|
@ -257,6 +257,15 @@ onMounted(() => {
|
|||||||
ElMessageBox.alert(data, `提示`);
|
ElMessageBox.alert(data, `提示`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on("Config.openDataFolder.hook", (event, args) => {
|
||||||
|
if (args) {
|
||||||
|
ElMessage({
|
||||||
|
type: "success",
|
||||||
|
message: "打开数据目录成功"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleSelectFile = (type: number, ext: string[]) => {
|
const handleSelectFile = (type: number, ext: string[]) => {
|
||||||
@ -371,17 +380,28 @@ const handleResetConfig = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 打开数据目录
|
||||||
|
*/
|
||||||
|
const handleOpenDataFolder = useDebounceFn(() => {
|
||||||
|
ipcRenderer.send("config.openDataFolder");
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
ipcRenderer.removeAllListeners("Config.getConfig.hook");
|
ipcRenderer.removeAllListeners("Config.getConfig.hook");
|
||||||
ipcRenderer.removeAllListeners("Config.saveConfig.hook");
|
ipcRenderer.removeAllListeners("Config.saveConfig.hook");
|
||||||
ipcRenderer.removeAllListeners("Config.versions.hook");
|
ipcRenderer.removeAllListeners("Config.versions.hook");
|
||||||
ipcRenderer.removeAllListeners("Config.exportConfig.hook");
|
ipcRenderer.removeAllListeners("Config.exportConfig.hook");
|
||||||
ipcRenderer.removeAllListeners("Config.clearAll.hook");
|
ipcRenderer.removeAllListeners("Config.clearAll.hook");
|
||||||
|
ipcRenderer.removeAllListeners("Config.openDataFolder.hook");
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<breadcrumb>
|
<breadcrumb>
|
||||||
|
<el-button plain type="primary" @click="handleOpenDataFolder">
|
||||||
|
<IconifyIconOffline icon="folder-rounded" />
|
||||||
|
</el-button>
|
||||||
<el-button plain type="primary" @click="handleResetConfig">
|
<el-button plain type="primary" @click="handleResetConfig">
|
||||||
<IconifyIconOffline icon="deviceReset" />
|
<IconifyIconOffline icon="deviceReset" />
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -37,6 +37,7 @@ const refreshStatus = ref(false);
|
|||||||
const logLoading = ref(true);
|
const logLoading = ref(true);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
console.log('logger mounted')
|
||||||
ipcRenderer.send("logger.getLog");
|
ipcRenderer.send("logger.getLog");
|
||||||
ipcRenderer.on("Logger.getLog.hook", (event, args) => {
|
ipcRenderer.on("Logger.getLog.hook", (event, args) => {
|
||||||
// console.log("日志", args, args.indexOf("\n"));
|
// console.log("日志", args, args.indexOf("\n"));
|
||||||
@ -89,7 +90,9 @@ const refreshLog = useDebounceFn(() => {
|
|||||||
}, 300);
|
}, 300);
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
console.log('logger unmounted')
|
||||||
ipcRenderer.removeAllListeners("Logger.getLog.hook");
|
ipcRenderer.removeAllListeners("Logger.getLog.hook");
|
||||||
|
ipcRenderer.removeAllListeners("Logger.openLog.hook");
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
|
Loading…
Reference in New Issue
Block a user