🏗️ refactor version import handling and improve IPC communication

This commit is contained in:
刘嘉伟 2025-02-25 14:37:31 +08:00
parent 3373e30331
commit 64c9623019
3 changed files with 25 additions and 22 deletions

View File

@ -64,14 +64,14 @@ class VersionController extends BaseController {
}
importLocalFrpcVersion(req: ControllerParam) {
// this._versionService
// .importLocalFrpcVersion(req.win)
// .then(data => {
// req.event.reply(req.channel, ResponseUtils.success());
// })
// .catch(err => {
// req.event.reply(req.channel, ResponseUtils.fail());
// });
this._versionService
.importLocalFrpcVersion()
.then(data => {
req.event.reply(req.channel, ResponseUtils.success());
})
.catch(err => {
req.event.reply(req.channel, ResponseUtils.fail());
});
}
}

View File

@ -12,6 +12,7 @@ import PathUtils from "../utils/PathUtils";
import FileUtils from "../utils/FileUtils";
import frpChecksums from "../json/frp_all_sha256_checksums.json";
import SystemService from "./SystemService";
import BeanFactory from "../core/BeanFactory";
class VersionService extends BaseService<FrpcVersion> {
private readonly _versionDao: VersionRepository;
@ -164,7 +165,8 @@ class VersionService extends BaseService<FrpcVersion> {
return false;
}
async importLocalFrpcVersion(win: BrowserWindow) {
async importLocalFrpcVersion() {
const win: BrowserWindow = BeanFactory.getBean("win");
const result = await dialog.showOpenDialog(win, {
properties: ["openFile"],
filters: [

View File

@ -1,12 +1,11 @@
<script lang="ts" setup>
import { defineComponent, onMounted, onUnmounted, ref } from "vue";
import { ipcRenderer } from "electron";
import moment from "moment";
import Breadcrumb from "@/layout/compoenets/Breadcrumb.vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { useDebounceFn } from "@vueuse/core";
import IconifyIconOffline from "@/components/IconifyIcon/src/iconifyIconOffline";
import { on, removeRouterListeners, removeRouterListeners2, send } from "@/utils/ipcUtils";
import { on, removeRouterListeners, send } from "@/utils/ipcUtils";
import { ipcRouters } from "../../../electron/core/IpcRouter";
defineComponent({
@ -40,10 +39,7 @@ const handleDownload = useDebounceFn((version: FrpcVersion) => {
send(ipcRouters.VERSION.downloadVersion, {
githubReleaseId: version.githubReleaseId
});
downloading.value.set(
version.githubReleaseId,
0
);
downloading.value.set(version.githubReleaseId, 0);
}, 300);
/**
@ -88,12 +84,7 @@ const handleDeleteVersion = useDebounceFn((version: FrpcVersion) => {
// console.log(args);
//
// // if (err) {
// loading.value++;
// ElMessage({
// type: success ? "success" : "error",
// message: data
// });
// handleLoadVersions();
// // }
// });
// };
@ -141,16 +132,26 @@ onMounted(() => {
});
handleLoadAllVersions();
});
on(ipcRouters.VERSION.importLocalFrpcVersion, () => {
loading.value++;
ElMessage({
type: "success",
message: "导入成功"
});
handleLoadAllVersions();
});
});
const handleImportFrp = () => {
ipcRenderer.send("download.importFrpFile");
send(ipcRouters.VERSION.importLocalFrpcVersion);
};
onUnmounted(() => {
removeRouterListeners(ipcRouters.VERSION.deleteDownloadedVersion);
removeRouterListeners(ipcRouters.VERSION.downloadVersion);
removeRouterListeners(ipcRouters.VERSION.getVersions);
removeRouterListeners(ipcRouters.VERSION.importLocalFrpcVersion);
});
</script>
<template>