11import type { AssetItem } from "~/types/index" ;
22import { 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+
415export 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