增加打开数据目录按钮

This commit is contained in:
刘嘉伟 2024-12-22 22:04:52 +08:00
parent 32555d45b1
commit 0b4824975a
4 changed files with 275 additions and 243 deletions

View File

@ -1,20 +1,14 @@
import { app, dialog, ipcMain } from "electron";
import { clearConfig, getConfig, saveConfig } from "../storage/config";
import { clearVersion, listVersion } from "../storage/version";
import {
generateConfig,
genIniConfig,
genTomlConfig,
stopFrpcProcess
} from "./frpc";
import { exec } from "child_process";
import { clearProxy, insertProxy, listProxy } from "../storage/proxy";
import {app, dialog, ipcMain, shell} from "electron";
import {clearConfig, getConfig, saveConfig} from "../storage/config";
import {clearVersion, listVersion} from "../storage/version";
import {genIniConfig, genTomlConfig, stopFrpcProcess} from "./frpc";
import {clearProxy, insertProxy, listProxy} from "../storage/proxy";
import path from "path";
import fs from "fs";
const log = require("electron-log");
const toml = require("@iarna/toml");
const { v4: uuidv4 } = require("uuid");
const {v4: uuidv4} = require("uuid");
export const initConfigApi = win => {
ipcMain.on("config.saveConfig", async (event, args) => {
@ -89,7 +83,7 @@ export const initConfigApi = win => {
fs.writeFile(
configPath, // 配置文件目录
configContent, // 配置文件内容
{ flag: "w" },
{flag: "w"},
err => {
if (!err) {
// callback(filename);
@ -227,7 +221,7 @@ export const initConfigApi = win => {
const result = await dialog.showOpenDialog(win, {
properties: ["openFile"],
filters: [
{ name: "FrpcConfig Files", extensions: ["toml", "ini"] } // 允许选择的文件类型
{name: "FrpcConfig Files", extensions: ["toml", "ini"]} // 允许选择的文件类型
]
});
if (result.canceled) {
@ -258,4 +252,17 @@ export const initConfigApi = win => {
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);
}
});
});
};

View File

@ -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 volunteerActivismSharp from "@iconify-icons/material-symbols/volunteer-activism-sharp";
import description from "@iconify-icons/material-symbols/description";
import folderRounded from "@iconify-icons/material-symbols/folder-rounded";
addIcon("cloud", Cloud);
addIcon("rocket-launch-rounded", RocketLaunchRounded);
@ -68,4 +69,5 @@ addIcon("file-open-rounded", fileOpenRounded);
addIcon("attach-money-rounded", attachMoneyRounded);
addIcon("volunteer-activism-sharp", volunteerActivismSharp);
addIcon("description", description);
addIcon("folder-rounded", folderRounded);

View File

@ -257,6 +257,15 @@ onMounted(() => {
ElMessageBox.alert(data, `提示`);
}
});
ipcRenderer.on("Config.openDataFolder.hook", (event, args) => {
if (args) {
ElMessage({
type: "success",
message: "打开数据目录成功"
});
}
});
});
const handleSelectFile = (type: number, ext: string[]) => {
@ -371,17 +380,28 @@ const handleResetConfig = () => {
});
};
/**
* 打开数据目录
*/
const handleOpenDataFolder = useDebounceFn(() => {
ipcRenderer.send("config.openDataFolder");
}, 1000);
onUnmounted(() => {
ipcRenderer.removeAllListeners("Config.getConfig.hook");
ipcRenderer.removeAllListeners("Config.saveConfig.hook");
ipcRenderer.removeAllListeners("Config.versions.hook");
ipcRenderer.removeAllListeners("Config.exportConfig.hook");
ipcRenderer.removeAllListeners("Config.clearAll.hook");
ipcRenderer.removeAllListeners("Config.openDataFolder.hook");
});
</script>
<template>
<div class="main">
<breadcrumb>
<el-button plain type="primary" @click="handleOpenDataFolder">
<IconifyIconOffline icon="folder-rounded" />
</el-button>
<el-button plain type="primary" @click="handleResetConfig">
<IconifyIconOffline icon="deviceReset" />
</el-button>

View File

@ -37,6 +37,7 @@ const refreshStatus = ref(false);
const logLoading = ref(true);
onMounted(() => {
console.log('logger mounted')
ipcRenderer.send("logger.getLog");
ipcRenderer.on("Logger.getLog.hook", (event, args) => {
// console.log("", args, args.indexOf("\n"));
@ -89,7 +90,9 @@ const refreshLog = useDebounceFn(() => {
}, 300);
onUnmounted(() => {
console.log('logger unmounted')
ipcRenderer.removeAllListeners("Logger.getLog.hook");
ipcRenderer.removeAllListeners("Logger.openLog.hook");
});
</script>
<template>