mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 10:14:35 +00:00
feat(gui): persist and restore last used network instance ID (#1762)
This commit is contained in:
Vendored
+4
@@ -43,6 +43,7 @@ declare global {
|
|||||||
const isWebClientConnected: typeof import('./composables/backend')['isWebClientConnected']
|
const isWebClientConnected: typeof import('./composables/backend')['isWebClientConnected']
|
||||||
const listNetworkInstanceIds: typeof import('./composables/backend')['listNetworkInstanceIds']
|
const listNetworkInstanceIds: typeof import('./composables/backend')['listNetworkInstanceIds']
|
||||||
const listenGlobalEvents: typeof import('./composables/event')['listenGlobalEvents']
|
const listenGlobalEvents: typeof import('./composables/event')['listenGlobalEvents']
|
||||||
|
const loadLastNetworkInstanceId: typeof import('./composables/config')['loadLastNetworkInstanceId']
|
||||||
const loadMode: typeof import('./composables/mode')['loadMode']
|
const loadMode: typeof import('./composables/mode')['loadMode']
|
||||||
const mapActions: typeof import('pinia')['mapActions']
|
const mapActions: typeof import('pinia')['mapActions']
|
||||||
const mapGetters: typeof import('pinia')['mapGetters']
|
const mapGetters: typeof import('pinia')['mapGetters']
|
||||||
@@ -76,6 +77,7 @@ declare global {
|
|||||||
const ref: typeof import('vue')['ref']
|
const ref: typeof import('vue')['ref']
|
||||||
const resolveComponent: typeof import('vue')['resolveComponent']
|
const resolveComponent: typeof import('vue')['resolveComponent']
|
||||||
const runNetworkInstance: typeof import('./composables/backend')['runNetworkInstance']
|
const runNetworkInstance: typeof import('./composables/backend')['runNetworkInstance']
|
||||||
|
const saveLastNetworkInstanceId: typeof import('./composables/config')['saveLastNetworkInstanceId']
|
||||||
const saveMode: typeof import('./composables/mode')['saveMode']
|
const saveMode: typeof import('./composables/mode')['saveMode']
|
||||||
const saveNetworkConfig: typeof import('./composables/backend')['saveNetworkConfig']
|
const saveNetworkConfig: typeof import('./composables/backend')['saveNetworkConfig']
|
||||||
const sendConfigs: typeof import('./composables/backend')['sendConfigs']
|
const sendConfigs: typeof import('./composables/backend')['sendConfigs']
|
||||||
@@ -165,6 +167,7 @@ declare module 'vue' {
|
|||||||
readonly isWebClientConnected: UnwrapRef<typeof import('./composables/backend')['isWebClientConnected']>
|
readonly isWebClientConnected: UnwrapRef<typeof import('./composables/backend')['isWebClientConnected']>
|
||||||
readonly listNetworkInstanceIds: UnwrapRef<typeof import('./composables/backend')['listNetworkInstanceIds']>
|
readonly listNetworkInstanceIds: UnwrapRef<typeof import('./composables/backend')['listNetworkInstanceIds']>
|
||||||
readonly listenGlobalEvents: UnwrapRef<typeof import('./composables/event')['listenGlobalEvents']>
|
readonly listenGlobalEvents: UnwrapRef<typeof import('./composables/event')['listenGlobalEvents']>
|
||||||
|
readonly loadLastNetworkInstanceId: UnwrapRef<typeof import('./composables/config')['loadLastNetworkInstanceId']>
|
||||||
readonly loadMode: UnwrapRef<typeof import('./composables/mode')['loadMode']>
|
readonly loadMode: UnwrapRef<typeof import('./composables/mode')['loadMode']>
|
||||||
readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
|
readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
|
||||||
readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
|
readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
|
||||||
@@ -198,6 +201,7 @@ declare module 'vue' {
|
|||||||
readonly ref: UnwrapRef<typeof import('vue')['ref']>
|
readonly ref: UnwrapRef<typeof import('vue')['ref']>
|
||||||
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||||
readonly runNetworkInstance: UnwrapRef<typeof import('./composables/backend')['runNetworkInstance']>
|
readonly runNetworkInstance: UnwrapRef<typeof import('./composables/backend')['runNetworkInstance']>
|
||||||
|
readonly saveLastNetworkInstanceId: UnwrapRef<typeof import('./composables/config')['saveLastNetworkInstanceId']>
|
||||||
readonly saveMode: UnwrapRef<typeof import('./composables/mode')['saveMode']>
|
readonly saveMode: UnwrapRef<typeof import('./composables/mode')['saveMode']>
|
||||||
readonly saveNetworkConfig: UnwrapRef<typeof import('./composables/backend')['saveNetworkConfig']>
|
readonly saveNetworkConfig: UnwrapRef<typeof import('./composables/backend')['saveNetworkConfig']>
|
||||||
readonly sendConfigs: UnwrapRef<typeof import('./composables/backend')['sendConfigs']>
|
readonly sendConfigs: UnwrapRef<typeof import('./composables/backend')['sendConfigs']>
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* 配置持久化相关的函数
|
||||||
|
* 用于保存和加载应用程序的各种配置状态
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存上次使用的网络实例 ID
|
||||||
|
* @param instanceId 网络实例 ID
|
||||||
|
*/
|
||||||
|
export function saveLastNetworkInstanceId(instanceId: string) {
|
||||||
|
localStorage.setItem('last_network_instance_id', instanceId)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载上次使用的网络实例 ID
|
||||||
|
* @returns 上次使用的网络实例 ID,如果没有则返回 null
|
||||||
|
*/
|
||||||
|
export function loadLastNetworkInstanceId(): string | null {
|
||||||
|
return localStorage.getItem('last_network_instance_id')
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ import { GUIRemoteClient } from '~/modules/api'
|
|||||||
|
|
||||||
import { useToast, useConfirm } from 'primevue'
|
import { useToast, useConfirm } from 'primevue'
|
||||||
import { loadMode, saveMode, WebClientConfig, type Mode } from '~/composables/mode'
|
import { loadMode, saveMode, WebClientConfig, type Mode } from '~/composables/mode'
|
||||||
|
import { saveLastNetworkInstanceId, loadLastNetworkInstanceId } from '~/composables/config'
|
||||||
import ModeSwitcher from '~/components/ModeSwitcher.vue'
|
import ModeSwitcher from '~/components/ModeSwitcher.vue'
|
||||||
import { getServiceStatus } from '~/composables/backend'
|
import { getServiceStatus } from '~/composables/backend'
|
||||||
|
|
||||||
@@ -190,6 +191,12 @@ const remoteClient = computed(() => new GUIRemoteClient());
|
|||||||
const instanceId = ref<string | undefined>(undefined);
|
const instanceId = ref<string | undefined>(undefined);
|
||||||
const clientRunning = ref(false);
|
const clientRunning = ref(false);
|
||||||
|
|
||||||
|
watch(instanceId, (newVal) => {
|
||||||
|
if (newVal) {
|
||||||
|
saveLastNetworkInstanceId(newVal);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
watch(clientRunning, async (newVal, oldVal) => {
|
watch(clientRunning, async (newVal, oldVal) => {
|
||||||
if (!newVal && oldVal) {
|
if (!newVal && oldVal) {
|
||||||
if (manualDisconnect.value) {
|
if (manualDisconnect.value) {
|
||||||
@@ -197,6 +204,11 @@ watch(clientRunning, async (newVal, oldVal) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
await reconnectClient()
|
await reconnectClient()
|
||||||
|
} else if (newVal && !oldVal) {
|
||||||
|
const lastInstanceId = loadLastNetworkInstanceId();
|
||||||
|
if (lastInstanceId) {
|
||||||
|
instanceId.value = lastInstanceId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user