Skip to content

Commit 5ffd919

Browse files
committed
Fixed: Fixing edits also triggers connection issues.
1 parent 24bb36c commit 5ffd919

2 files changed

Lines changed: 31 additions & 21 deletions

File tree

ui/components/BasePage/basePage.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const scrollRef = ref<HTMLElement | null>(null);
2424
const subscribeSettingEvent = ref<UnlistenFn | null>(null);
2525
2626
const { t } = useI18n();
27-
const { confirmConnection } = useAssetConnection();
27+
const { confirmConnection, saveConnectionInfo } = useAssetConnection();
2828
2929
const contextMenu = useContextMenu();
3030
const userInfoStore = useUserInfoStore();
@@ -99,7 +99,8 @@ const handleContextTrigger = (asset: AssetItem, event?: MouseEvent) => {
9999
const handleEditTrigger = async (asset: AssetItem) => {
100100
try {
101101
const info = await connEditorRef.value!.open(asset);
102-
confirmConnection(asset, info);
102+
// 仅保存连接配置,不触发连接
103+
saveConnectionInfo(asset, info);
103104
} catch {}
104105
};
105106

ui/composables/useAssetConnection.ts

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
import type { AssetItem } from "~/types/index";
22
import { useUserInfoStore } from "~/store/modules/userInfo";
33

4+
type ConnectionInfo = {
5+
protocol: string;
6+
account: string;
7+
accountId?: string;
8+
accountMode: "hosted" | "dynamic" | "manual";
9+
manualUsername: string;
10+
manualPassword: string;
11+
dynamicPassword: string;
12+
rememberSecret: boolean;
13+
};
14+
415
export function useAssetConnection() {
516
const { handleAssetConnection, displayUser, displayProtocol } = useAssetAction();
617
const userInfoStore = useUserInfoStore();
@@ -31,32 +42,23 @@ export function useAssetConnection() {
3142
};
3243

3344
/**
34-
* 处理连接确认(从模态框
45+
* 仅保存连接信息(不触发连接
3546
*/
36-
const confirmConnection = (
37-
asset: AssetItem,
38-
connectionInfo: {
39-
protocol: string;
40-
account: string;
41-
accountId?: string;
42-
accountMode: "hosted" | "dynamic" | "manual";
43-
manualUsername: string;
44-
manualPassword: string;
45-
dynamicPassword: string;
46-
rememberSecret: boolean;
47-
}
48-
) => {
49-
// 解析托管账号的 ID(若未传入)
47+
const saveConnectionInfo = (asset: AssetItem, connectionInfo: ConnectionInfo) => {
5048
let resolvedAccountId: string | undefined = connectionInfo.accountId;
49+
5150
if (connectionInfo.accountMode === "hosted" && !resolvedAccountId) {
5251
const accs = asset.permedAccounts || [];
5352
const matched = accs.find(
54-
(a) => a.name === connectionInfo.account || a.username === connectionInfo.account || a.alias === connectionInfo.account
53+
(a) =>
54+
a.name === connectionInfo.account ||
55+
a.username === connectionInfo.account ||
56+
a.alias === connectionInfo.account
5557
);
58+
5659
resolvedAccountId = matched?.id;
5760
}
5861

59-
// 保存连接信息
6062
userInfoStore.setConnectionInfoForAsset(asset.id, {
6163
protocol: connectionInfo.protocol,
6264
username: connectionInfo.account,
@@ -67,8 +69,14 @@ export function useAssetConnection() {
6769
dynamicPassword: connectionInfo.rememberSecret ? connectionInfo.dynamicPassword : "",
6870
rememberSecret: connectionInfo.rememberSecret
6971
});
72+
};
73+
74+
/**
75+
* 处理连接确认(从模态框)
76+
*/
77+
const confirmConnection = (asset: AssetItem, connectionInfo: ConnectionInfo) => {
78+
saveConnectionInfo(asset, connectionInfo);
7079

71-
// 执行连接
7280
handleAssetConnection(
7381
connectionInfo.account,
7482
asset.id,
@@ -86,6 +94,7 @@ export function useAssetConnection() {
8694

8795
return {
8896
connectAsset,
89-
confirmConnection
97+
confirmConnection,
98+
saveConnectionInfo
9099
};
91100
}

0 commit comments

Comments
 (0)